Linux bietet unzählige Befehle und Dienstprogramme, mit denen Sie Ihre Systemverwaltungsaufgaben schnell und effizient ausführen können.
Ihre Arbeit als System Administrator Dazu gehört die Installation und Ausführung von Software, die Kontrolle des Zugriffs, die Überwachung, die Sicherstellung der Verfügbarkeit, Sicherungen, die Wiederherstellung von Sicherungen und natürlich die Brandbekämpfung. 😜
In diesem Artikel werden einige der Befehle beschrieben, die von Linux-Systemadministratoren bei ihrer täglichen Arbeit häufig verwendet werden.
uname
Nutzen Sie den uname
Befehl mit dem -a
Flag zum Drucken von Systeminformationen. Dieser Befehl zeigt Ihnen den Kernelnamen, die Kernelversion, die Kernelversion, den Hostnamen, den Prozessortyp und Ihre Hardwareplattforminformationen an.
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
Folgendes bedeutet dies:
kernel name:Linux
hostname: ubuntu18
kernel release: 5.3.0-1028-azure
kernel version: #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020
machine hardware name: x86_64
processor: x86_64
hardware-platform: x86_64
operating system: GNU/Linux
df
Nutzen Sie den df
Befehl zum Überprüfen der Größe des Dateisystems und des verfügbaren Speicherplatzes. Dieser von sich selbst verwendete Befehl zeigt die Ausgabe in 1K
Blöcke
ubuntu@ubuntu18:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 437208 0 437208 0% /dev
tmpfs 91100 692 90408 1% /run
/dev/sda1 30309264 2383952 27908928 8% /
....
Option -h
Zeigt die Ausgabe in einem für Menschen lesbaren Format an MB
funktioniert GB
.
ubuntu@ubuntu18:~$ df -h
Filesystem Size Used Avail Use% Mounted on
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
Verwenden Sie flag, um ein Dateisystem zu ignorieren, z. B. tmpfs, dh eine sauberere Ausgabe -x
ubuntu@ubuntu18:~$ df -h -x tmpfs
Filesystem Size Used Avail Use% Mounted on
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
Verwenden Sie, um nur einen bestimmten Dateisystemtyp aufzulisten -t
Flagge. So zeigen Sie beispielsweise nur das ext4-Dateisystem an:
ubuntu@ubuntu18:~$ df -h -t ext4
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 2.3G 27G 8% /
/dev/sdb1 3.9G 16M 3.7G 1% /mnt
Wenn Sie das Total-Flag verwenden, wird eine Zeile mit den Gesamtsummen hinzugefügt:
ubuntu@ubuntu18:~$ df -h -t ext4 --total
Filesystem Size Used Avail Use% Mounted on
/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
Verwenden Sie, um die Speicherplatznutzung in einem Verzeichnis zu überprüfen du
Befehl. Zum Beispiel, um die Speicherplatznutzung im Verzeichnis / var / log anzuzeigen. Verwenden -h
Flag für lesbares Format.
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
Um nur die Gesamtnutzung zu sehen, verwenden Sie nur -s
(Zusammenfassung) Flagge.
ubuntu@ubuntu18:~$ sudo du -hs /var/log
204M /var/log
free
Verwenden Sie den Befehl free, um den gesamten, verwendeten und freien Systemspeicher anzuzeigen. Verwenden -h
Flag für lesbares Format.
ubuntu@ubuntu18:~$ free -h
total used free shared buff/cache available
Mem: 889M 272M 100M 712K 517M 443M
Swap: 0B 0B 0B
total - Total installed memory (memtotal + swaptotal)
used - used memory
free - unused memory (memfree + swapfree)
buffers - memory used by kernel buffers
cache - memory used by page caches
buff/cache - sum of buffers and cache
available - Estimated memory available for starting new applications, without swapping
ps
Nutzen Sie den ps
um Statusinformationen zu Prozessen anzuzeigen, die auf dem System ausgeführt werden. Verwenden Sie, um alle Prozesse anzuzeigen, die dem Benutzer ubuntu gehören -u
Flag mit dem Benutzernamen:
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
Um alle Prozesse anzuzeigen, führen Sie ps mit Aux-Flags aus:
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]
....
woher
Überschrift | Bedeutung |
PID | Prozessidentifikationsnummer |
%ZENTRALPROZESSOR | Prozentsatz der CPU-Zeit, die der Prozess verwendet |
% MEM | Der Prozentsatz des RAM-Prozesses wird verwendet |
VSZ | Virtueller Speicher wird in KB verwendet |
RSS | Physischer Speicher, den der Prozess in KB verwendet |
TTY | Mit dem Prozess verbundenes Terminal |
STAT | R - Laufen oder bereit zum Laufen, S - Schlafen, I - Leerlauf, T - Gestoppt, Z - Zombie, D - Warten auf Festplatten-E / A, X - Tot, W - Ausgetauscht, N - Prozess mit niedriger Priorität, <- Prozess mit hoher Priorität |
top
Während ps
Der Befehl zeigt eine Momentaufnahme des Status von Prozessen zu jedem Zeitpunkt an. Oben wird eine kontinuierlich aktualisierte Liste der Systemprozesse (standardmäßig alle drei Sekunden) in der Reihenfolge der Prozessaktivität angezeigt.
Das top
Die Befehlsausgabe besteht aus zwei Hauptteilen: der Systemübersicht oben und der nach CPU-Aktivität sortierten Prozesstabelle.
top - 14:25:32 up 44 days, 11:37, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 114 total, 1 running, 59 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
KiB Mem : 910992 total, 101208 free, 274712 used, 535072 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 458492 avail Mem
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_+
Einige der Felder in der Systemzusammenfassung lauten wie folgt:
up | Betriebszeit. Zeit seit dem letzten Start der Maschine. | ||||||||||||||||
Durchschnittslast | Der Lastdurchschnitt bezieht sich auf die Anzahl der Prozesse, die auf ihre Ausführung warten. Ein Wert unter 1.0 bedeutet, dass die Maschine nicht ausgelastet ist. Es gibt 3 Werte. Erstens ist der Durchschnitt der letzten 60 Sekunden, zweitens ist der Durchschnitt der letzten 5 Minuten und der dritte ist der Durchschnitt der letzten 15 Minuten. | ||||||||||||||||
% CPU (s)
| Diese Zeile beschreibt die Aktivitäten der CPU.
|
Die Felder der Prozesstabelle lauten wie folgt:
PID | Prozessidentifikationsnummer |
USER | Prozessverantwortlicher |
PR | Priorität |
NI | Schöner Wert |
RESPEKTIERTE | Vom Prozess verwendeter virtueller Speicher (KB) |
RES | Vom Prozess verwendeter physischer Speicher |
SHR | Vom Prozess verwendeter gemeinsamer Speicher |
S | Prozessstatus. R - Laufen, S - Schlafen, I - Leerlauf, T - gestoppt, Z - Zombie, D - Warten auf Festplatten-E / A, W - Auswechseln, X - Tot |
%ZENTRALPROZESSOR | Der CPU-Zeitprozess wird in Prozent verwendet |
% MEM | Der physische Speicherprozess wird verwendet |
ZEIT [+] | Vom Prozess verwendete Gesamt-CPU-Zeit |
COMMAND | Name des Programms |
Während top
läuft, können Sie eine Reihe von Befehlen ausgeben. Drücken Sie h
or ?
um Befehle zu sehen, die ausgeführt werden können, während top ausgeführt wird. Drücken Sie k
einen Prozess beenden. Drücken Sie q
oben zu beenden.
dig
dig
ist ein großartiges Tool für DNS-Abfragen. Es wird wie folgt verwendet:
dig <DNS server> <domain> <query-type>
woher
- ist der DNS-Servername, den Sie abfragen möchten
- ist der Domainname, über den Sie abfragen möchten
- ist der Name des Datensatzes, den Sie kennen möchten - A, MX, NS SOA usw.
Verwenden Sie das Flag + short, um eine ausführliche Ausgabe zu unterdrücken.
So zeigen Sie einen Datensatz für google.com an:
ubuntu@ubuntu18:~$ dig google.com +short
172.217.164.174
Um MX-Einträge für google.com anzuzeigen, verwenden Sie:
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.
Wenn Sie DNS-Einträge im Internet abfragen müssen, können Sie die verwenden DNS-Nachschlagetool.
who and w
who
Zeigt Benutzer an, die angemeldet sind.
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
Zeigt die aktuell angemeldeten Benutzer und ihre Prozesse an. Der Header zeigt die aktuelle Zeit, die Systemverfügbarkeit, die Anzahl der angemeldeten Benutzer und die Durchschnittswerte der Systemlast an.
ubuntu@ubuntu18:~$ w
18:07:33 up 46 days, 15:19, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM 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
Der nächste Teil zeigt die Benutzernamen, das Terminal und die Remote-IP, von der aus sie angemeldet sind, die Anmeldezeit, die Leerlaufzeit, die JCPU, die PCPU und das Programm, das sie ausführen. JCPU ist die Zeit, die von allen an die tty angehängten Prozessen verwendet wird, während PCPU die Zeit ist, die vom aktuellen Prozess verwendet wird.
tar
Mit GNU tar können Sie mehrere Dateien in einer einzigen Datei archivieren.
Erstellen Sie als Beispiel ein Verzeichnis myfiles und drei Dateien a.txt, b.txt, c.txt im Verzeichnis myfiles:
ubuntu@ubuntu18:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}
So erstellen Sie jetzt ein Archiv mit dem Namen allfiles.tar, das alle Dateien im Verzeichnis myfiles enthält:
ubuntu@ubuntu18:~$ tar -cvf allfiles.tar myfiles
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt
Listen Sie alle Dateien im aktuellen Verzeichnis auf. Sie können das Verzeichnis myfiles und das Archiv allfiles.tar sehen:
ubuntu@ubuntu18:~$ ls
allfiles.tar myfiles
Sie können ein Archiv mit dem Flag -x entpacken. Also, um allfiles.tar auszupacken:
ubuntu@ubuntu18:~$ tar -xvf allfiles.tar
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt
Sie können dieses Archiv auch mit dem Flag -z komprimieren. Dies würde ein mit gzip komprimiertes Archiv erstellen.
ubuntu@ubuntu18:~$ tar -zcvf allfiles.tar.gz myfiles
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt
ubuntu@ubuntu18:~$ ls
allfiles.tar.gz myfiles
Um ein komprimiertes Archiv zu entpacken, verwenden Sie -z
mit -x
Flagge.
ubuntu@ubuntu18:~$ tar -zxvf allfiles.tar.gz
myfiles/
myfiles/c.txt
myfiles/a.txt
myfiles/b.txt
grep
grep
wird verwendet, um nach einem Muster in einer Datei oder einer Reihe von Dateien zu suchen. Es werden alle Zeilen gedruckt, die diesem Muster entsprechen. So suchen Sie beispielsweise in /etc/apache2/apache2.conf nach der Zeile mit "ServerRoot":
ubuntu@ubuntu18:~$ grep ServerRoot /etc/apache2/apache2.conf
# ServerRoot: The top of the directory tree under which the server's
#ServerRoot "/etc/apache2"
Um in allen Dateien in einem Verzeichnis zu suchen, verwenden Sie *
. Um die Suche in Unterverzeichnisse aufzunehmen, verwenden Sie -r
(rekursives) Flag. So suchen Sie in allen Dateien in / etc / apache2 nach allen Zeilen, die das Muster "VirtualHost" enthalten:
ubuntu@ubuntu18:~$ cd /etc/apache2
ubuntu@ubuntu18:/etc/apache2$ grep -r VirtualHost *
apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost>
apache2.conf:# logged here. If you *do* define an error logfile for a <VirtualHost>
conf-available/localized-error-pages.conf:# even on a per-VirtualHost basis. If you include the Alias in the global server
conf-available/other-vhosts-access-log.conf:# Define an access log for VirtualHosts that don't define their own logfile
ports.conf:# have to change the VirtualHost statement in
sites-available/000-default.conf:<VirtualHost *:80>
...
rsync
<a href="https://geekflare.com/rsync-guide/">rsync</a> is a fast command-line tool for synchronizing files and directories between two locations. Can be used for both local and remote copying and is fast because it sends only the differences between the source files and the existing files in the destination.
Es wird häufig für Sicherungen und als verbesserter Kopierbefehl für den täglichen Gebrauch verwendet.
Hier ist ein Beispiel:
So kopieren / synchronisieren Sie alle Dateien aus dem Verzeichnis myfiles in das Sicherungsverzeichnis:
ubuntu@ubuntu18:~$ rsync -avh myfiles/ /backups
sending incremental file list
./
a.txt
b.txt
c.txt
sent 218 bytes received 76 bytes 588.00 bytes/sec
total size is 0 speedup is 0.00
Um alle Dateien vom Verzeichnis myfiles in das Sicherungsverzeichnis auf einem Remote-Host zu synchronisieren, schließen Sie Folgendes ein: remote_user @remote_host
im Zielnamen. So synchronisieren Sie den Ordner "myfiles" mit einem Remote-Host mit IP 10.0.0.50:
vagrant@ubuntu-xenial:~$ rsync -avh myfiles/ vagrant@10.0.0.50:/home/vagrant
vagrant@10.0.0.50's password:
sending incremental file list
./
a.txt
b.txt
c.txt
sent 230 bytes received 76 bytes 47.08 bytes/sec
total size is 0 speedup is 0.00
ss
ss
Der Befehl wird verwendet, um Socket-Statistiken zu sichern, ähnlich dem alten Dienstprogramm netstat. Verwenden Sie zum Anzeigen von TCP-Sockets -t
Flagge.
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
Dies würde keine Sockets anzeigen, die gerade lauschen. Um sowohl hörende als auch nicht hörende Steckdosen einzuschließen, verwenden Sie -t
funktioniert -a
Flaggen.
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 *:*
locate
Das locate
Der Befehl verwendet eine Datenbank zum Suchen nach Dateien und kann tatsächlich viel schneller sein als der Befehl find. Sehr einfach zu bedienen, um nach einer Datei zu suchen, z. B. apache2.conf:
ubuntu@ubuntu18:~$ locate apache2.conf
/etc/apache2/apache2.conf
/var/lib/dpkg/info/apache2.conffiles
Sie können verwenden -c
Flag, wenn nur die Anzahl der Dateien mit dem Suchmuster übereinstimmen soll.
ubuntu@ubuntu18:~$ locate -c apache2.conf
2
Manchmal müssen Sie möglicherweise die von find verwendete Datenbank aktualisieren, nämlich mlocate. Um die Datenbank zu aktualisieren, verwenden Sie updatedb
Befehl. Dies würde Superuser-Berechtigungen erfordern.
ubuntu@ubuntu18:~$ sudo updatedb
find
Einer der am häufigsten verwendeten Befehle unter Linux. Verwenden Sie es, um nach Dateien anhand von Dateinamen, Berechtigungen, Benutzer-ID, Gruppen-ID, Größe, Dateityp und anderen Kriterien zu suchen.
Verwenden Sie zum Suchen nach einer Datei nach Namen im aktuellen Verzeichnis das Flag -name gefolgt vom Dateinamen für die Suche:
ubuntu@ubuntu18:~$ find . -name a.txt
./myfiles/a.txt
Verwenden Sie zum Suchen nach Verzeichnissen -type d
Flagge:
ubuntu@ubuntu18:~$ find . -type d
.
./.ssh
./myfiles
./.cache
./.gnupg
./.gnupg/private-keys-v1.d
./docker
Verwenden Sie zum Suchen nach Dateien nach Größe, z. B. Dateien mit einer Größe von mehr als 20 MB -size
Flagge:
ubuntu@ubuntu18:~$ find . -size +20M
./docker/docker-ce-cli_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb
./docker/docker-ce_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb
Erfahren Sie hier mehr über Linux-Suchbefehl.
systemctl
Nun systemd
hat den SysV-Init-Prozess in den meisten Linux-Distributionen ersetzt systemctl Befehl zum Verwalten von systemd-Diensten und -Einheiten.
So starten Sie einen Dienst, zum Beispiel apache2:
ubuntu@ubuntu18:~$ sudo systemctl start apache2.service
Sie können das Service-Suffix verlassen.
So stoppen Sie einen Dienst:
ubuntu@ubuntu18:~$ sudo systemctl stop apache2
Verwenden Sie, um den Servicestatus anzuzeigen systemctl
Statusbefehl. Das folgende Beispiel zeigt den Status von Apache2 während der Ausführung:
ubuntu@ubuntu18:~$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
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)
Process: 18202 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
Process: 25536 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 25555 (apache2)
Tasks: 55 (limit: 1024)
CGroup: /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]: Starting The Apache HTTP Server...
Aug 19 11:34:04 ubuntu18 systemd[1]: Started The Apache HTTP Server.
ufw command
UFW - unkomplizierte Firewall ist ein einfach zu verwendendes Frontend für iptables. Es ist standardmäßig auf Ubuntu-basierten Distributionen verfügbar. Unter CentOS können Sie installieren ufw
aus dem EPEL-Repository.
So aktivieren Sie ufw:
$ sudo ufw enable
Überprüfen Sie den Firewall-Status mit dem UFW-Status:
$ sudo ufw status
Status: active
Standard-UFW-Richtlinien erlauben den gesamten ausgehenden Verkehr und blockieren den gesamten eingehenden Verkehr.
Der folgende Befehl ermöglicht eingehenden Datenverkehr am HTTP-Port:
$ sudo ufw allow http
Rule added
Rule added (v6)
Sie können den Datenverkehr an jedem Port verweigern. Hier ist ein Beispiel zum Blockieren des Datenverkehrs auf Port 21:
$ sudo ufw deny 21
Rule added
Rule added (v6)
journalctl
Nutzen Sie den journalctl
um von systemd gesammelte Protokolle anzuzeigen. systemd sammelt das Protokoll an einem zentralen Ort in einem Binärformat. So zeigen Sie diese Protokolle an:
ubuntu@ubuntu18:~$ sudo journalctl
-- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at 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: Command line: BOOT_IMAGE=/boot/vmlinuz-5.3.0-1028-azure root=UUID=b0dd9d06-536e-41
Jun 29 02:48:31 ubuntu kernel: KERNEL supported cpus:
Jun 29 02:48:31 ubuntu kernel: Intel GenuineIntel
...
Meistens möchten Sie die Protokolle in umgekehrter Reihenfolge anzeigen, dh zuerst die neuesten Protokolle:
ubuntu@ubuntu18:~$ sudo journalctl -r
-- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:10:16 UTC. --
Aug 19 15:10:16 ubuntu18 sudo[31263]: pam_unix(sudo:session): session opened for user root by 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 opened for user root by 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 opened for user root by ubuntu(uid=0)
...
Zum Anzeigen von Protokollen eines bestimmten Dienstes, z. B. mysql -u
Flagge:
ubuntu@ubuntu18:~$ sudo journalctl -u mysql
-- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:11:34 UTC. --
Aug 16 12:30:02 ubuntu18 systemd[1]: Starting MySQL Community Server...
Aug 16 12:30:03 ubuntu18 systemd[1]: Started MySQL Community Server.
Aug 19 15:03:27 ubuntu18 systemd[1]: Stopping MySQL Community Server...
Aug 19 15:03:29 ubuntu18 systemd[1]: Stopped MySQL Community Server.
kill and killall
Möglicherweise müssen Sie einen außer Kontrolle geratenen Prozess beenden oder einige Systemressourcen freigeben. töte mit -l
Das Flag zeigt alle Signale an, die Sie an einen Prozess senden können.
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
....
Zwei am häufigsten verwendete Signale sind SIGTERM UND SIGKILL. Sie können auch -9 für SIGKILL und -15 für SIGTERM verwenden. Mit SIGTERM kann ein Prozess abgeschlossen werden, bevor er beendet wird, und wird daher als Soft Kill bezeichnet. SIGKILL beendet den Vorgang sofort. Hier ist ein Beispiel:
Listen Sie alle Apache2-Prozesse auf
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
So beenden Sie den Apache2-Prozess mit der Prozess-ID 45525:
ubuntu@ubuntu18:~$ sudo kill -9 45525
Zeigen Sie erneut die Liste der Apache2-Prozesse an:
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
Verwenden Sie killall, um ein Programm mit Namen zu beenden. Dies bedeutet, dass killall den Kontrollprozess (übergeordnet) und alle untergeordneten Prozesse beendet. So beenden Sie alle Instanzen des Apache2-Prozesses im obigen Beispiel:
ubuntu@ubuntu18:~$ sudo killall apache2
Nutzen Sie den kill
funktioniert killall
mit Vorsicht. Diese Befehle können das System in einem instabilen Zustand belassen.
IP
Das ip
Befehl ersetzt ifconfig
in den neueren Linux-Distributionen. Verwenden Sie diese Option, um Netzwerkschnittstellen zu konfigurieren und anzuzeigen. Wird auch zum Anzeigen und Ändern von IP-Adressen, Routen und Nachbarobjekten verwendet.
Informationen zu allen Netzwerkschnittstellen anzeigen:
ubuntu@ubuntu18:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> 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
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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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
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
Um eine Schnittstelle nach oben oder unten zu bringen, verwenden Sie ip link set dev gefolgt vom Gerätenamen. So schalten Sie beispielsweise die Schnittstelle eth0 online:
ubuntu@ubuntu18:~$ ip link set eth0 up
Und um es runter zu bringen:
ubuntu@ubuntu18:~$ ip link set eth0 down
date
Ein sehr häufig verwendeter Befehl. Hier untersuchen wir einige interessante Möglichkeiten, diesen Befehl zu verwenden.
ubuntu@ubuntu18:~$ date
Tue Aug 11 07:42:49 UTC 2020
Um das Datum des nächsten Sonntags zu sehen:
ubuntu@ubuntu18:~$ date -d 'next sunday'
Sun Aug 16 00:00:00 UTC 2020
Um das Datum des letzten Sonntags zu sehen:
ubuntu@ubuntu18:~$ date -d 'last sunday'
Sun Aug 9 00:00:00 UTC 2020
Sie können auch –date anstelle des Flags -d verwenden:
ubuntu@ubuntu18:~$ date --date='last sunday'
Sun Aug 9 00:00:00 UTC 2020
Um das Datum vor 6 Tagen zu sehen:
ubuntu@ubuntu18:~$ date --date='6 days ago'
Wed Aug 5 08:06:37 UTC 2020
Datum in 6 Tagen:
ubuntu@ubuntu18:~$ date --date='6 days'
Mon Aug 17 08:08:37 UTC 2020
Sie können das Datumsausgabeformat einfach steuern. Hier ist ein Beispiel:
ubuntu@ubuntu18:~$ date '+%d-%B-%Y'
11-August-2020
Zusammenfassung
Sie als Systemadministrator behalten die Welt Computerinfrastruktur Laufen. Sie müssen Probleme lösen, die Systeme warten und optimal laufen lassen und gleichzeitig die Sicherheit gewährleisten.
Ich hoffe, diese Befehle sind nützlich und helfen Ihnen, Ihre Arbeit besser zu machen.
Hier sind einige FTP/SFTP-Clients und dem besten Vim-Spickzettel für Entwickler und Sysadmin.