Verwenden des tar-Dienstprogramms über das Netzwerk über SSH / Sudo Null IT News
GNU-Archivierungsprogramm
Teer
sowie seine älteren Versionen, können mithilfe des Protokolls über eine Netzwerkverbindung verwendet werden
sch
. Aus
telnet
/
nc
sollten Sie ablehnen, da sie die Sicherheit der Verbindung nicht garantieren. Sie können Archive mit Unix/Linux-Pipes erstellen, und im Folgenden werde ich eine Reihe von Anwendungsfällen demonstrieren
Teer
an
sch
zur Archivierung auf Linux, BSD/macOS oder Unix-ähnlichen Systemen.
Syntax für die Verwendung von tar über SSH
Aufbau einer Verbindung zu einem Host
Kasten
an
sch
und Ausführung
Teer
:
$ ssh user@box tar czf – /dir1/ > /destination/file.tar.gz
oder:
$ ssh user@box ‘cd /dir1/ && tar -cf – file | gzip -9’ >file.tar.gz
Der folgende Befehl sichert das Verzeichnis
/wwwdata
auf dem Host
dumpserver.nixcraft.in (IP 192.168.1.201)
an
sch
:
$ tar zcvf – /wwwdata | ssh user@dumpserver.nixcraft.in “cat > /backup/wwwdata.tar.gz”
oder:
$ tar zcvf – /wwwdata | ssh vivek@192.168.1.201 “cat > /backup/wwwdata.tar.gz”
Beispielausgabe:
tar: Führendes `/’ aus Mitgliedsnamen entfernen /wwwdata/ /wwwdata/n/nixcraft.in/ /wwwdata/c/cyberciti.biz/ …. .. … Passwort:
Im folgenden Beispiel archivieren wir
/daten2/
zusammen mit der Verwendung
gpg
:
$ tar zcf – /data2/ | gpg -e | ssh vivek@nas03 ‘cat -> data2-dd-mm-yyyy.tar.gz.gpg’
Bitte beachten Sie dies bei der Verwendung
sudo
oder jedem anderen Befehl, der eine Pseudo-Terminal-Zuweisung erfordert, kann hier ein Fehler auftreten:
sudo: Entschuldigung, Sie müssen ein tty haben, um sudo auszuführen
Um dies zu vermeiden, müssen Sie das Team begleiten
sch
Flagge
-t
:
$ tar zcvf – /wwwdata | ssh -t vivek@192.168.1.201 “sudo cat > /backup/wwwdata.tar.gz”
Das Kopieren von einem Remote-Rechner (server1.cyberciti.biz) auf das lokale System erfolgt wie folgt:
$ cd /path/local/dir/ $ ssh vivek@server1.cyberciti.biz ‘tar zcf – /some/dir’ | tar zxf-
▍ Festplattensicherung/-spiegelung unter Linux
Befehl zum Kopieren der gesamten Festplatte
/dev/sdvf
vom lokalen Rechner zum AWS EC2-Cloud-Sicherungsserver:
$ dd if=/dev/sdvf | ssh backupimg@vpc-aws-mumbai-backup-001 ‘dd of=prod-disk-hostname-sdvf-dd-mm-yyyy.img’
Um eine lokale Festplatte von einem Image vom Server wiederherzustellen, muss dieser Befehl rückgängig gemacht werden. Wenn wir das obige Beispiel fortsetzen, sieht es so aus:
$ ssh backupimg@vpc-aws-mumbai-backup-001 ‘dd if=prod-disk-hostname-sdvf-dd-mm-yyyy.img’ | ddof=/dev/sdvf
▍ Übertragen von Daten auf ein neues Linux-System
Ein Problem mit
scp
und andere Befehle, die die Verzeichnisstruktur kopieren, indem symbolische Links, spezielle Gerätedateien, Sockets, Named Pipes und andere Komponenten nicht kopiert werden. Deshalb verwenden wir
Teer
an
sch
. Kopieren wir zum Beispiel alle Daten aus
Nuk-Box
.
Ich öffne ein Terminal und führe den ssh-Befehl zusammen mit tar aus:
$ ssh vivek@nuc-box ‘tar czf – /home/vivek’ | tar xvzf – -C /home/vivek
▍ Anwenden von tar über SSH auf ein Bandlaufwerk
Unter Linux ist standardmäßig das erste SCSI-Bandlaufwerk
/dev/st0
. Sie können mehr über die Namenskonvention für solche Laufwerke in Linux lesen.
. Für mehr Klarheit können Sie den Befehl verwenden
dd
:
$ tar cvzf – /wwwdata | ssh root@192.168.1.201 “dd of=/backup/wwwdata.tar.gz”
Es besteht auch die Möglichkeit, die Sicherung an ein entferntes Bandgerät zu senden:
$ tar cvzf – /wwwdata | ssh root@192.168.1.201 “cat > /dev/nst0”
Mit dem Befehl
mt
Sie können das Band zurückspulen und es dann mit dem Befehl ausgeben
Katze
:
$ tar cvzf – /wwwdata | ssh root@192.168.1.201 $(mt -f /dev/nst0 zurückspulen; cat > /dev/nst0)$
▍ Tar über SSH extrahieren
Die Syntax für diese Operation ist recht einfach:
$ cat meine-daten.tar.gz | ssh user@server1.cyberciti.biz “tar zxvf -” $ cat meine-daten.tar.gz | ssh user@server1.cyberciti.biz “cd /path/to/dest/; tar zxvf -“
In diesem Beispiel wird eine Sicherung von einem Remote-Computer in einem lokalen Verzeichnis mithilfe von wiederhergestellt
sch
:
$ cd / $ ssh root@192.168.1.201 “cat /backup/wwwdata.tar.gz” | tar zxvf-
Wenn Sie sich entscheiden, diesen Befehl in Aufgaben zu verwenden
Cron
oder Skripte, erwägen Sie die Verwendung von Schlüsseln
sch
Passwörter auszuschließen.
▍ Archiv mit Fortschrittsbalken erstellen
Das Dienstprogramm pv ist möglicherweise nicht standardmäßig auf Ihrem System vorhanden. Verwenden Sie in diesem Fall apk unter Alpine Linux, dnf/yum unter RHEL & Co, apt/apt-get unter Debian und Ubuntu & Co, zypper unter SUSE/OpenSUSE, pacman unter Arch Linux, um es zu installieren.
Mannschaft
pv
ermöglicht es Ihnen, den Fortschritt der Daten zu überwachen, die durch den Kanal geleitet werden. Hier ist seine Syntax:
$ cd /dir/to/backup/ $ tar zcf – . | PV | ssh vivek@server1.cyberciti.biz “cat > /backups/box42/backup-dd-mm-yyyy.tgz” $ cd /tmp/data/ $ tar zcf – . | \pv | \ssh vivek@centos7 “Katze > /tmp/data.tgz”
▍ Weitere Beispiele für die Verwendung von tar über SSH
$ tar cvjf – * | ssh vivek@nixcraft “(cd /dest/; tar xjf -)” $ tar cvzf – mydir/ | ssh vivek@backupbox “cat > /backups/meinedatei.tgz” $ tar cvzf – /var/www/html | ssh vivek@server1.cyberciti.biz “dd of=/backups/www.tar.gz” $ ssh vivek@box2 “cat /backups/www.tar.gz” | tar xvzf – $ tar cvjf – * | ssh root@home.nas02 “(cd /dest/; tar xjf – )”
Weitere Details zur Verwendung von Befehlen
Teer
/
sch
/
bash
finden Sie unter Verwendung
Hilfe
oder
Mann
:
$ man tar $ man bash $ man ssh
▍Hinweis zu SSHFS
Mit Hilfe
sshfs
Sie können entfernte Verzeichnisse mounten und ausführen
Teer
:
$ mkdir /data/ $ sshfs vivek@server1.cyberciti.biz:/ /data/ $ tar -zcvf /data/file.tar.gz /home/vivek/
▍ Fazit
In diesem kurzen Artikel haben wir uns kurz mit den Nutzungsmöglichkeiten vertraut gemacht
Teer
in Sitzungen
sch
zur sicheren Übertragung von Archiven, Dateien und Bildern. In einigen Fällen kann die beidseitige Komprimierung vermieden werden, um die Übertragung zu beschleunigen. Zum Beispiel so:
$ tar cvf – /wwwdata | ssh user@dumpserver.nixcraft.in “cat > /backup/wwwdata.tar” $ ssh vivek@server1 ‘tar c .’ | tar xvf – -C /home/vivek/