La semaine dernière et la semaine d'avant, j'ai publié la partie 1 et la partie 2 de cette série en cinq parties intitulée :Commandes Linux fréquemment utilisées par les administrateurs système Linux . Ces deux articles nous ont amenés un peu plus loin dans ce que je pense être environ 50 à 100 commandes souvent utilisées par les administrateurs système Linux et les utilisateurs expérimentés. Consultez également les parties 4 et 5.
Passons à la partie 3 avec un autre ensemble de commandes et d'outils de ligne de commande souvent utilisés pour le transfert de fichiers, la manipulation de fichiers, le dépannage du réseau et d'autres tâches administratives effectuées par les systèmes Linux. Dans cette série et les futures, je regrouperai autant que possible les commandes associées et j'ajouterai également une table des matières pour relier les cinq parties de cette série.
1. rsync
– transferts et synchronisation de fichiers à distance.
Rsync (synchronisation à distance) est un outil open source pour la synchronisation de fichiers entre les systèmes locaux et distants. En 2016, j'ai été chargé de mettre en place un miroir mondial basé sur CDN pour les distributions Linux et autres référentiels : Evowise CDN (https://mirros.evowise.com). Ce projet s'appuie fortement sur rsync
pour s'assurer que des centaines de téraoctets de fichiers sont toujours synchronisés. Au fil du temps, de plus en plus de distributions ont proposé leurs propres miroirs mondiaux soutenus par CDN; cependant, il n'y a encore qu'une poignée de miroirs multi-distributions et multi-logiciels. Voici un exemple d'utilisation de rsync
commande pour sauvegarder des fichiers à distance :
rsync -avze ssh /path/to/directory1/ user@IP_or_hostname:/remote/backup/directory1/
Pour télécharger depuis le répertoire distant, inversez l'ordre de la commande :
rsync -avze ssh user@IP_or_hostname:/remote/backup/directory1/ /path/to/directory1/
Rsync est un sujet à part entière. En tant que tel, revoyons cette commande plus en détail à une date ultérieure. En attendant, le meilleur endroit pour commencer serait de lire la documentation et les aide-mémoire.
2. tar
, gzip
, b2zip
, et zip
manipulation de fichiers.
tar
(archive sur bande) est un utilitaire d'archivage.
Pour extraire d'une archive, utilisez :(avec les options x
=extrait, v
=verbeux, f
=fichier):
tar - xvf archive.tar
Pour créer une archive à partir de fichiers ou d'un répertoire, utilisez :(avec l'option c
=créer)
tar -cvf archive.tar file1 file2 file3
Pour créer des archives compressées, utilisez :(avec l'option z
à compresser avec gzip)
tar -cvzf archive.tar file1 file2 file3
Pour afficher tous les fichiers contenus dans une archive, utilisez (avec l'option t
=liste):
tar -tvf archive.tar
gzip
signifie GNU zip. Il est utilisé pour la compression et la décompression de fichiers.
Pour créer un fichier compressé, utilisez :
gzip file1
Pour décompresser un fichier, utilisez :
gunzip file1.gz
En tant qu'archive créée à l'aide de tar
ne sera pas compressé sans options supplémentaires ; cela peut être fait en utilisant gzip
.
Pour combiner des fichiers dans une archive compressée, utilisez (avec l'option z
=gzip):
tar -cvzf archive.tar.gz file1 file2
Ce qui donnera archive.tar.gz
Pour décompresser et extraire des fichiers d'une archive gzip, utilisez :
tar -xvzf archive.tar.gz
bzip2
est similaire à gzip. Il utilise simplement un algorithme de compression différent.
Pour créer un fichier compressé, utilisez :
bzip2 file1
Pour décompresser un fichier, utilisez :
bunzip2 file1.bz2
Pour combiner des fichiers dans une archive compressée, utilisez (avec l'option j
=bzip2):
tar -cvjf archive.tar.bz2 file1 file2
Ce qui donnera archive.tar.bz2
Pour décompresser et extraire les fichiers d'une archive bzip2, utilisez :
tar -xvjf archive.tar.bz2
zip
est utilisé pour empaqueter et compresser (pour archiver) des fichiers.
Pour combiner des fichiers individuels dans une archive compressée, utilisez :
zip archive.zip file1 file2
Pour combiner des répertoires entiers dans une archive compressée :
zip -r archive.zip directory1 directory2 directory3
Pour décompresser et extraire des fichiers ou des répertoires d'une archive zip, utilisez :
unzip archive.zip
Pour afficher tous les fichiers stockés dans une archive, utilisez :
unzip -l archive.zip
3. locate
– rechercher des fichiers sous Linux.
Dans la partie 1, nous avons abordé l'utilisation de find
et grep
. Locate utilise un processus d'arrière-plan qui s'exécute périodiquement pour rechercher et stocker les fichiers de votre système dans sa propre base de données. C'est là son seul avantage… la rapidité !
Sur certaines distributions, Ubuntu par exemple, vous devez installer manuellement :
sudo apt-get install locate
Pour rechercher un fichier, utilisez (avec l'option i
=ignorer la casse) :
locate -i filename
Par exemple :
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 ...
La base de données sera mise à jour quotidiennement via cron. Cependant, si vous devez le mettre à jour manuellement, vous pouvez utiliser :
sudo updatedb
4. ps
– des informations sur les processus en cours d'exécution.
Dans la partie 1, nous avons examiné pstree
, une alternative plus visuelle à la commande ps. Une façon d'utiliser ps
pour obtenir plus d'informations sur les processus en cours d'exécution, utilisez ce qui suit :
ps aux | less
Le a
listera tous les processus des utilisateurs à l'exception des chefs de groupe et des processus qui ne sont pas associés à un terminal.
Le u
L'option fournit des informations détaillées sur chaque processus.
Le x
l'option listera tous les processus lorsqu'elle est utilisée avec le a
option.
Pour afficher une arborescence de processus :
ps axjf | less
Pour afficher des informations sur les fils de discussion, utilisez :
ps -eLf | less
ps axms | less
Pour afficher tous les processus exécutés en tant que root au format utilisateur, utilisez :
ps -U root -u root u
Pour afficher uniquement les ID de processus de syslogd, utilisez :
ps -C syslogd -o pid=
Pour afficher uniquement le nom du PID 411, utilisez :
ps -q 411 -o comm=
Les exemples ci-dessus proviennent de man ps
.
5. Utiliser des scripts Bash.
Un script Bash est un fichier en texte brut contenant une série de commandes. Ce sont des commandes que nous tapons habituellement dans la ligne de commande (par exemple, rsync ...
ou cp ...
), mais nous aimerions gagner du temps en n'ayant pas à taper des commandes manuellement à chaque fois, ou nous aimerions programmer ces commandes pour qu'elles s'exécutent plus tard, en utilisant cron.
Pour créer un script bash, placez #!/bin/bash
en haut du fichier. Voici un script bash simple pour exécuter des sauvegardes :
#!/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
Une fois que vous avez tapé ou collé ceci dans un nouveau fichier, vous pouvez l'enregistrer sous le nom de script.sh. Dans ce cas, remotebackup.sh. Ensuite, modifiez les permissions du fichier pour le rendre exécutable :
chmod +x remotebackup.sh
Pour exécuter/lancer le script depuis le répertoire courant, vous tapez :
./remotebackup.sh
Vous pouvez également planifier l'exécution du script Bash à l'aide de maïs, comme indiqué dans la section suivante.
Consultez également le BashScripting pour débutants d'Ubuntu.
6. cron
– Configurez les tâches planifiées à exécuter.
Le cron
daemon est un outil Linux intégré qui exécute périodiquement des tâches planifiées (commandes ou scripts shell) à des heures, des dates ou des intervalles fixes. Les administrateurs système utilisent généralement cron pour automatiser les tâches de maintenance et d'administration du système. Par exemple, en utilisant cron
pour exécuter rsync
tous les soirs.
Voici un exemple de cron
entrée sur une seule ligne utilisée pour exécuter un script de sauvegarde tous les soirs à 2 h :
0 2 * * * ~/myscripts/remotebackup.sh
Pour commencer, lisez le cron
guides d'installation créés par Ubuntu et Red Hat et référencer la page de manuel cron. Il existe également des générateurs d'expressions cron en ligne.
7. nmcli
– gestion du réseau.
NetworkManager est un ensemble d'outils pour gérer la connectivité réseau sur votre système Linux. Il fonctionne pour les connexions filaires, sans fil et même Bluetooth.
Pour afficher tous les périphériques réseau disponibles, utilisez :
nmcli d
Par exemple :
Red Hat a publié un excellent guide de mise en réseau pour nmcli
.
8. ping
– envoyer ICMP ECHO_REQUEST aux hôtes du réseau.
Le ping
(Packet Internet Groper) est utilisée pour vérifier la connectivité réseau entre les serveurs et les autres hôtes. Vous pouvez entrer l'adresse IP ou l'URL, et la commande ping envoie alors un paquet de données à l'adresse spécifiée avec le message « PING » et attend une réponse du serveur/hôte de destination. Le temps nécessaire pour recevoir ce package de réponse est signalé. Ce temps s'appelle la latence. Faible latence =réponse de connexion plus rapide.
ping [hostname/ip]
Par exemple :
Utilisez le -c
flag pour spécifier le nombre de paquets ping à envoyer. Par exemple :
ping -c 5 IP_ADDRESS
9. traceroute
– vérifier la route empruntée par les paquets vers un hôte spécifié.
traceroute
vérifie la route empruntée par les paquets pour atteindre un hôte spécifié. Il utilise le champ de durée de vie (TTL) du protocole IP et tente d'obtenir une réponse ICMP TIME_EXCEEDED de chaque passerelle le long du chemin vers l'hôte. (Source :man traceroute) Traceroute peut aider à trouver la source des retards de latence du réseau, des pannes et d'autres problèmes de routage du réseau.
Jetez également un œil à mtr
(Mon Traceroute).
10. nslookup
– interroger les serveurs de noms Internet (NS) de manière interactive.
nslookup
(Name Server Lookup) est une commande utilisée pour collecter des informations à partir des systèmes de noms de domaine (DNS). Avec nslookup
, les administrateurs système peuvent demander des informations sur le nom de domaine ou l'adresse IP.
Pour rechercher l'enregistrement A d'un domaine, utilisez :
nslookup haydenjames.io
Pour rechercher les enregistrements NS d'un domaine afin de découvrir ses serveurs faisant autorité, utilisez :
nslookup -type=ns ubuntu.com
Pour rechercher les enregistrements MX d'un domaine, utilisez :
nslookup -query=mx redhat.com
Pour rechercher le SOA (début d'autorité) d'un domaine, utilisez :
nslookup -query=soa debian.com
Pour afficher la liste des enregistrements DNS d'un domaine, utilisez :
nslookup -type=any mysql.com
Pour rechercher le rDNS (DNS inversé) d'un domaine, utilisez :
nslookup [domain_IP]
Voir aussi, le host
et dig
commandes.
Astuce supplémentaire : Consultez explainshell.com pour faire correspondre les arguments de ligne de commande avec leur texte d'aide.
C'est tout pour le moment. J'espère que vous avez apprécié la partie 3. Veuillez partager, vous abonner, mettre en signet et laisser tout commentaire ou suggestion que vous pourriez avoir.