Gérez les processus, les disques, les services, les utilisateurs et les ressources système sur les serveurs Linux à l'aide de commandes CLI couramment utilisées.
Gestion des processus
ps
Commande
La commande ps affiche un instantané des processus en cours d'exécution.
Options courantes
|
Option |
Description |
|
-A |
Affiche tous les processus. |
|
-a |
Affiche tous les processus associés au terminal de contrôle. |
|
-e |
Affiche tous les processus. Équivalent à -A. |
|
-f |
Affiche une liste au format complet, incluant les colonnes UID, PPID, C et STIME. |
|
-u |
Affiche les processus par utilisateur effectif. |
|
-U |
Affiche les processus par utilisateur réel. |
|
-x |
Affiche tous les processus sans terminal de contrôle. |
Pour connaître les autres options, exécutez man ps.
Exemples
-
Interrogez tous les processus.
ps -ef -
Recherchez tous les processus correspondant à un mot-clé au format complet.
ps -ef | grep <key_word>Remplacez
<key_word>par le mot-clé souhaité. -
Recherchez tous les processus utilisateur correspondant à un mot-clé, y compris ceux sans terminal de contrôle.
ps -aux | grep <key_word>Remplacez
<key_word>par le mot-clé souhaité. -
Affichez l'arborescence des processus.
ps -ejH -
Listez tous les processus avec les informations sur les threads.
ps -eLf -
Affichez les informations sur les threads avec des champs personnalisés.
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm -
Interrogez une métrique spécifique par PID. Dans cet exemple, le PID 1 avec
comm=renvoie le nom de la commande.ps -q 1 -o comm=
top
Commande
La commande top affiche en temps réel l'activité des processus et l'utilisation des ressources système.
Options courantes
|
Option |
Description |
|
-d |
Définit la fréquence d'actualisation. |
|
-p |
Surveille l'état d'un processus par son PID. |
|
-s |
Exécute top en mode sécurisé, en désactivant les commandes interactives potentiellement dangereuses. |
|
-i |
Ignore les processus inactifs et zombies. |
|
-c |
Affiche la ligne de commande complète au lieu du seul nom de la commande. |
Champs dans la sortie de la commande top
Champs affichés dans la sortie de la commande top (les valeurs varient selon la période d'échantillonnage) :
top - 15:30:29 up 2:11, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
MiB Mem : 7607.4 total, 6642.1 free, 409.4 used, 801.4 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 7198.0 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
633 root 20 0 474964 29076 13644 S 0.3 0.4 0:09.58 tuned
1716 root 20 0 131676 23172 16576 S 0.3 0.3 0:28.48 AliYunDunMonito
1938 root 20 0 1460104 29564 22520 S 0.3 0.4 0:27.93 argusagent
5525 root 20 0 0 0 0 I 0.3 0.0 0:00.01 kworker/u4:1-events_unbound
1 root 20 0 103344 11320 8656 S 0.0 0.1 0:01.31 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 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
5 root 20 0 0 0 0 I 0.0 0.0 0:00.01 kworker/0:0-events
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-events_highpri
8 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_rude_
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_tasks_trace
12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
13 root 20 0 0 0 0 I 0.0 0.0 0:00.47 rcu_sched
14 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1
17 root rt 0 0 0 0 S 0.0 0.0 0:00.07 migration/1
18 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/1
19 root 20 0 0 0 0 I 0.0 0.0 0:00.43 kworker/1:0-events
20 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/1:0H-events_highpri
22 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
23 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns
24 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kauditd
27 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd
28 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper
29 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 writeback
30 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kcompactd0
31 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd
32 root 39 19 0 0 0 S 0.0 0.0 0:00.06 khugepaged
33 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 memcg_wmark
34 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 memcg_pgcache_l
48 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 cryptd
83 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kintegrityd
84 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kblockd
85 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 blkcg_punt_bio
86 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 tpm_dev_wq
87 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 md
88 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 edac-poller
89 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 devfreq_wq
Champs
Exemples
-
Interrogez les métriques système avec une fréquence d'échantillonnage spécifique
Interrogez les métriques système à un intervalle de 3 secondes :
top 3RemarqueL'intervalle d'échantillonnage par défaut de top est de 5 secondes.
-
Personnalisez l'interface de la commande top
Par défaut, les champs décrits dans la section Champs du résumé des informations système et de la liste des processus sont affichés. Appuyez sur
fpour sélectionner les colonnes à afficher et réorganiser leur ordre.Fields Management for window 1:Def, whose current sort field is %CPU Navigate with Up/Dn, Right selects for move then <Enter> or Left commits, 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end! * PID = Process Id USED = Res+Swap Size (KiB) * USER = Effective User Name nsIPC = IPC namespace Inode * PR = Priority nsMNT = MNT namespace Inode * NI = Nice Value nsNET = NET namespace Inode * VIRT = Virtual Image (KiB) nsPID = PID namespace Inode * RES = Resident Size (KiB) nsUSER = USER namespace Inode * SHR = Shared Memory (KiB) nsUTS = UTS namespace Inode * S = Process Status LXC = LXC container name * %CPU = CPU Usage RSan = RES Anonymous (KiB) * %MEM = Memory Usage (RES) RSfd = RES File-based (KiB) * TIME+ = CPU Time, hundredths RSlk = RES Locked (KiB) * COMMAND = Command Name/Line RSsh = RES Shared (KiB) PPID = Parent Process pid CGNAME = Control Group name UID = Effective User Id NU = Last Used NUMA node RUID = Real User Id RUSER = Real User Name SUID = Saved User Id SUSER = Saved User Name GID = Group Id GROUP = Group Name PGRP = Process Group Id TTY = Controlling Tty TPGID = Tty Process Grp Id SID = Session Id nTH = Number of Threads P = Last Used Cpu (SMP) TIME = CPU Time SWAP = Swapped Size (KiB) CODE = Code Size (KiB) DATA = Data+Stack (KiB) nMaj = Major Page Faults nMin = Minor Page Faults nDRT = Dirty Pages Count WCHAN = Sleeping in Function Flags = Task Flags <sched.h> CGROUPS = Control Groups SUPGIDS = Supp Groups IDs SUPGRPS = Supp Groups Names TGID = Thread Group Id OOMa = OOMEM Adjustment OOMs = OOMEM Score current ENVIRON = Environment vars vMj = Major Faults delta vMn = Minor Faults deltaTouches de gestion de l'interface de la commande top :
Touche
Description
↑ et ↓
Fait défiler vers le haut ou le bas pour sélectionner les champs.
→
Sélectionne une colonne entière. Appuyez sur HAUT ou BAS pour la déplacer.
Espace
Active ou désactive la visibilité du champ. Un astérisque (*) indique que le champ est affiché.
s
Définit la colonne actuelle comme colonne de tri.
q
Quitte l'interface de la commande top.
-
Utilisez la commande top en mode interactif
En mode interactif, appuyez sur les touches suivantes pour contrôler l'affichage :
Touche
Description
1
Affiche l'état par CPU logique.
u
Filtre les processus par utilisateur.
E
Fait défiler les unités de mémoire : KiB, MiB, GiB, TiB, PiB ou EiB.
x
Met en surbrillance la colonne de tri.
y
Met en surbrillance les processus en cours d'exécution.
?
Affiche l'aide.
-
Recherchez les noms et répertoires des processus par PID
Exécutez top pour trouver le PID d'un processus. Dans cet exemple, le processus aliyun-service a le PID 1325.
Exécutez la commande
top. Vous pouvez constater que le processus ayant le PID 1325 estaliyun-service.Tasks: 188 total, 1 running, 186 sleeping, 0 stopped, 1 zombie %Cpu(s): 0.2 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.1 hi, 0.1 si, 0.0 st MiB Mem : 15468.8 total, 12290.5 free, 1710.8 used, 1783.7 buff/cache MiB Swap: 0.0 total, 0.0 free, 0.0 used. 13758.1 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 15831 root 20 0 1401860 42152 20472 S 0.5 0.3 2:59.24 taihao_exporter 17830 root 20 0 1153952 127996 65356 S 0.5 0.8 2:57.27 ilogtail 971 root 20 0 2312484 29944 22544 S 0.3 0.2 3:28.78 argusagent 1325 root 20 0 686276 18700 13028 S 0.3 0.1 0:40.97 aliyun-service 392452 root 20 0 0 0 0 I 0.3 0.0 0:00.36 kworker/u8:3-events_unbound 1 root 20 0 169452 11824 8644 S 0.0 0.1 0:48.72 systemdRecherchez le répertoire du processus aliyun-service :
cd /proc/1352 ls -ailDans la sortie de la commande, le lien symbolique
exepointe vers/usr/local/share/aliyun-assist/2.2.3.857/aliyun-service, qui correspond au chemin du fichier exécutable du processus 1325.[root 1325]# ls -ail total 0 24390 dr-xr-xr-x 9 root root 0 Jan 22 13:17 . 1 dr-xr-xr-x 253 root root 0 Jan 22 13:17 .. 3003054 -r--r--r-- 1 root root 0 Jan 23 17:01 arch_status 28694 dr-xr-xr-x 2 root root 0 Jan 22 13:17 attr 3003026 -rw-r--r-- 1 root root 0 Jan 23 17:01 autogroup 3003022 -r-------- 1 root root 0 Jan 23 17:01 auxv 28698 -r--r--r-- 1 root root 0 Jan 22 13:17 cgroup 3003034 --w------- 1 root root 0 Jan 23 17:01 clear_refs 26278 -r--r--r-- 1 root root 0 Jan 22 13:17 cmdline 28693 -rw-r--r-- 1 root root 0 Jan 22 13:17 comm 3003046 -rw-r--r-- 1 root root 0 Jan 23 17:01 coredump_filter 3003042 -r--r--r-- 1 root root 0 Jan 23 17:01 cpu_resctrl_groups 3003041 -r--r--r-- 1 root root 0 Jan 23 17:01 cpuset 52865 lrwxrwxrwx 1 root root 0 Jan 22 13:18 cwd -> / 3003021 -r-------- 1 root root 0 Jan 23 17:01 environ 27984 lrwxrwxrwx 1 root root 0 Jan 22 13:17 exe -> /usr/local/share/aliyun-assist/2.2.3.857/aliyun-service 22392 dr-x------ 2 root root 0 Jan 22 13:17 fd 3003019 dr-x------ 1 root root 0 Jan 23 17:01 fdinfo 3003048 -rw-r--r-- 1 root root 0 Jan 23 17:01 gid_map 79376 1 root root 0 Jan 22 13:21 io 3003024 -r--r--r-- 1 root root 0 Jan 23 17:01 limits 28697 -rw-r--r-- 1 root root 0 Jan 22 13:17 loginuid -
Arrêtez un processus par son PID
En mode interactif, appuyez sur
k, saisissez un PID, puis appuyez surEnterpour arrêter le processus.top - 17:19:44 up 3:50, 0 user, load average: 0.00, 0.00, 0.00 Tasks: 117 total, 1 running, 116 sleeping, 0 stopped, 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 MiB Mem : 7414.8 total, 6142.9 free, 471.8 used, 1059.6 buff/cache MiB Swap: 0.0 total, 0.0 free, 0.0 used. 6943.1 avail Mem Send pid 4717 signal [15/sigterm] PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4717 root 20 0 101088 19384 13184 S 0.7 0.3 0:32.65 AliYunDun 4744 root 20 0 139200 29284 19456 S 0.7 0.4 1:11.93 AliYunDunMonito 1076 root 20 0 468824 13312 11392 S 0.3 0.2 0:00.19 udisksd 4574 root 20 0 1244388 25856 23680 S 0.3 0.3 0:38.55 argusagent 1 root 20 0 22716 13644 9336 S 0.0 0.2 0:03.74 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 I 0.0 0.0 0:00.00 pool_workqueue_release 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/R-rcu_g 5 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/R-rcu_p 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/R-slub_ 7 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/R-netns 9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-events_highpri 12 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/R-mm_pe
kill
Commande
La commande kill arrête des processus en envoyant des signaux.
Options courantes
|
Option |
Description |
|
-l |
Affiche tous les noms de signaux disponibles. |
|
-L |
Affiche tous les noms de signaux et leurs numéros correspondants. |
Exemples
-
Arrêtez tous les processus.
sudo kill -9 -1 -
Affichez le nom du signal dont le numéro est 11.
sudo kill -l 11 -
Affichez tous les noms de signaux et leurs numéros correspondants.
sudo kill -L -
Arrêtez un processus par son PID.
sudo kill -9 <PID>Remplacez
<PID>par le PID réel.
killall
Commande
La commande killall arrête tous les processus correspondant à un nom donné.
Options courantes
|
Option |
Description |
|
-g |
Arrête les processus du groupe de processus. |
|
-i |
Demande une confirmation avant d'arrêter un processus. |
|
-v |
Indique si le signal a bien été envoyé. |
Exemples
Arrêtez le processus top.
sudo killall top
Informations système
Interrogez les informations matérielles et logicielles du système à l'aide des commandes uname et dmidecode.
uname
Commande
La commande uname affiche les informations relatives au système.
Options courantes
|
Option |
Description |
|
-a |
Affiche toutes les informations système. |
|
-s |
Affiche le nom du noyau. |
|
-n |
Affiche le nom d'hôte du nœud réseau. |
|
-r |
Affiche la version de publication du noyau. |
|
-v |
Affiche la version détaillée du noyau. |
|
-m |
Affiche le nom du matériel de la machine. |
|
-P |
Affiche le type de processeur. |
|
-i |
Affiche les informations sur la plateforme matérielle. |
|
-o |
Affiche les informations sur le système d'exploitation. |
Exemples
-
Interrogez l'intégralité des informations système.
uname -a -
Exécutez
uname -mouarchpour connaître l'architecture du CPU. Le résultat varie selon l'architecture.Résultat de la commande pour l'architecture Arm
[t@iUf682 xxx ~]# uname -m aarch64 [t@iUf682 xxx ~]# arch aarch64Résultat de la commande pour l'architecture x86
[root@iZbp144wor*** ~]# uname -m x86_64 [root@iZbp144wor*** ~]# arch x86_64
dmidecode
La commande dmidecode extrait les informations matérielles depuis le BIOS du système via la table DMI, notamment :
Les informations système : fournisseur, nom, version, numéro de série (SN) et modèle.
Les informations sur le processeur : modèle, fréquence et nombre de cœurs.
Les informations sur la mémoire : nombre d'emplacements, capacités, types et vitesses.
Les informations sur la carte mère : fournisseur, version et SN.
Les informations sur le BIOS : version et date de publication.
Les informations sur l'alimentation électrique : spécifications et modèles.
Les informations sur les périphériques : composants matériels tels que les cartes réseau.
-
Affichez toutes les informations matérielles issues de la table DMI.
sudo dmidecode -
Pour afficher uniquement les entrées d'un type spécifique, utilisez l'option
-t. Par exemple, pour afficher les entrées liées à la mémoire :sudo dmidecode -t memory
Informations sur le CPU physique et la mémoire
Nombre total de cœurs = Nombre de CPU physiques × Nombre de cœurs par CPU physique
Nombre total de CPU logiques = Nombre de CPU physiques × Nombre de cœurs par CPU physique × Facteur Hyper-Threading
Voici les commandes couramment utilisées pour interroger les détails du CPU et de la mémoire :
-
Interrogez le nombre de CPU physiques.
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l -
Interrogez le nombre de cœurs par CPU physique.
cat /proc/cpuinfo| grep "cpu cores"| uniq -
Interrogez le nombre de CPU logiques.
cat /proc/cpuinfo| grep "processor"| wc -l -
Interrogez le modèle du CPU.
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c -
Interrogez les informations sur la mémoire.
cat /proc/meminfo
Interroger les détails du CPU
Exécutez lscpu pour obtenir les détails du CPU. Le résultat varie selon l'architecture.
-
Résultat de la commande pour l'architecture Arm
[root@iZuf682tl xxx ~]# lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per cluster: 4 Socket(s): 1 Cluster(s): 1 NUMA node(s): 1 Vendor ID: ARM BIOS Vendor ID: Alibaba Cloud Model: 1 Model name: Neoverse-N1 BIOS Model name: virt-rhel7.6.0 Stepping: r3p1 BogoMIPS: 50.00 NUMA node0 CPU(s): 0-3 Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs -
Résultat de la commande pour l'architecture x86
[root@iZbp14xxxxx ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 16 On-line CPU(s) list: 0-15 Thread(s) per core: 2 Core(s) per socket: 8 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 106 Model name: Intel(R) Xeon(R) Platinum 8369B CPU @ 2.90GHz Stepping: 6 CPU MHz: 2899.998 BogoMIPS: 5799.99 Hypervisor vendor: KVM Virtualization type: full L1d cache: 48K L1i cache: 32K L2 cache: 1280K L3 cache: 49152K NUMA node0 CPU(s): 0-15 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq monitor ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves wbnoinvd arat avx512vbmi avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid fsrm arch_capabilities
Interroger les informations du système d'exploitation
Exécutez cat /proc/version pour obtenir des informations sur le système d'exploitation et la version du compilateur. Le résultat varie selon l'architecture.
-
Résultat de la commande pour l'architecture x86
[xxx@iZbp144wor ~]# cat /proc/version Linux version 4.19.91-26.1.al7.x86_64 (mockbuild@x86-003.build.alibaba.cm10) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)) #1 SMP Tue Jul 26 17:52:28 CST 2022 -
Résultat de la commande pour l'architecture Arm
[root@iZuf682t ~]# cat /proc/version Linux version 5.10.134-12.al8.aarch64 (mockbuild@r75e11320.cm10.tbsite.net) (gcc (GCC) 10.2.1 20200825 (Alibaba 10.2.1-3 2.32), GNU ld version 2.35-12.2.al8) #1 SMP Tue Sep 6 07:11:41 UTC 2022
Gestion des disques
df
Commande
La commande df rend compte de l'utilisation de l'espace disque des systèmes de fichiers.
Options courantes
|
Option |
Description |
|
-a |
Inclut les systèmes de fichiers pseudo, dupliqués et inaccessibles. |
|
-B |
Ajuste la taille des blocs selon la valeur spécifiée pour l'affichage. |
|
-h |
Affiche les tailles dans un format lisible par l'homme en utilisant un facteur d'échelle de 1 024. Exemple : 1023M. |
|
-H |
Affiche les tailles dans un format lisible par l'homme en utilisant un facteur d'échelle de 1 000. Exemple : 1,1G. |
|
-k |
Équivaut à --block-size=1K. |
|
-l |
Affiche une liste des systèmes de fichiers locaux. |
|
-t |
Affiche les informations concernant les systèmes de fichiers du type spécifié. |
Exemples
Interrogez l'utilisation de l'espace disque avec des tailles de bloc en Mo.
df -BM
Exemple de sortie :
Filesystem 1M-blocks Used Available Use% Mounted on
tmpfs 742M 22M 721M 3% /run
/dev/vda3 39943M 2542M 35556M 7% /
tmpfs 3708M 0M 3708M 0% /dev/shm
tmpfs 5M 0M 5M 0% /run/lock
tmpfs 742M 1M 742M 1% /run/user/0
lsblk
Commande
La commande lsblk affiche les détails des périphériques blocs.
Options courantes
|
Option |
Description |
|
-a |
Affiche tous les périphériques, y compris les périphériques vides et les disques en mémoire. |
|
-b |
Affiche les tailles en octets. |
|
-f |
Affiche les informations sur le système de fichiers. |
Exemples
-
Interrogez les périphériques blocs avec les informations sur le système de fichiers.
lsblk -fExemple de sortie :
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS vda |-vda1 |-vda2 vfat FAT32 6175-F96E `-vda3 ext4 1.0 df02e0a1-d28d-41b1-99c2-58f2b684cc79 34.7G 6% / -
Interrogez le numéro de série (SN) d'un disque.
La méthode varie selon la distribution Linux. Pour Alibaba Cloud Linux 3, CentOS 7 ou Ubuntu 18 :
-
Interrogez les périphériques de stockage par blocs montés dans le système d'exploitation.
lsblk -
Interrogez le numéro de série d'un périphérique de stockage par blocs. Par exemple, pour interroger le SN de /dev/vda :
udevadm info --query=all --name=/dev/vda | grep ID_SERIAL
-
blkid
Commande
La commande blkid affiche les attributs des périphériques blocs.
Exemples
Interroger les attributs d'un périphérique bloc.
blkid /dev/vda
Exemple de sortie :
/dev/vda: PTUUID="bdee1c7f-46fc-4838-9a74-9exxxxxxxxaf" PTTYPE="gpt"
fdisk
Commande
La commande fdisk gère les tables de partitions de disque.
Options courantes
|
Option |
Description |
|
-l |
Affiche les tables de partitions des périphériques spécifiés. |
|
-u |
Affiche les informations de partition en secteurs plutôt qu'en cylindres. |
Exemples
Interrogez toutes les tables de partitions de disque avec les informations de partition en secteurs.
sudo fdisk -lu
Exemple de sortie :
Disk /dev/vda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BDEE1C7F-46FC-4838-9A74-9E57F8FD63AF
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 413695 409600 200M EFI System
/dev/vda3 413696 83886046 83472351 39.8G Linux filesystem
mount
Commande
La commande mount monte les systèmes de fichiers.
Options courantes
|
Option |
Description |
|
-a |
Monte tous les systèmes de fichiers configurés dans le fichier |
|
-L |
Monte la partition portant le libellé spécifié. |
|
-r |
Monte le système de fichiers en lecture seule. |
|
-w |
Monte le système de fichiers en lecture/écriture. |
|
-U |
Monte la partition possédant l' |
Exemples
-
Montez tous les systèmes de fichiers configurés dans le fichier /etc/fstab.
sudo mount -a -
Montez un système de fichiers en lecture/écriture.
sudo mount -w /dev/vdb1 /mnt
umount
Commande
La commande umount démonte les systèmes de fichiers.
Options courantes
|
Option |
Description |
|
-r |
Remonte le système de fichiers en lecture seule si le démontage échoue. |
|
-a |
Démonte tous les systèmes de fichiers configurés dans le fichier |
|
-t |
Spécifie le type de système de fichiers à démonter. Séparez plusieurs types par des virgules (,). |
|
-f |
Démonte le système de fichiers de force. |
Exemples
Démontez de force le système de fichiers d'une partition.
sudo umount -f /dev/vdb1
Gestion des services
systemctl
Commande
La commande systemctl gère les services et les unités systemd.
Options courantes
|
Option |
Description |
|
-a |
Affiche toutes les unités chargées ou leurs attributs. |
Commandes d'unité courantes
|
Commande |
Description |
|
start |
Démarre les unités chargées spécifiées. |
|
stop |
Arrête les unités chargées spécifiées. |
|
restart |
Redémarre les unités chargées spécifiées. |
|
reload |
Recharge la configuration des unités spécifiées. |
|
status |
Affiche l'état d'exécution des unités spécifiées. États courants :
|
Commandes de fichier d'unité courantes
|
Commande |
Description |
|
enable |
Active les unités ou instances d'unités spécifiées. |
|
disable |
Désactive les unités ou instances d'unités spécifiées. |
Exemples
-
Redémarrez le service
NGINX.sudo systemctl restart nginx -
Vérifiez l'état d'exécution du service
NGINX.sudo systemctl status nginx -
Configurez le service
NGINXpour qu'il démarre automatiquement au boot.sudo systemctl enable nginx -
Listez tous les services activés pour démarrer au boot.
sudo systemctl list-unit-files --type=service --state=enabled
Utilisation des ressources
lsof
Commande
La commande lsof répertorie les fichiers ouverts et les processus qui y sont associés.
Si lsof n'est pas préinstallé, installez-le à l'aide d'un gestionnaire de packages.
Alibaba Cloud Linux, CentOS et RHEL :
sudo yum install lsof.Ubuntu et Debian :
sudo apt install lsof.
Options courantes
|
Option |
Description |
|
-p |
Affiche les fichiers ouverts par un processus. |
|
-l |
Remplace l'ID utilisateur par le nom d'utilisateur dans la sortie. |
|
-u |
Affiche les fichiers ouverts par un utilisateur. |
|
-c |
Affiche les fichiers ouverts dont la colonne |
|
-d |
Affiche les fichiers ouverts correspondant à des descripteurs de fichier spécifiques. |
|
-i |
Affiche les fichiers ouverts correspondant à la condition spécifiée. Options :
|
Sortie de la commande
Exemple de sortie lsof :
[ecs-user@hostname ~]$ lsof
lsof: WARNING: can't stat() tracefs file system /sys/kernel/debug/tracing
Output information may be incomplete.
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd unknown /proc/1/cwd (readlink: Permission denied)
systemd 1 root rtd unknown /proc/1/root (readlink: Permission denied)
systemd 1 root txt unknown /proc/1/exe (readlink: Permission denied)
systemd 1 root NOFD /proc/1/fd (opendir: Permission denied)
kthreadd 2 root cwd unknown /proc/2/cwd (readlink: Permission denied)
kthreadd 2 root rtd unknown /proc/2/root (readlink: Permission denied)
kthreadd 2 root txt unknown /proc/2/exe (readlink: Permission denied)
kthreadd 2 root NOFD /proc/2/fd (opendir: Permission denied)
rcu_gp 3 root cwd unknown /proc/3/cwd (readlink: Permission denied)
rcu_gp 3 root rtd unknown /proc/3/root (readlink: Permission denied)
rcu_gp 3 root txt unknown /proc/3/exe (readlink: Permission denied)
rcu_gp 3 root NOFD /proc/3/fd (opendir: Permission denied)
Champs de sortie :
|
Option |
Description |
|
COMMAND |
Nom de la commande. |
|
PID |
ID du processus. |
|
TID |
ID du thread. Un champ vide indique un processus. |
|
TASKCMD |
Nom de la tâche, généralement identique à COMMAND. |
|
USER |
ID utilisateur ou nom de connexion. |
|
FD |
Descripteur de fichier. |
|
TYPE |
Type de nœud associé au fichier. |
|
DEVICE |
Numéro de périphérique. |
|
SIZE/OFF |
Taille du fichier ou décalage en octets. |
|
NODE |
Numéro de nœud de fichier. |
|
NAME |
Point de montage et nom du système de fichiers. |
Exemples
-
Interrogez les fichiers ouverts par un processus.
sudo lsof -p 1Remplacez
1par un PID réel. -
Interrogez les fichiers ouverts par un utilisateur.
sudo lsof -u <user-name>Remplacez
<user-name>par un nom d'utilisateur réel. -
Interrogez les informations sur le processus qui a ouvert un fichier spécifique.
sudo lsof <file-name>Remplacez
<file-name>par un nom de fichier réel. -
Interrogez les fichiers ouverts pour les connexions réseau IPv4.
sudo lsof -i 4
netstat
Commande
La commande netstat affiche les connexions réseau, les tables de routage et les statistiques de protocole.
Options courantes
|
Option |
Description |
|
-t |
Affiche uniquement les options TCP. |
|
-u |
Affiche uniquement les options UDP. |
|
-i |
Affiche une liste des interfaces réseau. |
|
-n |
Affiche les adresses numériques au lieu de résoudre les noms d'hôte. |
|
-l |
Affiche uniquement les sockets en écoute. |
|
-p |
Affiche les processus associés aux connexions. |
|
-s |
Affiche les statistiques réseau. |
Exemples
-
Interrogez les statistiques réseau pour le port 8000.
netstat -tunlp | grep 8000Remplacez
8000par un numéro de port réel. -
Interrogez tous les ports TCP en écoute et leurs processus.
netstat -ntlp
vmstat
Commande
La commande vmstat génère des rapports sur la mémoire virtuelle, les processus et les statistiques CPU.
Options courantes
Syntaxe :
vmstat [-n] [delay [count]]
|
Option |
Description |
|
-n |
Affiche l'en-tête de colonne une seule fois. |
|
[delay] |
Intervalle de temps entre les mises à jour, en secondes. Sans cette option, un seul rapport est imprimé. |
|
[count] |
Nombre de mises à jour. Sans cette option et avec [delay] spécifié, vmstat s'exécute indéfiniment. Appuyez sur |
Exemples
Générez un rapport sur l'utilisation du CPU quatre fois à des intervalles d'une seconde :
vmstat -n 1 4
Exemple de sortie :
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 2684984 310452 2364304 0 0 5 17 19 35 4 2 94 0 0
0 0 0 2687504 310452 2362268 0 0 0 252 1942 4326 5 2 93 0 0
0 0 0 2687356 310460 2362252 0 0 0 68 1891 4449 3 2 95 0 0
0 0 0 2687252 310460 2362256 0 0 0 0 1906 4616 4 1 95 0 0
Champs clés :
r : threads en attente de temps CPU. Une valeur plus élevée indique un système plus lent.
us : temps CPU en mode utilisateur. Des valeurs supérieures à 50 % suggèrent la nécessité d'optimiser les programmes.
sy : temps CPU en mode noyau.
wa : temps CPU en attente d'E/S. Des valeurs élevées peuvent indiquer un accès disque aléatoire excessif ou un goulot d'étranglement au niveau du disque.
id : temps d'inactivité du CPU. Si cette valeur reste à 0 et que sy est deux fois supérieur à us, il existe une pénurie de ressources CPU.
Informations de connexion des utilisateurs
Les enregistrements de connexion des utilisateurs sont stockés dans les fichiers suivants :
Les informations de connexion des utilisateurs sont enregistrées dans
/var/run/utmp,/var/log/wtmp,/var/log/btmpet/var/log/lastlog.who,wetusersinterrogent les utilisateurs actuellement connectés à partir de/var/run/utmp.lastinterroge les utilisateurs connectés actuels et historiques à partir de/var/log/wtmp.lastbinterroge les tentatives de connexion échouées à partir de/var/log/btmp.lastloginterroge la dernière connexion de chaque utilisateur à partir de/var/log/lastlog.
who
La commande who interroge les utilisateurs actuellement connectés. Exemple de sortie :
[root@xxx3Z ~]# who
root pts/0 2025-01-27 11:22 (1xxx4)
root pts/1 2025-01-27 11:29 (xxx)
w
La commande w interroge l'utilisateur actuellement connecté et ses tâches actives. Exemple de sortie :
[xxx ~]# w
11:30:45 up 2 days, 18:08, 2 users, load average: 0.04, 0.05, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 1xxx4 11:22 7:47 0.02s 0.02s -bash
root pts/1 xxx 11:29 6.00s 0.02s 0.00s w
users
La commande users interroge les noms d'utilisateur des utilisateurs actuellement connectés. Exemple de sortie :
[root@xxx ~]# users
root root
last
La commande last interroge tous les enregistrements de connexion historiques. Exemple de sortie :
[root@xxx ~]# last
root pts/1 xxx Mon Jan 27 11:29 still logged in
root pts/1 xxx Mon Jan 27 11:29 - 11:29 (00:00)
root pts/0 xxx Mon Jan 27 11:22 still logged in
root pts/0 xxx Mon Jan 27 11:14 - 11:21 (00:07)
root pts/0 xxx Sun Jan 26 16:42 - 11:14 (18:31)
john pts/0 xxx Sun Jan 26 16:30 - 16:42 (00:11)
root pts/0 xxx Sun Jan 26 16:30 - 16:30 (00:00)
root pts/0 xxx Sun Jan 26 16:25 - 16:30 (00:04)
root pts/1 xxx Fri Jan 24 17:20 - 19:33 (02:13)
root pts/0 xxx Fri Jan 24 17:06 - 23:20 (06:14)
root pts/0 xxx Fri Jan 24 17:06 - 17:06 (00:00)
reboot system boot xxx Fri Jan 24 17:01 still running
lastb
La commande lastb interroge les tentatives de connexion échouées. Exemple de sortie :
[r*** ~]# lastb
john ssh:notty xxx '4 Mon Jan 27 11:33 - 11:33 (00:00)
root ssh:notty xxx '4 Mon Jan 27 11:33 - 11:33 (00:00)
root ssh:notty xxx '4 Mon Jan 27 11:33 - 11:33 (00:00)
root ssh:notty xxx '4 Mon Jan 27 11:33 - 11:33 (00:00)
root pts/0 Sun Jan 26 16:30 - 16:30 (00:00)
btmp begins Sun Jan 26 16:30:01 2025
lastlog
La commande lastlog interroge la dernière connexion de chaque utilisateur. Exemple de sortie :
[rxxx ~]# lastlog
Username Port From Latest
root pts/1 8xxx xxx40 Mon Jan 27 11:29:34 +0800 2025
bin Never logged in
daemon Never logged in
adm Never logged in
lp Never logged in
sync Never logged in
shutdown Never logged in
halt Never logged in
mail Never logged in
operator Never logged in
games Never logged in
ftp Never logged in
nobody Never logged in
dbus Never logged in
systemd-coredump Never logged in
systemd-resolve Never logged in
tss Never logged in
polkitd Never logged in
unbound Never logged in
chrony Never logged in
sshd Never logged in
nscd Never logged in
postfix Never logged in
tcpdump Never logged in
rpc Never logged in
rpcuser Never logged in
squid Never logged in
ecs-instance-connect Never logged in
jack Never logged in
john pts/0 Mon Jan 27 11:21:25 +0800 2025
john1 Never logged in
cat /var/log/secure
La commande cat /var/log/secure interroge tous les enregistrements de connexion des utilisateurs. Exemple de sortie :
[root@xxx 3Z ~]# cat /var/log/secure
Jan 26 11:18:17 i 3Z sshd[6646]: Accepted password for root from 1.xxx.xxx.xxx 6 port 2090 ssh2
Jan 26 11:18:17 i 3Z systemd[6652]: pam_unix(systemd-user:session): session opened for user root by (uid=0)
Jan 26 11:18:17 i 3Z sshd[6646]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jan 26 13:33:22 i 3Z sshd[6646]: pam_unix(sshd:session): session closed for user root
Jan 26 16:25:44 i 3Z useradd[6815]: new group: name=ecs-instance-connect, GID=992
Jan 26 16:25:44 i 3Z useradd[6815]: new user: name=ecs-instance-connect, UID=995, GID=992, home=/home/ecs-instance-connect, shell=/sbin/nologin
Jan 26 16:25:44 i 3Z sudo[6835]: root : PWD=/root ; USER=root ; COMMAND=/bin/systemctl daemon-reload
Jan 26 16:25:44 i 3Z systemd[6839]: pam_unix(systemd-user:session): session opened for user root by (uid=0)
Jan 26 16:25:44 i 3Z sudo[6835]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan 26 16:25:45 i 3Z sudo[6835]: pam_unix(sudo:session): session closed for user root
Jan 26 16:25:45 i 3Z sudo[6876]: root : PWD=/root ; USER=root ; COMMAND=/bin/systemctl restart sshd
Jan 26 16:25:45 i 3Z sudo[6876]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jan 26 16:25:45 i 3Z sshd[1055]: Received signal 15; terminating.
Jan 26 16:25:45 i 3Z sshd[6881]: Server listening on 0.0.0.0 port 22.
Jan 26 16:25:45 i 3Z sshd[6881]: Server listening on :: port 22.
Jan 26 16:25:45 i 3Z sudo[6876]: pam_unix(sudo:session): session closed for user root
Jan 26 16:25:48 i 3Z sshd[6886]: Accepted publickey for root from 1.xxx.xxx.xxx 74 port 2072 ssh2: ED25519 SHA256:xQdusPE/xxx jUd5qN0EU
Jan 26 16:25:48 i 3Z sshd[6886]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jan 26 16:26:01 i 3Z useradd[6962]: new group: name=jack, GID=1000
Jan 26 16:26:01 i 3Z useradd[6962]: new user: name=jack, UID=1000, GID=1000, home=/home/jack, shell=/bin/bash
Jan 26 16:26:38 i 3Z useradd[6971]: new group: name=john, GID=1001
Jan 26 16:26:38 i 3Z useradd[6971]: new user: name=john, UID=1001, GID=1001, home=/home/john, shell=/bin/bash
Jan 26 16:26:58 i 3Z passwd[6978]: pam_unix(passwd:chauthtok): password changed for john
Jan 26 16:27:43 i 3Z sudo[6984]: root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/sbin/usermod -aG sudo john
Jan 26 16:27:43 i 3Z sudo[6984]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Jan 26 16:27:43 i 3Z sudo[6984]: pam_unix(sudo:session): session closed for user root
Jan 26 16:29:01 i 3Z sudo[6992]: root : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/sbin/usermod -aG wheel john
Jan 26 16:29:01 i 3Z sudo[6992]: pam_unix(sudo:session): session opened for user root by root(uid=0)
Gestion des utilisateurs
Gérez les utilisateurs et les autorisations du système avec useradd, wheel, passwd et userdel.
useradd
Commande
La commande useradd crée des utilisateurs. Vérifiez avec cat /etc/passwd | grep username.
Requiert des autorisations root ou sudo.
Définissez un mot de passe pour l'utilisateur après sa création.
Les groupes principaux et supplémentaires doivent exister avant la création de l'utilisateur.
Options courantes
|
Option |
Description |
|
-d |
Répertoire personnel. Par défaut : |
|
-m |
Crée le répertoire personnel. Utilisez avec |
|
-s |
Shell de connexion. Par défaut : |
|
-g |
Groupe principal. Le groupe doit exister. |
|
-G |
Groupes supplémentaires. Séparez plusieurs groupes par des virgules (,). |
|
-p |
Mot de passe chiffré. Exemple :
|
|
-u |
ID utilisateur numérique. |
|
-e |
Date d'expiration du compte au format AAAA-MM-JJ. |
Exemples
-
Créez l'utilisateur
jackavec un répertoire personnel et un shell personnalisés.useradd -m -d /home/jack -s /bin/bash jackVérifiez l'utilisateur en exécutant
cat /etc/passwd | grep jack:jack:x:1000:1000::/home/jack:/bin/bashDéfinissez un mot de passe pour l'utilisateur :
passwd jack -
Créez l'utilisateur
alicedans le groupe supplémentairedevelopers.useradd -m -G developers alice -
Créez l'utilisateur
bobavec l'ID utilisateur 1001.useradd -m -u 1001 bob -
Créez un utilisateur avec des autorisations root :
ImportantAccordez des autorisations root uniquement lorsque cela est nécessaire.
-
Créez l'utilisateur
john.useradd john -
Définissez un mot de passe.
passwd john -
Ajoutez l'utilisateur au groupe
wheelpour accorder des autorisations sudo. Exécutezgrep '^wheel:' /etc/grouppour vérifier l'appartenance.sudo usermod -aG wheel john -
Testez les autorisations sudo. Basculez vers le nouvel utilisateur et exécutez une commande
sudo.su - john sudo ls /rootSi vous êtes invité à saisir un mot de passe et que le contenu du répertoire
/roots'affiche, l'utilisateur dispose des autorisations sudo et peut être utilisé pour la connexion à distance. -
(Facultatif) Modifiez le fichier sudoers pour ajouter des autorisations spécifiques.
sudo visudo
-
userdel
Commande
La commande userdel supprime des utilisateurs.
Options courantes
|
Option |
Description |
|
-r |
Supprime le répertoire personnel et ses fichiers. |
|
-f |
Supprime l'utilisateur de force, même s'il est connecté. |
Exemples
-
Supprimez l'utilisateur
john.Basculez vers root et interrogez le répertoire personnel avec
cat /etc/passwd | grep john:john:x:1001:1001::/home/john:/bin/bashSupprimez l'utilisateur
johnmais conservez le répertoire personnel :userdel john -
Supprimez l'utilisateur
johnainsi que le répertoire personnel et les fichiers.userdel -r username -
Supprimez un utilisateur de force.
userdel -f username
wheel
Commande
wheel est un groupe d'utilisateurs qui contrôle l'accès à la commande su pour basculer vers root.
Le groupe
wheelexiste par défaut. Sinon, créez-le avecsudo groupadd wheel.Par défaut, tout utilisateur peut exécuter su et saisir le mot de passe root pour basculer vers root.
Pour restreindre l'accès root, configurez le groupe wheel afin que seuls ses membres puissent utiliser su pour basculer vers root.
Exemples
-
Vérifiez si un utilisateur appartient au groupe wheel.
groups username -
Ajoutez l'utilisateur au groupe wheel.
sudo usermod -aG wheel usernameExécutez
visudopour modifier/etc/sudoers. La ligne%wheel ALL=(ALL) ALLpermet aux membres du groupe wheel d'utilisersudopour toutes les commandes.Pour autoriser sudo sans mot de passe pour les membres de wheel, modifiez la ligne comme suit :
%wheel ALL=(ALL) NOPASSWD: ALL