GNU/Linux >> Linux Esercitazione >  >> Linux

Comandi Linux usati frequentemente dagli amministratori di sistema Linux – Parte 3

La scorsa settimana e la settimana prima, ho pubblicato la parte 1 e la parte 2 di questa serie in cinque parti intitolata:Comandi Linux usati frequentemente dagli amministratori di sistema Linux . Questi due articoli ci hanno portato un po' più a fondo in quelli che credo siano circa 50-100 comandi spesso usati dagli amministratori di sistema Linux e dagli utenti esperti. Inoltre, consulta la Parte 4 e la Parte 5.

Passiamo alla parte 3 con un'altra serie di comandi e strumenti da riga di comando spesso utilizzati per il trasferimento di file, la manipolazione di file, la risoluzione dei problemi di rete e altre attività amministrative eseguite dai sistemi Linux. In questa serie e in quelle future, raggrupperò il più possibile i comandi correlati e aggiungerò anche un sommario per collegare tutte e cinque le parti di questa serie.

1. rsync – trasferimenti e sincronizzazione di file remoti.

Rsync (sincronizzazione remota) è uno strumento open source per la sincronizzazione di file tra sistemi locali e remoti. Nel 2016, mi è stato assegnato il compito di creare un mirror globale supportato da CDN per distribuzioni Linux e altri repository: Evowise CDN (https://mirros.evowise.com). Questo progetto si basa molto su rsync per garantire che centinaia di terabyte di file siano sempre sincronizzati. Nel tempo, più distribuzioni hanno offerto i propri mirror globali supportati da CDN; tuttavia, c'è ancora solo una manciata di mirror multi-distro e multi-software. Ecco un esempio di utilizzo di rsync comando per eseguire il backup dei file in remoto:

rsync -avze ssh /path/to/directory1/ user@IP_or_hostname:/remote/backup/directory1/

Per scaricare dalla directory remota, invertire l'ordine del comando:

rsync -avze ssh user@IP_or_hostname:/remote/backup/directory1/ /path/to/directory1/

Rsync è un intero argomento in sé. Pertanto, rivisitiamo questo comando in modo più completo in un secondo momento. Nel frattempo, il miglior punto di partenza sarebbe leggere la documentazione e i cheat sheet.

2. tar , gzip , b2zipzip manipolazione dei file.

tar (archivio nastro) è un'utilità di archiviazione.

Per estrarre da un archivio utilizzare:(con opzioni x =estrarre, v =dettagliato, f =file):

tar - xvf archive.tar

Per creare un archivio da file o da una directory, utilizzare:(con l'opzione c =crea)

tar -cvf archive.tar file1 file2 file3

Per creare archivi compressi, utilizzare:(con l'opzione z comprimere con gzip)

tar -cvzf archive.tar file1 file2 file3

Per mostrare tutti i file contenuti in un archivio, utilizza (con l'opzione t =elenco):

tar -tvf archive.tar

gzip sta per GNU zip. Viene utilizzato per la compressione e la decompressione dei file.

Per creare un file compresso, usa:

gzip file1

Per decomprimere un file, usa:

gunzip file1.gz

Come archivio creato utilizzando  tar non verrà compresso senza opzioni aggiuntive; questo può essere fatto utilizzando gzip .

Per combinare i file in un archivio compresso utilizzare (con l'opzione z =gzip):

tar -cvzf archive.tar.gz file1 file2

Il che risulterà in archive.tar.gz

Per decomprimere ed estrarre file da un archivio gzip, usa:

tar -xvzf archive.tar.gz

bzip2 è simile a gzip. Utilizza solo un algoritmo di compressione diverso.

Per creare un file compresso, usa:

bzip2 file1

Per decomprimere un file, usa:

bunzip2 file1.bz2

Per combinare i file in un archivio compresso utilizzare (con l'opzione j =bzip2):

tar -cvjf archive.tar.bz2 file1 file2

Il che risulterà in archive.tar.bz2

Top decomprimi ed estrai file da un archivio bzip2 usa:

tar -xvjf archive.tar.bz2

zip viene utilizzato per impacchettare e comprimere (per archiviare) i file.

Per combinare singoli file in un archivio compresso, utilizza:

zip archive.zip file1 file2

Per combinare intere directory in un archivio compresso:

zip -r archive.zip directory1 directory2 directory3

Per decomprimere ed estrarre file o directory da un archivio zip, utilizzare:

unzip archive.zip

Per mostrare tutti i file archiviati in un archivio, usa:

unzip -l archive.zip

3. locate – cercare file in Linux.

Nella parte 1, abbiamo toccato l'utilizzo di find e grep . Locate utilizza un processo in background che viene eseguito periodicamente per cercare e archiviare i file del sistema nel proprio database. Qui sta il suo unico vantaggio... la velocità!

Su alcune distribuzioni, Ubuntu, ad esempio, devi installare manualmente:

sudo apt-get install locate

Per cercare un file utilizzare (con l'opzione i =ignora maiuscole):

locate -i filename

Ad esempio:

hydn@ubuntu:~$ sudo locate -i firewall
/etc/fail2ban/action.d/firewallcmd-allports.conf
/etc/fail2ban/action.d/firewallcmd-common.conf
/etc/fail2ban/action.d/firewallcmd-ipset.conf
/etc/fail2ban/action.d/firewallcmd-multiport.conf
...

Il database verrà aggiornato quotidianamente tramite cron. Tuttavia, se devi aggiornarlo manualmente, puoi utilizzare:

sudo updatedb

4. ps – informazioni sui processi attualmente in esecuzione.

Nella parte 1, abbiamo esaminato pstree , un'alternativa più visiva al comando ps. Un modo per usare ps per ottenere ulteriori informazioni sui processi in esecuzione è necessario utilizzare quanto segue:

ps aux | less

Il a l'opzione elencherà tutti i processi degli utenti ad eccezione dei capigruppo e dei processi che non sono associati a un terminale.

Il u l'opzione fornisce informazioni dettagliate su ciascun processo.

La x l'opzione elencherà tutti i processi se usati insieme a a opzione.

Per mostrare un albero dei processi:

ps axjf | less

Per mostrare informazioni sui thread, usa:

ps -eLf | less
ps axms | less

Per visualizzare ogni processo in esecuzione come root in formato utente, usa:

ps -U root -u root u

Per mostrare solo gli ID di processo di syslogd, usa:

ps -C syslogd -o pid=

Per mostrare solo il nome del PID 411, utilizzare:

ps -q 411 -o comm=

Gli esempi precedenti provengono da man ps .

5. Utilizzo degli script Bash.

Uno script Bash è un file di testo semplice contenente una serie di comandi. Questi sono comandi che normalmente digitiamo nella riga di comando (ad esempio, rsync ... o cp ... ), ma vorremmo risparmiare tempo non dovendo digitare i comandi manualmente ogni volta, oppure, vorremmo programmare l'esecuzione di quei comandi in un secondo momento, usando cron.

Per creare uno script bash, inserisci #!/bin/bash nella parte superiore del file. Ecco un semplice script bash per eseguire i backup:

#!/bin/bash
rsync -avze ssh /path/to/directory1/ user@IP_or_hostname:/remote/backup/directory1/
echo "Remote backup for $(date) " | mail -s "backup complete" user@youremail

Dopo averlo digitato o incollato in un nuovo file, puoi salvarlo come scriptname.sh. In questo caso, remotebackup.sh. Quindi, modifica i permessi del file per renderlo eseguibile:

chmod +x remotebackup.sh

Per eseguire/eseguire lo script dalla directory corrente, digitare:

./remotebackup.sh

Oppure puoi programmare l'esecuzione dello script Bash utilizzando il mais, come discusso nella sezione successiva.

Inoltre, consulta Ubuntu's Beginners BashScripting.

6. cron – Imposta le attività pianificate da eseguire.

Il cron daemon è uno strumento Linux integrato che esegue attività pianificate (comandi o script di shell) periodicamente a orari, date o intervalli fissi. Gli amministratori di sistema in genere utilizzano cron per automatizzare la manutenzione del sistema e le attività di amministrazione. Ad esempio, utilizzando cron per eseguire rsync ogni notte.

Ecco un esempio di cron voce a riga singola utilizzata per eseguire uno script di backup ogni notte alle 2 del mattino:

0 2 * * * ~/myscripts/remotebackup.sh

Per iniziare, leggi il cron guide all'installazione create da Ubuntu e Red Hat e fanno riferimento alla pagina man di cron. Esistono anche generatori di espressioni cron online.

7. nmcli – gestione della rete.

NetworkManager è un insieme di strumenti per gestire la connettività di rete sul tuo sistema Linux. Funziona con connessioni cablate, wireless e persino Bluetooth.

Per mostrare tutti i dispositivi di rete disponibili, usa:

nmcli d

Ad esempio:

Red Hat ha pubblicato un'ottima guida in rete per nmcli .

8. ping – invia ICMP ECHO_REQUEST agli host di rete.

Il ping Il comando (Packet Internet Groper) viene utilizzato per verificare la connettività di rete tra server e altri host. È possibile inserire l'indirizzo IP o l'URL e il comando ping invia quindi un pacchetto di dati all'indirizzo specificato con il messaggio "PING" e attende una risposta dal server/host di destinazione. Viene riportato il tempo necessario per ricevere questo pacchetto di risposta. Questa volta si chiama latenza. Bassa latenza =risposta di connessione più veloce.

ping [hostname/ip]

Ad esempio:

Usa il -c flag per specificare il numero di pacchetti ping da inviare. Ad esempio:

ping -c 5 IP_ADDRESS

9. traceroute – controlla il percorso dei pacchetti verso un host specifico.

traceroute controlla il percorso seguito dai pacchetti per raggiungere un host specificato. Utilizza il campo TTL (time-to-live) del protocollo IP e tenta di ottenere una risposta ICMP TIME_EXCEEDED da ciascun gateway lungo il percorso verso l'host. (Fonte:man traceroute) Traceroute può aiutare a trovare l'origine di ritardi di latenza di rete, interruzioni e altri problemi di routing di rete.

Inoltre, dai un'occhiata a mtr (Il mio traceroute).

10. nslookup – interroga i server dei nomi Internet (NS) in modo interattivo.

nslookup (Name Server Lookup) è un comando utilizzato per raccogliere informazioni da Domain Name Systems (DNS). Con nslookup , gli amministratori di sistema possono richiedere informazioni sul nome di dominio o sull'indirizzo IP.

Per cercare il record A di un dominio, utilizza:

nslookup haydenjames.io

Per cercare i record NS di un dominio per scoprire i suoi server autorevoli, utilizza:

nslookup -type=ns ubuntu.com

Per cercare i record MX di un dominio, utilizza:

nslookup -query=mx redhat.com

Per cercare la SOA (inizio dell'autorità) di un dominio, utilizzare:

nslookup -query=soa debian.com

Per mostrare l'elenco dei record DNS di un dominio, utilizza:

nslookup -type=any mysql.com

Per cercare l'rDNS (DNS inverso) di un dominio, utilizza:

nslookup [domain_IP]

Vedi anche l'host e dig comandi.

Suggerimento extra: Dai un'occhiata a explainshell.com per abbinare gli argomenti della riga di comando al testo della guida.

Per ora è tutto. Spero che la parte 3 ti sia piaciuta. Condividi, iscriviti, aggiungi un segnalibro e lascia qualsiasi commento o suggerimento tu possa avere.

Avanti – Comandi Linux usati frequentemente dagli amministratori di sistema Linux – Parte 4 >


Linux
  1. 16 Comandi Tar per comprimere ed estrarre file in Linux

  2. 40 comandi di base di Linux usati frequentemente

  3. Come archiviare file e directory in Linux [Parte 1]

  4. Comando tar di Linux

  5. 25 Esempi di regole IPtables Linux più utilizzate

40 utili comandi di rete Linux per i moderni amministratori di sistema

90 comandi Linux usati frequentemente dagli amministratori di sistema Linux

Comandi Linux usati frequentemente dagli amministratori di sistema Linux – Parte 5

Comandi Linux usati frequentemente dagli amministratori di sistema Linux – Parte 4

Comandi Linux usati frequentemente dagli amministratori di sistema Linux – Parte 2

Comandi Linux usati frequentemente dagli amministratori di sistema Linux – Parte 1