Linux-Verfügbarkeit anzeigen. Wenn die Ping-Kommunikation vorübergehend nicht auf NG usw. eingestellt ist, kann der Server möglicherweise neu gestartet und bestätigt werden.
$ uptime
12:16:05 up 48 days, 17:53, 2 users, load average: 0.00, 0.02, 0.00
Es ist wünschenswert, dass der Lastdurchschnitt niedriger als die Anzahl der CPU-Kerne ist.
Verwenden Sie den Befehl ps, um die laufenden Prozesszustände aufzulisten (in einem Snapshot). Es wird zur Bestätigung verwendet, z. B. "Welcher Prozess ist die schwere Last?"
$ ps aux
Es kann in Kombination mit dem Befehl grep verwendet werden, um den Prozessstatus eines bestimmten Dienstes zu überprüfen. Das Folgende ist ein Beispiel für die Überprüfung des Prozessstatus von Nginx.
$ ps aux | grep -e nginx -e %CPU
Verwenden Sie den Befehl top, um die (in Echtzeit) laufenden Prozesszustände aufzulisten. Es wird empfohlen, der Option "-c" hinzuzufügen, da der vollständige Pfad des Befehls angezeigt werden kann. Wie der PS-Befehl wird er verwendet, um zu überprüfen, "Welcher Prozess ist die schwere Last?"
$ top -c
Indem Sie die Prozess-ID mit dem Befehl ps überprüfen und die Option "-p" wie unten gezeigt angeben, können Sie nur den spezifischen Prozessstatus überprüfen. Das Folgende ist ein Beispiel für die Überprüfung des Prozessstatus von 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
//Führen Sie dies aus, indem Sie die Prozess-ID von nginx angeben
$ 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
top - 16:45:36 up 36 days, 22:23, 1 user, load average: 0.01, 0.02, 0.00
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
Zeilen 4-5: Der Status für Speicher und Swap wird ausgegeben.
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
Zeigen Sie Statistiken zu virtuellem Speicher, CPU und Festplatten-E / A an. Wenn Sie m mit der Option "--unit" angeben, wird die MB-Anzeige angezeigt und ist leichter zu sehen.
$ 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
Durch Angabe von "1" als Argument kann es in Intervallen von 1 Sekunde angezeigt werden.
$ 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
Zeigt die CPU-Auslastung und die Auslastung der E / A-Geräte an.
$ 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
Zeigen Sie den Status der Speichernutzung an.
//Siehe in Kilobyte
$ free
//Referenz in Megabyte-Einheiten
$ free -m
//Siehe in Gigabyte-Einheiten
$ free -g
Zeigen Sie den Status der Festplattennutzung an. Wenn Sie die Option "-h" angeben, wird sie mit einer geeigneten Einheit angezeigt, daher wird dies empfohlen.
$ df -h
Zeigen Sie den Status der Festplattennutzung an (unter einem bestimmten Verzeichnis). Wenn Sie die Option "-h" angeben, wird sie mit einer geeigneten Einheit angezeigt, daher wird dies empfohlen.
$ du -h | sort -hr
Sie können auch die zu überprüfende Tiefe angeben, indem Sie die Option "--max-depth" angeben. Im Folgenden finden Sie ein Beispiel für die Überprüfung des Status der Festplattennutzung im aktuellen Verzeichnis.
$ 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
Überprüfen Sie den Einbaustatus des Volumes. Es wird verwendet, um zu überprüfen, ob die Festplatte korrekt eingelegt ist, z. B. wenn "Daten nicht gelesen werden können". Beachten Sie, dass Sie bei der Ausführung ohne die Option "-l" möglicherweise Festplatten bereitstellen können, die nicht bereitgestellt werden sollten. Seien Sie daher bei der Ausführung vorsichtig. Wenn Sie nur die Situation überprüfen möchten, müssen Sie die Option "-l" hinzufügen.
$ mount -l
Außerdem enthält die Datei "/ etc / fstab", die eng mit dem Befehl mount zusammenhängt. Hier werden die Mount-Einstellungen des Volumes beschrieben, die beim Starten des Servers oder beim erneuten Laden des Systemmanagers berücksichtigt werden sollen. Wenn Sie den Mount-Status nicht mit dem obigen Befehl "mount -l" bestätigen können, obwohl die Mount-Einstellungen in fstab beschrieben sind, besteht der Verdacht auf eine Anomalie.
$ cat /etc/fstab
Überprüfen Sie die vom Linux-Kernel ausgegebenen Informationen (Software, die im Betriebssystem eine zentrale Rolle spielt, z. B. Prozessverwaltung, Speicherverwaltung und Zeitplanverwaltung). Durch Angabe der Option "-T" werden die Zeitinformationen leichter sichtbar. Durch Angabe der Option "-x" wird auch die Informationsebene der Nachricht angezeigt. Wenn der Server neu gestartet wird, die Anwendung die Daten jedoch nicht normal lesen kann, können Sie feststellen, dass die Festplatte beschädigt ist, indem Sie die Ausgabe von dmesg überprüfen.
$ dmesg -Tx
Überprüfen Sie die Nutzungstendenz früherer Ressourcen (CPU, Speicher usw.). Beachten Sie, dass einige Server möglicherweise nicht installiert sind.
//Überprüfen Sie frühere CPU-Auslastungstrends
$ sar -u
//Überprüfen Sie frühere Trends bei der Speichernutzung
$ sar -r
Überprüfen Sie die Netzwerkkommunikation. Die IP-Adresse "8.8.8.8" gibt übrigens das öffentliche DNS von Google an. Wenn die Ping-Kommunikationsprüfung NG ist, ist es eine gute Idee, den unten eingeführten Befehl "Trace Route" zu verwenden, um zu überprüfen, wo die Kommunikation NG war.
//Überprüfen Sie die Kommunikation anhand der IP-Adresse
$ ping 8.8.8.8
//Überprüfen Sie die Kommunikation anhand des Hostnamens. * Der Name wird ebenfalls aufgelöst
$ ping google.com
//Überprüfen Sie die Kommunikation weiterhin in Intervallen von 1 Sekunde
$ ping -i 1 8.8.8.8
//Überprüfen Sie die Kommunikation mit IPv4
$ ping -4 google.com
//Überprüfen Sie die Kommunikation mit IPv6
$ ping -6 google.com
Überprüfen Sie die Netzwerkroute. Beachten Sie, dass einige Server möglicherweise nicht installiert sind. Es wird oft verwendet, um zu bestätigen, wo die Kommunikation NG war.
$ traceroute 8.8.8.8
Überprüfen Sie die Namensauflösung. Der Unterschied zwischen den Befehlen nslookup und dig besteht darin, dass der erstere das Antwortergebnis des Nameservers so verarbeitet, dass es leicht zu sehen ist, während der letztere das Antwortergebnis des Nameservers unverändert anzeigt. Wenn Sie DNS verdächtig sind, sollten Sie diesen Befehl zuerst verwenden, um den Zustand der Namensauflösung zu überprüfen.
//Vorwärtszug prüfen
$ nslookup google.com
//Überprüfen Sie den Rückwärtszug
$ nslookup 8.8.8.8
//Vorwärtszug prüfen
$ dig google.com
//Überprüfen Sie den Rückwärtszug
$ dig -x 8.8.8.8
Überprüfen Sie den Verbindungsstatus des TCP-Sockets. Beachten Sie, dass netstat in RHEL7 und höher veraltet ist und ss als alternativer Befehl empfohlen wird. Mit dem folgenden Befehl können Sie den Verbindungsstatus des IPv4-TCP-Sockets überprüfen. Es wird verwendet, um anhand des Portnutzungsstatus zu überprüfen, welche Art von Server betrieben wird. Obwohl es veraltet ist, ist netstat leichter zu lesen, daher ist es besser, den Befehl netstat als den Befehl ss zu verwenden, bis er vollständig nicht mehr verfügbar ist.
//Empfehlung
$ ss -at4
//nicht empfohlen
$ netstat -at4
Überprüfen Sie den Netzwerkstatus. Ifconfig ist in RHEL7 und höher veraltet, und ip wird als alternativer Befehl empfohlen. Das Folgende ist ein Befehl zum Anzeigen der Netzwerkeinstellungen für jede vorhandene Schnittstelle. Dient zum Überprüfen des Verbindungsstatus der Netzwerkschnittstelle.
//Empfehlung
$ ip a
//nicht empfohlen
$ ifconfig -a
Überprüfen Sie die Routing-Tabelle. Beachten Sie, dass die Route in RHEL7 und höher veraltet ist und ip als alternativer Befehl empfohlen wird. Das Folgende ist ein Befehl zum Überprüfen der Routing-Tabelle. Obwohl veraltet, ist die Ausgabe des Befehls route leichter zu lesen. Daher ist es besser, den Befehl route als den Befehl ip zu verwenden, bis er vollständig nicht mehr verfügbar ist.
//Empfehlung
$ ip r
//nicht empfohlen
$ route
//nicht empfohlen
$ netstat -nr
Überprüfen Sie die ARP-Cache-Tabelle. Darüber hinaus ist arp in RHEL7 oder höher veraltet, und ip wird als alternativer Befehl empfohlen. Das Folgende ist ein Befehl zum Überprüfen der ARP-Cache-Tabelle. Wenn beispielsweise der Router ausgetauscht wird, kann die MAC-Adresse des vorherigen Geräts im APR-Cache verbleiben, was zu einem Kommunikationsfehler usw. führt. In diesem Fall wird sie als Isolation verwendet.
//Empfehlung
$ ip n
//nicht empfohlen
$ arp -a
Überprüfen Sie das Ausgabeprotokoll in Echtzeit. Es ist effektiv zu überprüfen, welche Art von Protokoll ausgegeben wird, wenn derzeit Probleme in der laufenden Form auftreten.
$ tail -f access.log
Wenn ein großes Protokoll in kurzer Zeit ausgegeben wird, wird es häufig in Kombination mit dem Befehl grep verwendet. Das Folgende ist ein Beispiel für die Kombination des Befehls tail und des Befehls grep und die standardmäßige Ausgabe nur des Fehlers 404.
$ 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" "-"
Suchen Sie nach Dateien, die (verschiedenen) Bedingungen entsprechen. Oft kennen Sie die Verzeichnisdateistruktur nicht und wissen nicht, wo sich die gesuchte Datei befindet. In einem solchen Fall wird dieser Befehl häufig zur Suche verwendet.
//Suchen Sie unter dem Suchpfad nach der angegebenen Datei
$Suchpfad finden-Name Dateiname
//Ausführungsbeispiel
$ find /var/log/ -name "access.log"
/var/log/nginx/access.log
//Beispiel mit Platzhaltern
$ 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
//Beispiel für die Angabe des Dateityps (nur Datei)
$ find /opt/docker/ -name "*.conf" -type f
/opt/docker/nginx/conf/default.conf
/opt/docker/nginx/conf/nginx.conf
//Beispiel für die Angabe des Dateityps (nur Verzeichnis)
$ find /opt/docker/ -name "nginx" -type d
/opt/docker/nginx
Extrahieren Sie Zeilen mit bestimmten Zeichen aus der Datei. Dieser Befehl wird sehr häufig verwendet, wird jedoch häufig verwendet, um zu überprüfen, ob bei der Fehlerbehebung im Protokoll ein Fehler ausgegeben wird. Hier möchte ich ein Beispiel für den persönlichen Gebrauch vorstellen.
//Extrahieren Sie Zeilen mit bestimmten Zeichen aus der angegebenen Datei
$ grep access.log nginx.conf
access_log /var/log/nginx/access.log main;
//Verwenden Sie Platzhalter, um Zeilen mit bestimmten Zeichen aus Dateien zu extrahieren
$ 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 Optional, um bestimmte Zeichenfolgen von der Extraktion auszuschließen
$ 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
// -Extrahieren Sie eine bestimmte Zeichenfolge durch ODER-Suche mit der Option e
$ grep -e test -e tast test.txt
test
tast
test
// -Mit der Option i wird die Groß- und Kleinschreibung nicht berücksichtigt
$ grep Access.log nginx.conf
$ grep -i Access.log nginx.conf
access_log /var/log/nginx/access.log main;
//Führt eine Suche mit Unterverzeichnissen durch und zielt auch auf das Ziel symbolischer Links ab
$ 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>
Dateien auflisten. Hier möchte ich ein Beispiel für den persönlichen Gebrauch vorstellen.
//Listen Sie einfach Dateien auf
$ ls
conf docker-compose.yml html
//Zeigen Sie auch Dateiinformationen an
$ 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
//Die Punktdatei wird ebenfalls angezeigt
$ 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
//Listen Sie die Dateien in chronologischer Reihenfolge auf und zeigen Sie sie in umgekehrter Reihenfolge an
$ 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
//Zeigen Sie die Dateigröße in einem für Menschen lesbaren Format an
$ 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
//Rekursiv anzeigen
# 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 .
Text anzeigen. Es wird verwendet, wenn der Fehlerteil aus dem Protokoll überprüft wird.
$ more access.log
$ less access.log
$ view access.log
In der folgenden Tabelle sind die Unterschiede zusammengefasst, die Sie kennen sollten, obwohl es geringfügige Unterschiede gibt.
Befehl | Anzeigegeschwindigkeit | So beenden Sie |
---|---|---|
more | schnell | Endet automatisch, wenn Sie das Ende der Zeile erreichen/ q / Ctrl+C |
less | schnell | q |
view | langsam | :q |
Recommended Posts