Afficher la disponibilité de Linux. Lorsque la communication ping est temporairement NG, etc., le serveur peut être suspecté d'avoir redémarré et confirmé.
$ uptime
12:16:05 up 48 days, 17:53, 2 users, load average: 0.00, 0.02, 0.00
Il est souhaitable que la charge moyenne soit inférieure au nombre de cœurs de processeur.
Utilisez la commande ps pour répertorier les états du processus en cours d'exécution (dans un instantané). Il est utilisé pour une confirmation telle que "Quel processus est la charge lourde?"
$ ps aux
Il peut être utilisé en combinaison avec la commande grep pour vérifier l'état du processus d'un service spécifique. Voici un exemple de vérification de l'état du processus de Nginx.
$ ps aux | grep -e nginx -e %CPU
Utilisez la commande top pour répertorier les états (en temps réel) des processus en cours d'exécution. Il est recommandé d'ajouter "-c" à l'option car le chemin complet de la commande peut être affiché. Comme la commande PS, elle est utilisée pour vérifier "Quel processus représente la charge lourde?"
$ top -c
En vérifiant l'ID de processus avec la commande ps et en spécifiant l'option "-p" comme indiqué ci-dessous, vous ne pouvez vérifier que l'état du processus spécifique. Voici un exemple de vérification de l'état du processus de Nginx.
$ ps aux | grep -e nginx -e %CPU
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2142 0.0 0.0 53788 68 ? Ss Jun06 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 2143 0.0 0.1 85396 3048 ? S Jun06 0:03 nginx: worker process
root 13439 0.0 0.0 12108 1088 pts/0 S+ 16:53 0:00 grep --color=auto -e nginx -e %CPU
//Exécuter en spécifiant l'ID de processus de nginx
$ top -cp 2142
top - 16:54:05 up 36 days, 22:31, 1 user, load average: 0.06, 0.23, 0.16
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1829.2 total, 80.2 free, 1558.7 used, 190.4 buff/cache
MiB Swap: 2048.0 total, 854.2 free, 1193.8 used. 120.1 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2142 root 20 0 53788 68 68 S 0.0 0.0 0:00.01 nginx
1ère ligne: les informations de disponibilité et de charge globale sont sorties.
top - 16:45:36 up 36 days, 22:23, 1 user, load average: 0.01, 0.02, 0.00
2ème à 3ème lignes: l'état lié à la CPU et aux tâches est affiché.
Tasks: 116 total, 1 running, 115 sleeping, 0 stopped, 0 zombie
%Cpu(s): 12.5 us, 0.0 sy, 0.0 ni, 87.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
Lignes 4-5: l'état lié à la mémoire et au swap est émis.
MiB Mem : 1829.2 total, 74.0 free, 1558.9 used, 196.3 buff/cache
MiB Swap: 2048.0 total, 854.2 free, 1193.8 used. 119.9 avail Mem
Afficher les statistiques de la mémoire virtuelle, du processeur et des E / S disque. En spécifiant m avec l'option "--unit", l'affichage MB sera affiché et il sera plus facile à voir.
$ vmstat --unit m
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 153 228 115 962 0 0 234 16 3 3 1 0 99 0 0
En spécifiant "1" comme argument, il peut être affiché à des intervalles d'une seconde.
$ vmstat --unit m 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 153 228 115 962 0 0 234 16 3 3 1 0 99 0 0
0 0 153 227 115 962 0 0 0 0 150 168 0 0 100 0 0
0 0 153 227 115 962 0 0 0 0 151 188 0 0 100 0 0
Affiche l'utilisation du processeur et l'utilisation du périphérique d'E / S.
$ iostat -h
Linux 4.18.0-147.8.1.el8_1.x86_64 (XXX-XX-XX-XXX) 07/01/2020 _x86_64_ (3 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.6% 0.0% 0.4% 0.0% 0.0% 98.9%
tps kB_read/s kB_wrtn/s kB_read kB_wrtn Device
11.96 700.4k 48.5k 2.7T 194.7G vda
0.00 0.0k 0.0k 416.0k 0.0k scd0
Affichez l'état d'utilisation de la mémoire.
//Se référer à en kilo-octets
$ free
//Référence en unités mégaoctets
$ free -m
//Se référer à en unités de gigaoctet
$ free -g
Affichez l'état d'utilisation du disque. En spécifiant l'option "-h", il sera affiché avec une unité appropriée, c'est donc recommandé.
$ df -h
Affichez l'état d'utilisation du disque (sous un répertoire spécifique). En spécifiant l'option "-h", il sera affiché avec une unité appropriée, c'est donc recommandé.
$ du -h | sort -hr
Vous pouvez également spécifier la profondeur à vérifier en spécifiant l'option "--max-depth". Voici un exemple de vérification de l'état d'utilisation du disque dans le répertoire actuel.
$ du --max-depth=1 -h | sort -hr
772M .
743M ./.vscode-server
13M ./.local
11M ./.cache
44K ./.vscode-remote
8.0K ./.vscode
8.0K ./.ssh
8.0K ./.pylint.d
8.0K ./.config
Vérifiez l'état de montage du volume. Il est utilisé pour vérifier si le disque est correctement monté, par exemple lorsque "les données ne peuvent pas être lues". Notez que si vous exécutez sans l'option "-l", vous pouvez monter des disques qui ne doivent pas être montés, soyez donc prudent lors de l'exécution. Si vous voulez juste vérifier la situation, assurez-vous d'ajouter l'option "-l".
$ mount -l
De plus, il y a "/ etc / fstab" dans le fichier qui est étroitement lié à la commande de montage. Cela décrit les paramètres de montage du volume à refléter lorsque le serveur est démarré ou que le gestionnaire système est rechargé. Si vous ne pouvez pas confirmer l'état du montage avec la commande "mount -l" ci-dessus, même si les paramètres de montage sont décrits dans fstab, il y a place à la suspicion d'une anomalie.
$ cat /etc/fstab
Vérifiez les informations fournies par le noyau Linux (logiciel qui joue un rôle central dans le système d'exploitation, comme la gestion des processus, la gestion de la mémoire et la gestion des horaires). En spécifiant l'option "-T", les informations de temps deviennent plus faciles à voir. De plus, en spécifiant l'option "-x", le niveau d'information du message est affiché. Lorsque le serveur est redémarré mais que l'application ne peut pas lire les données normalement, vous pouvez constater que le disque est endommagé en vérifiant la sortie de dmesg.
$ dmesg -Tx
Vérifiez la tendance d'utilisation des ressources passées (CPU, mémoire, etc.). Veuillez noter qu'il peut ne pas être installé selon le serveur.
//Vérifiez les tendances d'utilisation du processeur passées
$ sar -u
//Vérifiez les tendances d'utilisation de la mémoire passées
$ sar -r
Vérifiez la communication réseau. À propos, l'adresse IP "8.8.8.8" indique le DNS public de Google. Si la vérification de la communication ping est NG, c'est une bonne idée d'utiliser la commande "trace route" présentée ci-dessous pour vérifier où la communication était NG.
//Vérifier la communication par adresse IP
$ ping 8.8.8.8
//Vérifiez la communication par nom d'hôte * Il résout également le nom
$ ping google.com
//Continuez à vérifier la communication toutes les 1 seconde
$ ping -i 1 8.8.8.8
//Vérifier la communication avec IPv4
$ ping -4 google.com
//Vérifier la communication avec IPv6
$ ping -6 google.com
Vérifiez l'itinéraire réseau. Veuillez noter qu'il peut ne pas être installé selon le serveur. Il est souvent utilisé pour confirmer où la communication était NG.
$ traceroute 8.8.8.8
Vérifiez la résolution du nom. La différence entre les commandes nslookup et dig est que la première traite le résultat de la réponse du serveur de noms de sorte qu'il soit facile à voir, tandis que la seconde affiche le résultat de la réponse du serveur de noms tel quel. Si vous vous méfiez du DNS, c'est une bonne idée d'utiliser d'abord cette commande pour vérifier l'état de la résolution de noms.
//Vérifiez la traction avant
$ nslookup google.com
//Vérifiez la traction inversée
$ nslookup 8.8.8.8
//Vérifiez la traction avant
$ dig google.com
//Vérifiez la traction inversée
$ dig -x 8.8.8.8
Vérifiez l'état de la connexion du socket TCP. Notez que netstat est obsolète dans RHEL7 et versions ultérieures, et ss est recommandé comme commande alternative. Voici une commande permettant de vérifier l'état de la connexion du socket TCP IPv4. Il est utilisé pour vérifier quel type de serveur fonctionne à partir de l'état d'utilisation du port. Bien qu'il soit obsolète, netstat est plus facile à lire, il est donc préférable d'utiliser la commande netstat que la commande ss jusqu'à ce qu'elle soit complètement indisponible.
//Recommandation
$ ss -at4
//non recommandé
$ netstat -at4
Vérifiez l'état du réseau. De plus, ifconfig est obsolète dans RHEL7 ou version ultérieure, et ip est recommandé comme commande alternative. Ce qui suit est une commande pour afficher les paramètres réseau de chaque interface existante. Il est utilisé pour vérifier l'état de connexion de l'interface réseau.
//Recommandation
$ ip a
//non recommandé
$ ifconfig -a
Vérifiez la table de routage. Notez que route est obsolète dans RHEL7 et versions ultérieures, et ip est recommandé comme commande alternative. Voici une commande pour vérifier la table de routage. Bien que déconseillée, la sortie de la commande route est plus facile à lire, il est donc préférable d'utiliser la commande route plutôt que la commande ip jusqu'à ce qu'elle soit complètement indisponible.
//Recommandation
$ ip r
//non recommandé
$ route
//non recommandé
$ netstat -nr
Vérifiez la table de cache ARP. De plus, arp est obsolète dans RHEL7 ou version ultérieure, et ip est recommandé comme commande alternative. Ce qui suit est une commande pour vérifier la table de cache ARP. Par exemple, lorsque le routeur est remplacé, l'adresse MAC du périphérique précédent peut être laissée dans le cache APR, provoquant une panne de communication, etc., et elle est utilisée comme isolement dans ce cas.
//Recommandation
$ ip n
//non recommandé
$ arp -a
Vérifiez le journal de sortie en temps réel. Il est efficace de vérifier quel type de journal est généré lorsque des problèmes se produisent actuellement dans le formulaire en cours.
$ tail -f access.log
Si un énorme journal est généré en peu de temps, il est souvent utilisé en combinaison avec la commande grep. Voici un exemple de combinaison de la commande tail et de la commande grep et de la sortie de l'erreur 404 uniquement en standard.
$ tail -f access.log | grep 404
125.197.158.68 - - [01/Jul/2020:13:45:11 +0900] "GET /404 HTTP/1.1" 301 162 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36" "-"
125.197.158.68 - - [01/Jul/2020:13:45:11 +0900] "GET /404 HTTP/2.0" 404 548 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36" "-"
125.197.158.68 - - [01/Jul/2020:13:45:11 +0900] "GET /favicon.ico HTTP/2.0" 404 548 "https://example.com/404" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36" "-"
Recherchez des fichiers qui correspondent à (diverses) conditions. Souvent, vous ne connaissez pas la structure des fichiers de répertoire et vous ne savez pas où se trouve le fichier que vous recherchez. Dans un tel cas, cette commande est souvent utilisée pour la recherche.
//Recherchez le fichier spécifié sous le chemin de recherche
$trouver le chemin de recherche-nom Nom du fichier
//Exemple d'exécution
$ find /var/log/ -name "access.log"
/var/log/nginx/access.log
//Exemple utilisant des caractères génériques
$ find /var/log/ -name "*.log"
/var/log/letsencrypt/letsencrypt.log
/var/log/dnf.rpm.log
/var/log/dnf.librepo.log
/var/log/boot.log
/var/log/nginx/error.log
/var/log/nginx/access.log
/var/log/audit/audit.log
/var/log/cloud-init-output.log
/var/log/cloud-init.log
/var/log/dnf.log
/var/log/sssd/sssd_nss.log
/var/log/sssd/sssd_implicit_files.log
/var/log/sssd/sssd.log
/var/log/hawkey.log
/var/log/tuned/tuned.log
//Exemple de spécification du type de fichier (fichier uniquement)
$ find /opt/docker/ -name "*.conf" -type f
/opt/docker/nginx/conf/default.conf
/opt/docker/nginx/conf/nginx.conf
//Exemple de spécification du type de fichier (répertoire uniquement)
$ find /opt/docker/ -name "nginx" -type d
/opt/docker/nginx
Extrayez les lignes contenant des caractères spécifiques du fichier. Cette commande est utilisée très souvent, mais elle est souvent utilisée pour vérifier si une erreur est sortie du journal de dépannage. Ici, je voudrais présenter un exemple pour un usage personnel.
//Extraire des lignes contenant des caractères spécifiques du fichier spécifié
$ grep access.log nginx.conf
access_log /var/log/nginx/access.log main;
//Utilisez des caractères génériques pour extraire des lignes contenant des caractères spécifiques à partir de fichiers
$ grep http *.conf
default.conf: return 301 https://$host$request_uri;
default.conf: listen 443 ssl http2;
default.conf: listen [::]:443 ssl http2;
default.conf: proxy_pass http://localhost:5601;
nginx.conf:http {
nginx.conf: '$status $body_bytes_sent "$http_referer" '
nginx.conf: '"$http_user_agent" "$http_x_forwarded_for"';
// -v Facultatif pour exclure des chaînes spécifiques de l'extraction
$ echo -e "test\ntast\ntest" > test.txt
$ cat test.txt
test
tast
test
$ grep test test.txt
test
test
$ grep -v test test.txt
tast
// -Extraire une chaîne de caractères spécifique par OU rechercher avec l'option e
$ grep -e test -e tast test.txt
test
tast
test
// -Extraire insensible à la casse avec l'option i
$ grep Access.log nginx.conf
$ grep -i Access.log nginx.conf
access_log /var/log/nginx/access.log main;
//Effectue une recherche incluant les sous-répertoires et cible également la destination des liens symboliques
$ grep -R http
nginx/conf/default.conf: return 301 https://$host$request_uri;
nginx/conf/default.conf: listen 443 ssl http2;
nginx/conf/default.conf: listen [::]:443 ssl http2;
nginx/conf/default.conf: proxy_pass http://localhost:5601;
nginx/conf/nginx.conf:http {
nginx/conf/nginx.conf: '$status $body_bytes_sent "$http_referer" '
nginx/conf/nginx.conf: '"$http_user_agent" "$http_x_forwarded_for"';
nginx/html/index.html:<a href="http://nginx.org/">nginx.org</a>.<br/>
nginx/html/index.html:<a href="http://nginx.com/">nginx.com</a>.</p>
Liste des fichiers. Ici, je voudrais présenter un exemple pour un usage personnel.
//Répertoriez simplement les fichiers
$ ls
conf docker-compose.yml html
//Afficher également les informations sur le fichier
$ ls -l
total 12
drwxr-xr-x 2 root root 4096 May 22 20:52 conf
-rw-r--r-- 1 root root 655 May 22 20:37 docker-compose.yml
drwxr-xr-x 2 root root 4096 May 20 16:02 html
//Le fichier de points est également affiché
$ ls -la
total 20
drwxr-xr-x 4 root root 4096 May 22 20:37 .
drwxr-xr-x 5 root root 4096 May 19 13:47 ..
drwxr-xr-x 2 root root 4096 May 22 20:52 conf
-rw-r--r-- 1 root root 655 May 22 20:37 docker-compose.yml
drwxr-xr-x 2 root root 4096 May 20 16:02 html
//Lister les fichiers dans l'ordre chronologique et les afficher dans l'ordre inverse
$ ls -latr
total 20
drwxr-xr-x 5 root root 4096 May 19 13:47 ..
drwxr-xr-x 2 root root 4096 May 20 16:02 html
-rw-r--r-- 1 root root 655 May 22 20:37 docker-compose.yml
drwxr-xr-x 4 root root 4096 May 22 20:37 .
drwxr-xr-x 2 root root 4096 May 22 20:52 conf
//Afficher la taille du fichier dans un format lisible par l'homme
$ ls -latrh
total 20K
drwxr-xr-x 5 root root 4.0K May 19 13:47 ..
drwxr-xr-x 2 root root 4.0K May 20 16:02 html
-rw-r--r-- 1 root root 655 May 22 20:37 docker-compose.yml
drwxr-xr-x 4 root root 4.0K May 22 20:37 .
drwxr-xr-x 2 root root 4.0K May 22 20:52 conf
//Afficher récursivement
# ls -latrhR
.:
total 20K
drwxr-xr-x 5 root root 4.0K May 19 13:47 ..
drwxr-xr-x 2 root root 4.0K May 20 16:02 html
-rw-r--r-- 1 root root 655 May 22 20:37 docker-compose.yml
drwxr-xr-x 4 root root 4.0K May 22 20:37 .
drwxr-xr-x 2 root root 4.0K May 22 20:52 conf
./html:
total 16K
-rw-r--r-- 1 root root 612 Apr 14 23:19 index.html
-rw-r--r-- 1 root root 494 Apr 14 23:19 50x.html
drwxr-xr-x 2 root root 4.0K May 20 16:02 .
drwxr-xr-x 4 root root 4.0K May 22 20:37 ..
./conf:
total 16K
-rw-r--r-- 1 root root 670 May 20 19:32 nginx.conf
drwxr-xr-x 4 root root 4.0K May 22 20:37 ..
-rw-r--r-- 1 root root 1.3K May 22 20:52 default.conf
drwxr-xr-x 2 root root 4.0K May 22 20:52 .
Afficher le texte. Il est utilisé lors de la vérification de la partie erreur du journal.
$ more access.log
$ less access.log
$ view access.log
Le tableau ci-dessous résume les différences que vous devez connaître, bien qu'il y ait des différences mineures.
commander | Vitesse d'affichage | Comment sortir |
---|---|---|
more | vite | Se termine automatiquement lorsque vous atteignez la fin de la ligne/ q / Ctrl+C |
less | vite | q |
view | lent | :q |
Recommended Posts