Linux offre d’innombrables commandes et utilitaires qui vous aident à effectuer vos tâches d’administration système rapidement et efficacement.

Votre travail d’administrateur système comprend l’installation et l’exécution de logiciels, le contrôle d’accès, la surveillance, la garantie de disponibilité, les sauvegardes, la restauration des sauvegardes et, bien sûr, la lutte contre les incendies. 😜

Dans cet article, nous passons en revue quelques-unes des commandes fréquemment utilisées par les administrateurs système Linux dans leur travail quotidien.

uname

Utilisez la commande uname avec l’option -a pour imprimer des informations sur le système. Cette commande vous indiquera le nom du noyau, la version du noyau, la version du noyau, le nom de l’hôte, le type de processeur et les informations relatives à votre plate-forme matérielle.

ubuntu@ubuntu18:~$ uname -a
Linux ubuntu18 5.3.0-1028-azure #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Voici ce que cela signifie :

nom du noyau : Linux 
nom d'hôte : ubuntu18 
version du noyau : 5.3.0-1028-azure 
version du noyau : #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 
nom du matériel de la machine : x86_64 
processeur : x86_64 
plate-forme matérielle : x86_64 
système d'exploitation : GNU/Linux

df

Utilisez la commande df pour vérifier la taille du système de fichiers et l’espace disponible. Cette commande utilisée seule affiche des résultats en blocs de 1K.

ubuntu@ubuntu18:~$ df 
Système de fichiers 1K-blocs Utilisé Disponible Utilisation% Monté sur
udev 437208 0 437208 0% /dev
tmpfs 91100 692 90408 1% /run
/dev/sda1 30309264 2383952 27908928 8% /
....

L’option -h affiche la sortie dans un format lisible par l’homme, c’est-à-dire en Mo et en Go.

ubuntu@ubuntu18:~$ df -h
Taille du système de fichiers Utilisé Utilisation disponible% Monté sur
udev 427M 0 427M 0% /dev
tmpfs 89M 692K 89M 1% /run
/dev/sda1 29G 2.3G 27G 8% /
tmpfs 445M 0 445M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 445M 0 445M 0% /sys/fs/cgroup
/dev/sda15 105M 3.6M 101M 4% /boot/efi
/dev/sdb1 3.9G 16M 3.7G 1% /mnt
tmpfs 89M 0 89M 0% /run/user/1001 

Pour ignorer un système de fichiers, par exemple tmpfs, afin d’obtenir un résultat plus propre, utilisez l’option -x

ubuntu@ubuntu18:~$ df -h -x tmpfs
Taille du système de fichiers Utilisé Utilisation disponible% Monté sur
udev 427M 0 427M 0% /dev
/dev/sda1 29G 2.3G 27G 8% /
/dev/sda15 105M 3.6M 101M 4% /boot/efi
/dev/sdb1 3.9G 16M 3.7G 1% /mnt

Pour répertorier uniquement un type de système de fichiers spécifique, utilisez le drapeau -t. Par exemple, pour afficher uniquement le système de fichiers ext4 :

ubuntu@ubuntu18:~$ df -h -t ext4
Taille du système de fichiers Utilisé Utilisation disponible% Monté sur
/dev/sda1 29G 2.3G 27G 8% /
/dev/sdb1 3.9G 16M 3.7G 1% /mnt

L’utilisation de l’indicateur total ajoutera une ligne montrant les totaux généraux :

ubuntu@ubuntu18:~$ df -h -t ext4 --total
Taille du système de fichiers utilisée Utilisation disponible% Monté sur
/dev/sda1 29G 2.3G 27G 8% /
/dev/sdb1 3.9G 16M 3.7G 1% /mnt
<b>total 33G 2.3G 31G 8% -</b>

du

Pour vérifier l’utilisation de l’espace disque dans un répertoire, utilisez la commande du. Par exemple, pour voir l’utilisation de l’espace disque dans le répertoire /var/log. Utilisez le drapeau -h pour obtenir un format lisible par l’homme.

ubuntu@ubuntu18:~$ sudo du -h /var/log
24K /var/log/Microsoft/Azure/NetworkWatcherAgent/Logs
28K /var/log/Microsoft/Azure/NetworkWatcherAgent
32K /var/log/Microsoft/Azure
36K /var/log/Microsoft
60K /var/log/apt
4.0K /var/log/samba
177M	/var/log/journal/0f4f926f583b4691af7de11025b19ff6
177M /var/log/journal
...
204M /var/log

Pour ne voir que l’utilisation totale, utilisez le drapeau -s (summary).

ubuntu@ubuntu18:~$ sudo du -hs /var/log
204M /var/log

libre

Utilisez la commande free pour voir la mémoire totale, utilisée et libre du système. Utilisez le drapeau -h pour un format lisible par l’homme.

ubuntu@ubuntu18:~$ free -h
              total utilisé libre partagé buff/cache disponible
Mémoire : 889M 272M 100M 712K 517M 443M
Swap : 0B 0B 0B
total - Mémoire totale installée (memtotal swaptotal)
used - Mémoire utilisée
free - mémoire inutilisée (memfree swapfree)
buffers - Mémoire utilisée par les tampons du noyau
cache - Mémoire utilisée par les caches de pages
buff/cache - somme des buffers et du cache
available - Estimation de la mémoire disponible pour le démarrage de nouvelles applications, sans swapping

ps

Utilisez ps pour afficher des informations sur l’état des processus en cours d’exécution sur le système. Pour afficher tous les processus appartenant à l’utilisateur ubuntu, utilisez le drapeau -u avec le nom de l’utilisateur :

ubuntu@ubuntu18:~$ ps -u ubuntu
   PID TTY TIME CMD
  7804 ? 00:00:00 systemd
  7805 ? 00:00:00 (sd-pam)
  7940 ? 00:00:00 sshd
  7941 pts/0 00:00:00 bash
  8111 ?        00:00:00 sshd
  8112 pts/1 00:00:00 bash
 13868 ?        00:00:00 sshd
 13869 pts/2 00:00:00 bash
 13885 pts/0 00:00:00 man
 13895 pts/0 00:00:00 pager
 18111 pts/2 00:00:00 man
 18121 pts/2 00:00:00 pager
 18485 pts/1 00:00:00 ps

Pour afficher tous les processus, exécutez ps avec les drapeaux aux :

ubuntu@ubuntu18:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.7 160076 7020 ?        Ss Jun29 0:34 /sbin/init
root 2 0.0 0.0 0 0 ?        S Jun29 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ?        I< Jun29 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ?        I< Jun29 0:00 [rcu_par_gp]
root 6 0.0 0.0 0 0 ?        I< Jun29 0:00 [kworker/0:0H-kb]
....

IntituléSignification
PIDNuméro d’identification du processus
%CPUPourcentage de temps CPU utilisé par le processus
%MEMPourcentage de RAM utilisé par le processus
VSZMémoire virtuelle utilisée en Ko
RSSMémoire physique utilisée par le processus en Ko
TTYTerminal associé au processus
STATR – En cours d’exécution ou prêt à être exécuté, S – En sommeil, I – Inactif, T – Arrêté, Z – Zombie, D – En attente d’une entrée/sortie de disque, X – Mort, W – Remplacé, N – Processus de faible priorité, < – Processus de haute priorité

haut

Alors que la commande ps affiche un instantané de l’état des processus à tout moment, la commande top affiche une liste actualisée en permanence (toutes les trois secondes, par défaut) des processus du système dans l’ordre de leur activité.

La sortie de la commande top se compose de deux parties principales : Le résumé du système en haut de la page et le tableau des processus triés par activité du processeur.

top - 14:25:32 up 44 days, 11:37, 1 user, load average : 0.00, 0.00, 0.00
Tâches : 114 au total, 1 en cours, 59 en sommeil, 0 arrêté, 0 zombie
%Cpu(s) : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 910992 total, 101208 libre, 274712 utilisé, 535072 buff/cache
KiB Swap : 0 total, 0 libre, 0 utilisé.   458492 Mem disponible 

   PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND    
 50497 ubuntu 20 0 44528 3944 3368 R 0.7 0.4 0:00.15 top   
     1 root 20 0 160076 7020 4400 S 0.0 0.8 0:34.85 systemd    
     2 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kthreadd   
     3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp     
     4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 
     6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0 : 
     9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_ 

Voici quelques-uns des champs du résumé du système :

upUptime. Temps écoulé depuis le dernier démarrage de la machine.
load average (moyenne de charge)La valeur inférieure à 1,0 signifie que la machine n’est pas occupée. Il existe 3 valeurs. La première est la moyenne des 60 dernières secondes, la deuxième est la moyenne des 5 dernières minutes et la troisième montre la moyenne des 15 dernières minutes.
%Cpu(s)

Cette ligne décrit les activités de l’unité centrale.

0.3 us, utilisateur 0.3 % de l’unité centrale est utilisée pour des processus d’utilisateur.
0.0 sy, système 0.0 % de l’unité centrale est utilisée pour les processus du système.
0.0 ni, nice 0.0% L’unité centrale est utilisée par des processus de faible priorité (nice)
99.7 id, idle 99.7% de l’unité centrale est inactive
0.0 wa, IO-wait 0.0% L’unité centrale est en attente d’E/S
0.0 hi temps passé sur les interruptions matérielles
0.0 si temps passé sur les interruptions logicielles
0.0 st temps de pierre de cette VM par l’hyperviseur

Les champs de la table des processus sont les suivants :

PIDNuméro d’identification du processus
USERPropriétaire du processus
PRPriorité
NIValeur agréable
VIRTMémoire virtuelle utilisée par le processus (Ko)
RESMémoire physique utilisée par le processus
SHRMémoire partagée utilisée par le processus
SÉtat du processus. R – Running, S – sleeping, I – Idle, T – stopped, Z – zombie, D – waiting for disk I/O, W- swapped out, X – dead
%CPUTemps d’utilisation du processeur en pourcentage
%MEMMémoire physique utilisée par le processus
TIME[ ]Temps total de l’unité centrale utilisé par le processus
COMMANDENom du programme

Lorsque top est en cours d’exécution, vous pouvez lancer un certain nombre de commandes. Appuyez sur h ou ? pour voir les commandes qui peuvent être exécutées pendant que top est en cours d’exécution. Appuyez sur k pour tuer un processus. Appuyez sur q pour quitter top.

dig

dig est un excellent outil pour les requêtes DNS. Il s’utilise comme suit :

dig   

  • est le nom du serveur DNS que vous souhaitez interroger
  • est le nom du domaine que vous souhaitez interroger
  • est le nom de l’enregistrement que vous souhaitez connaître – A, MX, NS SOA, etc.

Pour supprimer la sortie verbale, utilisez le drapeau court.

Pour afficher l’enregistrement A de google.com, utilisez :

ubuntu@ubuntu18:~$ dig google.com short
172.217.164.174

Pour voir les enregistrements MX de google.com, utilisez : ubuntu@ubuntu18:~$ dig google.com short 217.164.174

ubuntu@ubuntu18:~$ dig google.com MX short
50 alt4.aspmx.l.google.com.
10 aspmx.l.google.com.
20 alt1.aspmx.l.google.com.
40 alt3.aspmx.l.google.com.
30 alt2.aspmx.l.google.com.

Si vous avez besoin d’interroger les enregistrements DNS sur Internet, vous pouvez utiliser l’outil de recherche DNS.

who et w

who affiche les utilisateurs connectés.

ubuntu@ubuntu18:~$ who
ubuntu pts/0 2020-08-14 17:28 (183.83.211.129)
ubuntu pts/1 2020-08-14 17:58 (183.83.211.129)

w affiche les utilisateurs actuellement connectés et leurs processus. L’en-tête indique l’heure actuelle, le temps de fonctionnement du système, le nombre d’utilisateurs connectés et les moyennes de charge du système.

ubuntu@ubuntu18:~$ w
 18:07:33 up 46 days, 15:19, 2 users, load average : 0.00, 0.00, 0.00
UTILISATEUR TTY DE LOGIN@ IDLE JCPU PCPU WHAT
ubuntu pts/0 183.83.211.129 17:28 2.00s 0.10s 0.00s w
ubuntu pts/1 183.83.211.129 17:58 9:07 0.05s 0.01s vi

La partie suivante montre les noms d’utilisateur, le terminal et l’IP distante à partir de laquelle ils sont connectés, le temps de connexion, le temps d’inactivité, la JCPU, la PCPU et le programme qu’ils exécutent. JCPU est le temps utilisé par tous les processus attachés au tty tandis que PCPU est le temps utilisé par le processus en cours.

tar

Avec GNU tar, vous pouvez archiver plusieurs fichiers en un seul.

Par exemple, créez un répertoire myfiles et trois fichiers a.txt, b.txt, c.txt dans le répertoire myfiles :

ubuntu@ubuntu18:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}

Créez maintenant une archive nommée allfiles.tar contenant tous les fichiers du répertoire myfiles :

ubuntu@ubuntu18:~$ tar -cvf allfiles.tar myfiles
mesfichiers/
myfiles/c.txt
myfiles/a.txt
mesfichiers/b.txt

Liste tous les fichiers du répertoire actuel. Vous pouvez voir le répertoire myfiles et l’archive allfiles.tar :

ubuntu@ubuntu18:~$ ls
allfiles.tar myfiles

Vous pouvez décompresser une archive avec l’option -x. Ainsi, pour décompresser allfiles.tar :

ubuntu@ubuntu18:~$ tar -xvf allfiles.tar
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt

Vous pouvez également compresser cette archive avec l’option -z. Cela créera une archive compressée avec gzip.

ubuntu@ubuntu18:~$ tar -zcvf allfiles.tar.gz myfiles
mesfiles/
mesfiles/c.txt
myfiles/a.txt
mesfiles/b.txt
ubuntu@ubuntu18:~$ ls
allfiles.tar.gz myfiles

Pour décompresser une archive compressée, utilisez le drapeau -z avec le drapeau -x.

ubuntu@ubuntu18:~$ tar -zxvf allfiles.tar.gz 
myfiles/
myfiles/c.txt
myfiles/a.txt
mesfiles/b.txt

grep

grep est utilisé pour rechercher un motif dans un fichier ou un ensemble de fichiers. Il affiche toutes les lignes correspondant à ce motif. Par exemple, pour rechercher la ligne contenant “ServerRoot” dans /etc/apache2/apache2.conf :

ubuntu@ubuntu18:~$ grep ServerRoot /etc/apache2/apache2.conf 
# ServerRoot : Le sommet de l'arborescence des répertoires sous lesquels les fichiers du serveur sont stockés
#ServerRoot "/etc/apache2"

Pour effectuer une recherche dans tous les fichiers d’un répertoire, utilisez *. Pour inclure la recherche dans les sous-répertoires, utilisez le drapeau -r (récursif). Ainsi, pour rechercher toutes les lignes contenant le motif “VirtualHost” dans tous les fichiers de /etc/apache2 :

ubuntu@ubuntu18:~$ cd /etc/apache2
ubuntu@ubuntu18:/etc/apache2$ grep -r VirtualHost *
apache2.conf:# Si vous ne spécifiez pas de directive ErrorLog à l'intérieur d'un , vous devez vous assurer qu'il n'y a pas d'erreur.
apache2.conf:# enregistré ici.  Si vous *définissez* un fichier journal d'erreurs pour un 
conf-available/localized-error-pages.conf:# même sur une base par Serveur Virtuel.  Si vous incluez l'alias dans le serveur global
conf-available/other-vhosts-access-log.conf:# Définir un journal d'accès pour les Serveurs Virtuels qui ne définissent pas leur propre fichier journal
ports.conf:# vous devez modifier la déclaration VirtualHost dans le fichier
sites-available/000-default.conf:
...

rsync

<a href="https://geekflare.com/fr/rsync-guide/">rsync</a> est un outil de ligne de commande rapide pour synchroniser des fichiers et des répertoires entre deux emplacements. Il peut être utilisé pour la copie locale et distante et est rapide car il n'envoie que les différences entre les fichiers sources et les fichiers existants dans la destination.

Il est largement utilisé pour les sauvegardes et comme commande de copie améliorée pour un usage quotidien.

Voici un exemple :

Pour copier/rsynchroniser tous les fichiers du répertoire myfiles vers le répertoire backups :

ubuntu@ubuntu18:~$ rsync -avh myfiles/ /backups
envoi de la liste incrémentale des fichiers
./
a.txt
b.txt
c.txt

envoyé 218 octets reçu 76 octets 588.00 octets/sec
la taille totale est de 0 la vitesse est de 0.00

Pour rsynciser tous les fichiers du répertoire myfiles vers le répertoire backups sur un hôte distant, incluez remote_user @remote_host dans le nom de destination. Ainsi, pour rsynciser le répertoire myfiles vers un hôte distant avec l’IP 10.0.0.50 :

vagrant@ubuntu-xenial:~$ rsync -avh myfiles/ vagrant@10.0.0.50:/home/vagrant
le mot de passe de vagrant@10.0.0.50 : 
envoi de la liste incrémentale des fichiers
./
a.txt
b.txt
c.txt

envoyé 230 octets reçu 76 octets 47.08 octets/sec
la taille totale est de 0 la vitesse est de 0,00

ss

la commandess est utilisée pour extraire des statistiques sur les sockets, de manière similaire à l’ancien utilitaire netstat. Pour afficher les sockets TCP, utilisez le drapeau -t.

ubuntu@ubuntu18:~$ ss -t 
State Recv-Q Send-Q Local Address:Port Peer Address:Port         
ESTAB 0 0 10.0.0.4:53852 168.63.129.16:8037         
ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:64118        
ESTAB 0 0 10.0.0.4:33256 169.254.169.254:http         
ESTAB 0 1080 10.0.0.4:ssh 222.186.30.35:11527        
ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:63049

Cela ne permet pas d’afficher les sockets qui écoutent. Pour inclure les sockets qui écoutent et celles qui n’écoutent pas, utilisez les drapeaux -t et -a.

ubuntu@ubuntu18:~$ ss -t -a 
State Recv-Q Send-Q Local Address:Port Peer Address:Port         
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*         
LISTEN 0 80 127.0.0.1:mysql 0.0.0.0:*         
LISTEN 0 128 127.0.0.53%lo:domain 0.0.0.0:*         
ESTAB 0 0 10.0.0.4:53852 168.63.129.16:8037         
ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:64118        
ESTAB 0 0 10.0.0.4:33256 169.254.169.254:http         
ESTAB 0 1080 10.0.0.4:ssh 222.186.30.35:11527        
ESTAB 0 120 10.0.0.4:ssh 183.83.211.129:63049        
LISTEN 0 128 [: :]:ssh [: :]:*    
LISTEN 0 128 *:http *:*

localiser

La commande locate utilise une base de données pour rechercher des fichiers et peut être beaucoup plus rapide que la commande find. Très simple à utiliser, pour rechercher un fichier, disons, apache2.conf :

ubuntu@ubuntu18:~$ locate apache2.conf
/etc/apache2/apache2.conf
/var/lib/dpkg/info/apache2.conffiles

Vous pouvez utiliser l’option -c si vous ne voulez que le nombre de fichiers correspondant au motif de recherche.

ubuntu@ubuntu18:~$ locate -c apache2.conf
2

Il peut arriver que vous deviez actualiser la base de données utilisée par locate, qui est mlocate. Pour mettre à jour la base de données, utilisez la commande updatedb. Pour ce faire, vous devez disposer des privilèges du super-utilisateur.

ubuntu@ubuntu18:~$ sudo updatedb

find

L’une des commandes les plus fréquemment utilisées sous Linux. Utilisez-la pour rechercher des fichiers en fonction des noms de fichiers, des autorisations, de l’identifiant de l’utilisateur, de l’identifiant du groupe, de la taille, du type de fichier, ainsi que d’autres critères.

Pour rechercher un fichier par son nom dans le répertoire actuel, utilisez le drapeau -name suivi du nom du fichier à rechercher… :

ubuntu@ubuntu18:~$ find . -nom a.txt
./myfiles/a.txt

Pour rechercher des répertoires, utilisez l’option -type d :

ubuntu@ubuntu18:~$ find . -type d
.
./.ssh
./myfiles
./.cache
./.gnupg
./.gnupg/private-keys-v1.d
./docker

Pour rechercher des fichiers en fonction de leur taille, par exemple des fichiers de plus de 20 Mo, utilisez l’option -size:

ubuntu@ubuntu18:~$ find . -size 20M
./docker/docker-ce-cli_5:19.03.12~3-0~ubuntu-bionic_amd64.deb
./docker/docker-ce_5:19.03.12~3-0~ubuntu-bionic_amd64.deb

Pour en savoir plus sur la commande Find de Linux.

systemctl

Maintenant que systemd a remplacé le processus d’initialisation SysV dans la plupart des distributions Linux, utilisez la commande systemctl pour gérer les services et les unités systemd.

Pour démarrer un service, par exemple apache2 :

ubuntu@ubuntu18:~$ sudo systemctl start apache2.service

Vous pouvez laisser le suffixe du service.

Pour arrêter un service :

ubuntu@ubuntu18:~$ sudo systemctl stop apache2

Pour connaître l’état d’un service, utilisez la commande systemctl status. L’exemple suivant montre l’état d’apache2 en cours d’exécution :

ubuntu@ubuntu18:~$ sudo systemctl status apache2
● apache2.service - Le serveur HTTP Apache
   Loaded : chargé (/lib/systemd/system/apache2.service ; activé ; vendor preset : activé)
  Drop-In : /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active : active (running) since Wed 2020-08-19 11:34:04 UTC ; 2s ago
  Process : 25346 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
  Processus : 18202 ExecReload=/usr/sbin/apachectl stop 18202 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
  Processus : 25536 ExecStart=/usr/sbin/apachectl graceful 25536 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 PID principal : 25555 (apache2)
    Tâches : 55 (limite : 1024)
   Groupe CG : /system.slice/apache2.service
           ├─25555 /usr/sbin/apache2 -k start
           ├─25558 /usr/sbin/apache2 -k start
           └─25559 /usr/sbin/apache2 -k start

Aug 19 11:34:04 ubuntu18 systemd[1] : Démarrage du serveur HTTP Apache...
Aug 19 11:34:04 ubuntu18 systemd[1] : A démarré le serveur HTTP Apache.

commande ufw

UFW – uncomplicated firewall est un frontal facile à utiliser pour iptables. Il est disponible par défaut sur les distributions basées sur Ubuntu. Sous CentOS, vous pouvez installer ufw à partir du dépôt EPEL.

Pour activer ufw :

sudo ufw enable

Vérifiez l’état du pare-feu avec ufw status :

$ sudo ufw status
Statut : actif

Les stratégies UFW par défaut autorisent tout le trafic sortant et bloquent tout le trafic entrant.

La commande suivante autorise le trafic entrant sur le port HTTP :

$ sudo ufw allow http
Règle ajoutée
Règle ajoutée (v6)

Vous pouvez refuser le trafic sur n’importe quel port. Voici un exemple pour bloquer le trafic sur le port 21 :

$ sudo ufw deny 21
Règle ajoutée
Règle ajoutée (v6)

journalctl

Utilisez journalctl pour afficher les journaux collectés par systemd. systemd collecte les journaux dans un emplacement central dans un format binaire. Pour afficher ces journaux :

ubuntu@ubuntu18:~$ sudo journalctl
-- Les journaux commencent à Mon 2020-06-29 02:48:31 UTC, et se terminent à Wed 2020-08-19 15:07:59 UTC. --
Jun 29 02:48:31 ubuntu kernel : Linux version 5.3.0-1028-azure (buildd@lcy01-amd64-003) (gcc version 7.5.0 (Ubuntu
Jun 29 02:48:31 ubuntu kernel : Ligne de commande : BOOT_IMAGE=/boot/vmlinuz-5.3.0-1028-azure root=UUID=b0dd9d06-536e-41
Jun 29 02:48:31 ubuntu kernel : Le noyau prend en charge les processeurs :
Jun 29 02:48:31 ubuntu kernel :   Intel GenuineIntel
...

La plupart du temps, vous préférerez voir les journaux dans l’ordre inverse, c’est-à-dire les derniers journaux en premier :

ubuntu@ubuntu18:~$ sudo journalctl -r
-- Les journaux commencent à Mon 2020-06-29 02:48:31 UTC, et se terminent à Wed 2020-08-19 15:10:16 UTC. --
Aug 19 15:10:16 ubuntu18 sudo[31263] : pam_unix(sudo:session) : session ouverte pour l'utilisateur root par ubuntu(uid=0)
Aug 19 15:10:16 ubuntu18 sudo[31263] : ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
Aug 19 15:10:11 ubuntu18 sudo[31213] : pam_unix(sudo:session) : session closed for user root
Aug 19 15:07:59 ubuntu18 sudo[31213] : pam_unix(sudo:session) : session ouverte pour l'utilisateur root par ubuntu(uid=0)
Aug 19 15:07:59 ubuntu18 sudo[31213] : ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc
Aug 19 15:07:56 ubuntu18 sudo[31183] : pam_unix(sudo:session) : session closed for user root
Aug 19 15:06:47 ubuntu18 sudo[31183] : pam_unix(sudo:session) : session ouverte pour l'utilisateur root par ubuntu(uid=0)
...

Pour afficher les journaux d’un service spécifique, par exemple mysql, utilisez le drapeau -u:

ubuntu@ubuntu18:~$ sudo journalctl -u mysql
-- Les journaux commencent à Mon 2020-06-29 02:48:31 UTC, et se terminent à Wed 2020-08-19 15:11:34 UTC. --
Aug 16 12:30:02 ubuntu18 systemd[1] : Démarrage du serveur MySQL Community...
Aug 16 12:30:03 ubuntu18 systemd[1] : Démarrage du serveur communautaire MySQL.
Aug 19 15:03:27 ubuntu18 systemd[1] : Stopping MySQL Community Server...
Aug 19 15:03:29 ubuntu18 systemd[1] : Arrêt du serveur communautaire MySQL.

kill et killall

Vous pouvez avoir besoin de tuer un processus qui s’emballe ou de libérer des ressources système. kill avec le drapeau -l affiche tous les signaux que vous pouvez envoyer à un processus.

ubuntu@ubuntu18:~$ kill -l
 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
....

Les deux signaux les plus couramment utilisés sont SIGTERM et SIGKILL. Vous pouvez également utiliser -9 pour SIGKILL et -15 pour SIGTERM. SIGTERM permet à un processus de se terminer avant d’être interrompu et est donc appelé soft kill. SIGKILL met fin au processus immédiatement. Voici un exemple :

Listez tous les processus apache2

ubuntu@ubuntu18:~$ ps aux|grep apache2
root 45521 0.0 0.5 78188 4688 ?        Ss Aug08 0:03 /usr/sbin/apache2 -k start
www-data 45524 0.0 0.5 830480 4816 ?        Sl Aug08 0:00 /usr/sbin/apache2 -k start
www-data 45525 0.0 0.7 830480 6856 ?        Sl Aug08 0:00 /usr/sbin/apache2 -k start
ubuntu 70374 0.0 0.1 14852 1040 pts/0 S 07:45 0:00 grep --color=auto apache2

Pour tuer le processus apache2 avec l’id de processus 45525 :

ubuntu@ubuntu18:~$ sudo kill -9 45525

Affichez à nouveau la liste des processus apache2 :

ubuntu@ubuntu18:~$ ps aux|grep apache2
root 45521 0.0 0.5 78188 4688 ?        Ss Aug08 0:03 /usr/sbin/apache2 -k start
www-data 45524 0.0 0.5 830480 4816 ?        Sl Aug08 0:00 /usr/sbin/apache2 -k start
ubuntu 70525 0.0 0.1 14852 1052 pts/0 S 07:52 0:00 grep --color=auto apache2

Utilisez killall pour tuer un programme par son nom. Cela signifie que killall tue le processus control(parent) et tous les processus enfants. Pour tuer toutes les instances du processus apache2 dans l’exemple ci-dessus :

ubuntu@ubuntu18:~$ sudo killall apache2

Utilisez les commandes kill et killall avec prudence. Ces commandes peuvent laisser le système dans un état instable.

IP

La commande ip remplace ifconfig dans les distributions Linux les plus récentes. Utilisez-la pour configurer et afficher les interfaces réseau. Elle permet également d’afficher et de modifier les adresses IP, les routes et les objets voisins.

Affiche des informations sur toutes les interfaces réseau :

ubuntu@ubuntu18:~$ ip a
1 : lo :  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2 : eth0 :  mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:9b:88:d6 brd ff:ff:ff:ff:ff:ff:ff
    inet 10.0.0.4/24 brd 10.0.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe9b:88d6/64 scope link 
       valid_lft forever preferred_lft forever

Pour activer ou désactiver une interface, utilisez ip link set dev suivi du nom du périphérique. Par exemple, pour mettre l’interface eth0 en ligne :

ubuntu@ubuntu18:~$ ip link set eth0 up

Et pour la désactiver :

ubuntu@ubuntu18:~$ ip link set eth0 down

date

Une commande très couramment utilisée, nous explorons ici quelques façons intéressantes d’utiliser cette commande.

ubuntu@ubuntu18:~$ date
Tue Aug 11 07:42:49 UTC 2020

Pour voir la date de dimanche prochain :

ubuntu@ubuntu18:~$ date -d 'next sunday'
Sun Aug 16 00:00:00 UTC 2020

Pour voir la date de dimanche dernier :

ubuntu@ubuntu18:~$ date -d 'last sunday'
Sun Aug 9 00:00:00 UTC 2020

Vous pouvez également utiliser –date au lieu de -d :

ubuntu@ubuntu18:~$ date --date='last sunday'
Sun Aug 9 00:00:00 UTC 2020

Pour voir la date d’il y a 6 jours :

ubuntu@ubuntu18:~$ date --date='6 days ago'
Wed Aug 5 08:06:37 UTC 2020

Date dans 6 jours :

ubuntu@ubuntu18:~$ date --date='6 days'
Mon Aug 17 08:08:37 UTC 2020

Vous pouvez facilement contrôler le format de sortie de la date. Voici un exemple :

ubuntu@ubuntu18:~$ date ' %d-%B-%Y'
11-Août-2020

Résumé

En tant qu’administrateur système, vous assurez le fonctionnement de l’infrastructure informatique mondiale. Vous devez résoudre les problèmes, assurer la maintenance et le fonctionnement optimal des systèmes tout en garantissant la sécurité.

J’espère que ces commandes vous seront utiles et vous aideront à mieux faire votre travail.

Voici quelques clients FTP/SFTP et les meilleures antisèches Vim pour les développeurs et les administrateurs système.