Letzte Woche und die Woche davor habe ich Teil 1 und Teil 2 dieser fünfteiligen Serie mit dem Titel:Von Linux-Systemadministratoren häufig verwendete Linux-Befehle veröffentlicht . Diese beiden Artikel führten uns etwas tiefer in die meiner Meinung nach etwa 50 bis 100 Befehle, die häufig von Linux-Systemadministratoren und Power-Usern verwendet werden. Siehe auch Teil 4 und Teil 5.
Lassen Sie uns zu Teil 3 mit einem weiteren Satz von Befehlen und Befehlszeilentools springen, die häufig für die Dateiübertragung, Dateimanipulation, Netzwerkfehlerbehebung und andere administrative Aufgaben verwendet werden, die von Linux-Systemen ausgeführt werden. In dieser und zukünftigen Serien werde ich verwandte Befehle so weit wie möglich gruppieren und auch ein Inhaltsverzeichnis hinzufügen, um alle fünf Teile dieser Serie miteinander zu verknüpfen.
1. rsync
– Remote-Dateiübertragungen und -synchronisierung.
Rsync (Remote Sync) ist ein Open-Source-Tool für die Dateisynchronisierung zwischen lokalen und Remote-Systemen. Im Jahr 2016 hatte ich die Aufgabe, einen globalen CDN-gestützten Mirror für Linux-Distributionen und andere Repositories einzurichten: Evowise CDN (https://mirros.evowise.com). Dieses Projekt stützt sich stark auf rsync
um sicherzustellen, dass Hunderte von Terabyte an Dateien immer synchron sind. Im Laufe der Zeit haben mehr Distributionen ihre eigenen globalen CDN-gestützten Mirrors angeboten; Es gibt jedoch immer noch nur eine Handvoll Multi-Distro- und Multi-Software-Mirrors. Hier ist ein Beispiel für die Verwendung von rsync
Befehl zum Remote-Backup von Dateien:
rsync -avze ssh /path/to/directory1/ user@IP_or_hostname:/remote/backup/directory1/
Um aus dem Remote-Verzeichnis herunterzuladen, kehren Sie die Reihenfolge des Befehls um:
rsync -avze ssh user@IP_or_hostname:/remote/backup/directory1/ /path/to/directory1/
Rsync ist ein ganzes Thema für sich. Lassen Sie uns daher zu einem späteren Zeitpunkt auf diesen Befehl noch einmal ausführlicher eingehen. In der Zwischenzeit ist es am besten, die Dokumentation und die Spickzettel zu lesen.
2. tar
, gzip
, b2zip
, und zip
Dateimanipulation.
tar
(Bandarchiv) ist ein Archivierungsprogramm.
Verwenden Sie zum Extrahieren aus einem Archiv:(mit den Optionen x
=extrahieren, v
=ausführlich, f
=Datei):
tar - xvf archive.tar
Um ein Archiv aus Dateien oder einem Verzeichnis zu erstellen, verwenden Sie:(mit Option c
=erstellen)
tar -cvf archive.tar file1 file2 file3
Um komprimierte Archive zu erstellen, verwenden Sie:(mit Option z
mit gzip komprimieren)
tar -cvzf archive.tar file1 file2 file3
Um alle in einem Archiv enthaltenen Dateien anzuzeigen, verwenden Sie (mit Option t
=Liste):
tar -tvf archive.tar
gzip
steht für GNU-Zip. Es wird für die Dateikomprimierung und -dekomprimierung verwendet.
Um eine komprimierte Datei zu erstellen, verwenden Sie:
gzip file1
Um eine Datei zu dekomprimieren, verwenden Sie:
gunzip file1.gz
Als Archiv erstellt mit tar
wird ohne zusätzliche Optionen nicht komprimiert; Dies kann mit gzip
erfolgen .
Um Dateien in einem komprimierten Archiv zusammenzufassen, verwenden Sie (mit Option z
=gzip):
tar -cvzf archive.tar.gz file1 file2
Was zu archive.tar.gz führen wird
Um Dateien aus einem gzip-Archiv zu dekomprimieren und zu extrahieren, verwenden Sie:
tar -xvzf archive.tar.gz
bzip2
ist ähnlich wie gzip. Es verwendet lediglich einen anderen Komprimierungsalgorithmus.
Um eine komprimierte Datei zu erstellen, verwenden Sie:
bzip2 file1
Um eine Datei zu dekomprimieren, verwenden Sie:
bunzip2 file1.bz2
Um Dateien in einem komprimierten Archiv zusammenzufassen, verwenden Sie (mit der Option j
=bzip2):
tar -cvjf archive.tar.bz2 file1 file2
Was zu archive.tar.bz2 führen wird
Oben Dateien aus einem bzip2-Archiv dekomprimieren und extrahieren verwenden:
tar -xvjf archive.tar.bz2
zip
wird zum Packen und Komprimieren (zum Archivieren) von Dateien verwendet.
Um einzelne Dateien in einem komprimierten Archiv zusammenzufassen, verwenden Sie:
zip archive.zip file1 file2
So kombinieren Sie ganze Verzeichnisse zu einem komprimierten Archiv:
zip -r archive.zip directory1 directory2 directory3
Um Dateien oder Verzeichnisse aus einem Zip-Archiv zu dekomprimieren und zu extrahieren, verwenden Sie:
unzip archive.zip
Um alle in einem Archiv gespeicherten Dateien anzuzeigen, verwenden Sie:
unzip -l archive.zip
3. locate
– Dateien in Linux suchen.
In Teil 1 haben wir die Verwendung von find
angesprochen und grep
. Locate verwendet einen Hintergrundprozess, der regelmäßig ausgeführt wird, um die Dateien Ihres Systems zu suchen und in seiner eigenen Datenbank zu speichern. Darin liegt sein einziger Vorteil ... Geschwindigkeit!
Auf einigen Distributionen, zum Beispiel Ubuntu, müssen Sie manuell installieren:
sudo apt-get install locate
Um nach einer Datei zu suchen, verwenden Sie (mit der Option i
=Groß-/Kleinschreibung ignorieren):
locate -i filename
Zum Beispiel:
hydn@ubuntu:~$ sudo locate -i firewall /etc/fail2ban/action.d/firewallcmd-allports.conf /etc/fail2ban/action.d/firewallcmd-common.conf /etc/fail2ban/action.d/firewallcmd-ipset.conf /etc/fail2ban/action.d/firewallcmd-multiport.conf ...
Die Datenbank wird täglich über cron aktualisiert. Wenn Sie es jedoch manuell aktualisieren müssen, können Sie Folgendes verwenden:
sudo updatedb
4. ps
– Informationen über die aktuell laufenden Prozesse.
In Teil 1 haben wir uns pstree
angesehen , eine visuellere Alternative zum Befehl ps. Eine Möglichkeit, ps
zu verwenden Um weitere Informationen zu laufenden Prozessen zu erhalten, verwenden Sie Folgendes:
ps aux | less
Der a
listet alle Benutzerprozesse auf, mit Ausnahme von Gruppenleitern und Prozessen, die keinem Terminal zugeordnet sind.
Das u
Option bietet detaillierte Informationen zu jedem Prozess.
Das x
Option listet alle Prozesse auf, wenn sie zusammen mit a
verwendet wird Option.
So zeigen Sie einen Prozessbaum an:
ps axjf | less
Um Informationen zu Threads anzuzeigen, verwenden Sie:
ps -eLf | less
ps axms | less
Um jeden als root ausgeführten Prozess im Benutzerformat anzuzeigen, verwenden Sie:
ps -U root -u root u
Um nur die Prozess-IDs von syslogd anzuzeigen, verwenden Sie:
ps -C syslogd -o pid=
Um nur den Namen von PID 411 anzuzeigen, verwenden Sie:
ps -q 411 -o comm=
Die obigen Beispiele stammen von man ps
.
5. Verwendung von Bash-Skripten.
Ein Bash-Skript ist eine reine Textdatei, die eine Reihe von Befehlen enthält. Dies sind Befehle, die wir normalerweise in die Befehlszeile eingeben würden (z. B. rsync ...
oder cp ...
), möchten aber Zeit sparen, indem wir nicht jedes Mal Befehle manuell eingeben müssen, oder wir möchten diese Befehle mithilfe von cron so planen, dass sie später ausgeführt werden.
Um ein Bash-Skript zu erstellen, platzieren Sie #!/bin/bash
oben in der Datei. Hier ist ein einfaches Bash-Skript zum Ausführen von Backups:
#!/bin/bash rsync -avze ssh /path/to/directory1/ user@IP_or_hostname:/remote/backup/directory1/ echo "Remote backup for $(date) " | mail -s "backup complete" user@youremail
Nachdem Sie dies eingegeben oder in eine neue Datei eingefügt haben, können Sie es als scriptname.sh speichern. In diesem Fall remotebackup.sh. Ändern Sie dann die Berechtigungen der Datei, um sie ausführbar zu machen:
chmod +x remotebackup.sh
Um das Skript aus dem aktuellen Verzeichnis auszuführen/auszuführen, geben Sie Folgendes ein:
./remotebackup.sh
Oder Sie können das Bash-Skript so planen, dass es mit Mais ausgeführt wird, wie im nächsten Abschnitt beschrieben.
Siehe auch Ubuntus BashScripting für Anfänger.
6. cron
– Richten Sie geplante Aufgaben zur Ausführung ein.
Der cron
Daemon ist ein integriertes Linux-Tool, das geplante Aufgaben (Befehle oder Shell-Skripts) regelmäßig zu festen Zeiten, Daten oder Intervallen ausführt. Systemadministratoren verwenden in der Regel cron, um Systemwartungs- und Verwaltungsaufgaben zu automatisieren. Zum Beispiel durch die Verwendung von cron
um rsync
auszuführen jede Nacht.
Hier ist ein Beispiel für einen cron
Einzeiliger Eintrag, der verwendet wird, um jede Nacht um 2 Uhr morgens ein Backup-Skript auszuführen:
0 2 * * * ~/myscripts/remotebackup.sh
Lesen Sie zunächst den cron
Einrichtungsanleitungen, die von Ubuntu und Red Hat erstellt wurden, und verweisen auf die Cron-Manpage. Es gibt auch Online-Cron-Ausdrucksgeneratoren.
7. nmcli
– Netzwerkverwaltung.
NetworkManager ist eine Reihe von Tools zur Verwaltung der Netzwerkkonnektivität auf Ihrem Linux-System. Es funktioniert für kabelgebundene, drahtlose und sogar Bluetooth-Verbindungen.
Um alle verfügbaren Netzwerkgeräte anzuzeigen, verwenden Sie:
nmcli d
Zum Beispiel:
Red Hat hat einen großartigen Netzwerkleitfaden für nmcli
veröffentlicht .
8. ping
– ICMP ECHO_REQUEST an Netzwerkhosts senden.
Der ping
Der Befehl (Packet Internet Groper) wird verwendet, um die Netzwerkkonnektivität zwischen Servern und anderen Hosts zu überprüfen. Sie können die IP-Adresse oder die URL eingeben und der Ping-Befehl sendet dann ein Datenpaket mit der Nachricht „PING“ an die angegebene Adresse und wartet auf eine Antwort des Zielservers/-hosts. Die Zeit bis zum Erhalt dieses Antwortpakets wird gemeldet. Diese Zeit wird Latenz genannt. Niedrige Latenz =schnellere Verbindungsantwort.
ping [hostname/ip]
Zum Beispiel:
Verwenden Sie das -c
-Flag, um die Anzahl der zu sendenden Ping-Pakete anzugeben. Zum Beispiel:
ping -c 5 IP_ADDRESS
9. traceroute
– Überprüfen Sie die Route von Paketen zu einem bestimmten Host.
traceroute
überprüft die Route, die Pakete nehmen, um einen bestimmten Host zu erreichen. Es nutzt das Time-to-Live (TTL)-Feld des IP-Protokolls und versucht, eine ICMP TIME_EXCEEDED-Antwort von jedem Gateway entlang des Pfads zum Host zu entlocken. (Quelle:man traceroute) Traceroute kann dabei helfen, die Ursache von Netzwerklatenzverzögerungen, Ausfällen und anderen Netzwerk-Routing-Problemen zu finden.
Sehen Sie sich auch mtr
an (Mein Traceroute).
10. nslookup
– Internet-Nameserver (NS) interaktiv abfragen.
nslookup
(Name Server Lookup) ist ein Befehl, der verwendet wird, um Informationen von Domain Name Systems (DNS) zu sammeln. Mit nslookup
, Systemadministratoren können Informationen zum Domänennamen oder zur IP-Adresse abfragen.
Um den A-Eintrag einer Domain nachzuschlagen, verwenden Sie:
nslookup haydenjames.io
Um die NS-Einträge einer Domain nachzuschlagen, um ihre autoritativen Server herauszufinden, verwenden Sie:
nslookup -type=ns ubuntu.com
Um die MX-Einträge einer Domain nachzuschlagen, verwenden Sie:
nslookup -query=mx redhat.com
Um den SOA (Start of Authority) einer Domain nachzuschlagen, verwenden Sie:
nslookup -query=soa debian.com
Um die Liste der DNS-Einträge einer Domain anzuzeigen, verwenden Sie:
nslookup -type=any mysql.com
Um das rDNS (Reverse DNS) einer Domain nachzuschlagen, verwenden Sie:
nslookup [domain_IP]
Siehe auch host
und dig
Befehle.
Extra-Tipp: Besuchen Sie explainshell.com, um Befehlszeilenargumente mit ihrem Hilfetext abzugleichen.
Das war es fürs Erste. Ich hoffe, dir hat Teil 3 gefallen. Bitte teile, abonniere, markiere und hinterlasse Kommentare oder Vorschläge, die du vielleicht hast.