Les systèmes d'exploitation Linux offrent d'innombrables commandes et utilitaires sysadmin, qui aident les utilisateurs, les développeurs et les ingénieurs dans les tâches d'administration système. Par exemple, les commandes et les packages sysadmin peuvent aider les utilisateurs à optimiser ou à gérer les applications et fournir des informations de dépannage précieuses aux administrateurs réseau ou aux administrateurs système.
Ces commandes s'appliquent aux environnements de développement Linux, aux VM, aux conteneurs et au bare metal.
Meilleures commandes Linux pour sysadmin
Cet article passe en revue certaines commandes sysadmin de base fréquemment utilisées pour l'administration système Linux avec quelques exemples pratiques.
1. Boucler
Curl est un outil en ligne de commande pour transférer des données depuis ou vers un serveur. Il prend en charge des protocoles tels que FTP, FTPS, HTTP, HTTPS, IMAP, POP3, POP3S, RTMP, SMBS, SMTP, SMTPS, TELNET, etc. Vous pouvez l'utiliser pour tester la connectivité ou un point de terminaison vers un autre service tel qu'une base de données.
Résoudre une erreur HTTP 500 :
$ curl -I -s my_app:5000
Incluez l'option -I pour afficher les informations d'en-tête et l'option -s pour faire taire le corps de la réponse.
Vérifiez le point de terminaison de la base de données à partir de votre hôte local :
$ curl -I -s my_database:27017 HTTP/1.0 200 OK
200 indiquent que votre connexion semble correcte.
$ curl my_database:27017 curl: (6) Couldn't resolve host 'database'
L'erreur indique que votre application ne peut pas résoudre la base de données soit parce que l'URL de la base de données n'est pas disponible, soit parce que le système hôte, le conteneur ou la machine virtuelle n'a pas de serveur de noms pour résoudre le nom d'hôte.
2. ls
Ls répertorie les fichiers dans un répertoire ou peut vous aider à examiner leurs autorisations. Vous pouvez également l'utiliser dans une infrastructure de conteneur pour déterminer le répertoire et les fichiers de votre image de conteneur. Si vous ne pouvez pas exécuter votre application en raison d'un problème d'autorisations, vérifiez les autorisations à l'aide de ls -l, puis attribuez les autorisations de fichier appropriées à l'aide de chmod. Vous pouvez également le combiner avec des indicateurs tels que ls -a pour répertorier tous les fichiers ou ls -R pour répertorier les fichiers et les répertoires de manière récursive.
[tuts@fosslinux dist]$ ls -l -rwxr-xr-x. 1 tuts tuts 7292656 Jun 17 12:54 hello
[tuts@fosslinux hello]$ ls -R
3. mod
Utilisez la commande chmod pour définir des autorisations sur un binaire d'application ou un fichier. Commencez par utiliser la commande ls pour vérifier les autorisations de vos fichiers, puis attribuez les autorisations appropriées.
Vérifiez les autorisations des fichiers avec ls -l :
[tuts@fosslinux ~]$ ls -l -rw-rw-r--. 1 tuts tuts 6 Jun 24 18:05 dingdong.py
Accordez des autorisations d'exécution au fichier dingdong.py pour permettre aux utilisateurs de s'exécuter.
[tuts@fosslinux ~]$ chmod +x dingdong.py [tuts@fosslinux ~] ls -l -rwxrwxr-x. 1 tuts tuts 6 Jun 24 18:05 dingdong.py
4. queue
Tail affiche le dernier contenu d'un fichier. Il est utile si vous souhaitez consulter les journaux des demandes récentes. Par exemple, vous suivez les journaux les plus récents sur votre serveur.
$ sudo tail -f /var/log/httpd/error_log
L'option -f génère les lignes de journal telles qu'elles sont écrites dans le fichier. Il a un script d'arrière-plan qui accède au point de terminaison toutes les quelques secondes, et le journal enregistre la demande. Vous pouvez également suivre un nombre spécifique de lignes du fichier avec l'option -n.
$ sudo tail -n 3 /var/log/httpd/error_log
5. grep
Vous pouvez utiliser grep pour rechercher des fichiers afin de rechercher des modèles spécifiques et mettre en surbrillance les lignes pertinentes dans la sortie d'une autre commande Linux. Par exemple, pour rechercher la ligne "CRITICAL" dans le /var/log/dnf.log :
[tuts@fosslinux ~]$ grep CRITICAL Error /var/log/dnf.log
Utilisez * pour rechercher dans tous les fichiers d'un répertoire et l'indicateur -r (récursif) pour inclure la recherche dans les sous-répertoires.
cd /var/log/ $ grep -r CRITICAL Error *
Vous pouvez également isoler la sortie de la commande grep en redirigeant le résultat :
$ cat dnf.log | grep CRITICAL Error
6. ps
La commande ps est utilisée pour rechercher les ID de processus et afficher l'état des processus en cours d'exécution. Vous pouvez utiliser cette commande pour déterminer toutes les applications en cours d'exécution.
[tuts@fosslinux log]$ ps -ef
Vous pouvez également le combiner avec les commandes pipe et grep
[tuts@fosslinux log]$ ps -ef | grep httpd
Utilisez l'indicateur -u pour afficher tous les processus appartenant au nom d'utilisateur :
[tuts@fosslinux log]$ ps -u username
Utilisez l'indicateur aux pour afficher tous les processus avec des informations détaillées telles que le PID, le pourcentage de temps CPU utilisé par le processus (%CPU), le pourcentage de RAM (%MEM), la mémoire virtuelle utilisée (VSZ), la mémoire physique (RSS), et ainsi de suite.
7. haut
La commande top affiche une liste continuellement mise à jour des processus système dans l'ordre d'activité des processus. Vous pouvez l'utiliser pour déterminer quels processus sont en cours d'exécution et combien de mémoire et de CPU ils consomment.
Les informations d'affichage se composent d'un résumé du système et du tableau des processus triés par activité du processeur. Certaines informations incluent la disponibilité du système, la charge moyenne, le propriétaire du processus (USER), le pourcentage de temps CPU utilisé par le processus (%CPU), le pourcentage de RAM utilisé par le processus (%MEM), le temps CPU total utilisé par le processus (TIME[+ ]), etc.
Vous pouvez également émettre plusieurs commandes pendant que la commande top est en cours d'exécution. Par exemple, appuyez sur h ou ? pour afficher les commandes que vous pouvez émettre, k pour tuer un processus, z pour les couleurs globales ou q pour quitter top.
8. env
La commande env est utilisée pour définir ou afficher vos variables d'environnement. Utilisez env pour vérifier si un mauvais environnement empêche votre application de s'exécuter.
$ env PYTHON_PIP_VERSION=20.2.2 HOME=/root DB_NAME=my_database PATH=/usr/local/bin:/usr/local/sbin LANG=C.UTF-8 PYTHON_VERSION=3.9.5
9. netstat
netstat affiche l'état de votre système ou de votre réseau d'infrastructure. Vous pouvez l'utiliser pour afficher les ports réseau et les connexions entrantes. Vous pouvez le combiner avec d'autres options telles que le protocole, le port ou le processus pour démontrer les ports actuels que vos applications système utilisent.
# netstat -tulpn
10. ip/ifconfig
La commande ip remplace ifconfig dans certaines distributions Linux et peut configurer ou afficher les interfaces réseau et modifier les adresses IP, les objets voisins et les routes. Vous pouvez également l'utiliser pour vérifier l'adresse IP de votre hôte ou de votre conteneur.
Utilisez "ip a" (adresse) pour afficher des informations sur toutes les interfaces réseau :
[tuts@fosslinux]$ ip a
Utilisez la commande "ip link set device_name" pour activer ou désactiver une interface :
[tuts@fosslinux]$ ip link set eth0 up #bring up [tuts@fosslinux]$ ip link set eth0 down #bring down
11. df
Utilisez la commande df (afficher l'espace disque libre) pour vérifier la taille du système de fichiers et résoudre les problèmes d'espace disque. Il est utile dans les scénarios où vous recevez un message d'erreur signalant un manque d'espace libre dans votre système sur un hôte de conteneur.
[tuts@fosslinux ~]$ df -h
L'indicateur -h affiche les informations dans un format lisible par l'homme (c'est-à-dire, Mo et Go). Par défaut, la commande df affiche les résultats pour chaque utilisateur sous le répertoire racine. Cependant, vous pouvez limiter l'affichage à un répertoire spécifique (par exemple, df -h/tmp)
Utilisez l'indicateur -x pour ignorer tout système de fichiers :
[tuts@fosslinux ]$ df -h -x tmpfs
Utilisez l'indicateur -t pour répertorier uniquement le type de système de fichiers spécifique. Par exemple, système de fichiers btrfs en lecture seule :
[tuts@fosslinux ]$ df -h -t btrfs
Utilisez l'indicateur –total pour afficher les totaux généraux :
[tuts@fosslinux ]$ df -h -t btrfs --total
12. du
Utilisez la commande du pour afficher des informations détaillées sur les fichiers qui utilisent l'espace disque dans un répertoire. Je trouve cela utile pour déterminer quels journaux occupent le plus d'espace. Par exemple, exécutez la commande du avec l'indicateur -h (lisible par l'homme) et -s (résumé) :
[tuts@fosslinux ~]$ sudo du -h /var/log
[tuts@fosslinux ~]$ sudo du -hs /var/log 1.5G /var/log
13. dig/ nslookup
dig est un excellent outil de ligne de commande pour effectuer des requêtes DNS. Il est utilisé au format suivant :
dig <DNS server> <domain> <query-type>
Le
Pour afficher l'enregistrement A pour bing.com :
[tuts@fosslinux ~]$ dig bing.com +short 13.107.21.200 204.79.197.200
Pour afficher l'enregistrement MX de bing.com :
[tuts@fosslinux ~]$ dig bing.com MX +short 10 bing-com.mail.protection.outlook.com.
14. pare-feu-cmd
Firewall-cmd est une interface conviviale pour nftables et est livrée avec de nombreuses distributions. Il permet aux utilisateurs de définir des règles pour régir le trafic réseau entrant et sortant vers votre ordinateur. Ces règles peuvent être regroupées en zones qui définissent les niveaux de confiance de sécurité réseau des interfaces réseau, des services ou des connexions. Il fonctionne avec IPv4, IPv6, les ensembles IP et les ponts Ethernet et présente une syntaxe de commande simple et intuitive.
Pour afficher la zone de pare-feu actuelle :
[tuts@fosslinux ~]$ sudo firewall-cmd --get-active-zones libvirt interfaces: virbr0
Ajoutez l'indicateur –list-all pour afficher ce que chaque zone autorise :
[tuts@fosslinux ~]$ sudo firewall-cmd --zone libvirt --list-all
Pour ajouter un service :
$ sudo firewall-cmd --add-service http --permanent $ sudo firewall-cmd –reload
Si vous débutez avec la sécurité réseau, vous pouvez lire notre guide complet sur la gestion de la sécurité réseau avec firewalld pour plus d'exemples et d'astuces.
15. systemctl
systemd est disponible dans la plupart des distributions Linux, ce qui rend la commande systemctl disponible pour gérer les services et les unités systemd.
Pour démarrer un service :
[tuts@fosslinux ~]$ sudo systemctl start httpd
Pour arrêter un service :
[tuts@fosslinux ~]$ sudo systemctl stop httpd
Pour vérifier l'état du service.
16. tuer et tuer tous
Vous pouvez utiliser les commandes kill et killall pour mettre fin à un processus incontrôlable ou libérer certaines ressources système. Vous pouvez envoyer le signal SIGTERM (-15) ou SIGKILL (-9) à un processus pour le tuer. SIGTERM (soft kill) permet à un processus système de se terminer avant qu'il ne soit terminé. SIGKILL termine le processus immédiatement.
Utilisez kill avec l'indicateur -l pour afficher tous les signaux que vous pouvez envoyer à un processus.
[tuts@fosslinux ~]$ kill -l
Pour tuer un processus, déterminez son ID de processus, puis émettez la commande kill.
[tuts@fosslinux ~]$ ps aux|grep httpd
Pour tuer le processus httpd avec l'ID de processus 1525 :
[tuts@fosslinux ~]$ sudo kill -9 1525
Utilisez killall pour tuer un programme par son nom. Il tue le processus parent et tous les processus enfants.
[tuts@fosslinux ~]$ sudo killall httpd
Remarque :Utilisez les commandes kill et killall avec prudence, car elles pourraient casser ou laisser votre système dans un état instable.
17. historique
La commande history affiche un historique de toutes les commandes que vous avez utilisées dans une session. Par exemple, vous pouvez l'utiliser pour enregistrer les commandes que vous avez utilisées pour dépanner une application ou votre système.
[tuts@fosslinux ~]$ history 790 sudo firewall-cmd --get-active-zones 791 sudo firewall-cmd --zone libvirt --list-all 792 history
Utiliser ! avec un numéro de commande pour la ré-exécuter sans avoir à la retaper.
[tuts@fosslinux ~]$ !790 sudo firewall-cmd --get-active-zones libvirt interfaces: virbr0
Conclusion
Comprendre certaines commandes de base de l'administrateur système peut vous aider à dépanner les applications, à résoudre les problèmes, à maintenir le fonctionnement optimal des systèmes, à assurer la sécurité du système ou même à vous aider à communiquer efficacement avec les administrateurs système pour résoudre les problèmes de votre infrastructure.
J'espère que ces commandes vous seront utiles !