Arbeiten mit RSYNC

Arbeiten mit RSYNC

Als Systemadministrator oder nur ein Backup-unbewusster Heimnutzer, früher oder später (normalerweise früher), müssen Sie sich mit Backups auseinandersetzen. Katastrophen passieren, von elektrischen Stürmen bis hin zu Fehlern und man muss vorbereitet werden. Wir können nicht genug betonen, wie wichtig es ist, Kopien wichtiger Daten zu haben. Während das gesamte Backup -Konzept für diesen Artikel zu lang ist, werden wir uns auf RSYNC für die sogenannten inkrementellen Backups konzentrieren.

Inkrementelle Sicherungen basieren auf der Idee, dass, sobald Sie eine Kopie der Daten haben, die Sie für die Sicherung benötigen Erstellen Sie eine andere vollständige Kopie. Wir werden hier ein Setup beschreiben, das wir zu Hause haben, um wichtige Daten zu sichern, aber die Beispiele hier können in größeren Einrichtungen verwendet werden. Sobald Sie angefangen haben, wissen Sie was, wo und wann Sie brauchen.

Wenn Sie einen Sicherungsserver haben, der rund um die Uhr aufgestiegen ist, können Sie einen Cronjob erstellen, um Ihre Daten regelmäßig zu sichern. Da unser Beispiel zu Hause basiert, haben wir einen Backup-Server, aber da es nicht ständig verfügbar ist, zeigen wir Ihnen, wie es manuell geht. RSYNC muss in beiden Systemen installiert werden, und das war auch schon, zumindest in einfachen Fällen müssen keine anderen Setup -Aufgaben durchgeführt werden. Bitte denken Sie daran, dass Sie auf jeden Fall nicht an Linux oder eine andere Unix -Plattform gebunden sind: RSYNC ist auch für Windows verfügbar. Wenn Sie sich Sorgen um die Sicherheit machen, arbeitet RSYNC über SSH und kann als sicherer Ersatz für angesehen werden RCP (Remote -Kopie) Befehl, also ist alles gut.

Arbeiten mit RSYNC

In unserem Szenario ist die Maschine, die Dateien enthält, die gesichert werden soll, eine Debian -Testmaschine. Wir haben einfach eine gemacht

 # Eignung installieren RSYNC 

um es zu installieren und das war alles, was wir auf dieser Maschine tun mussten. Die Backup -Maschine ist ein FreeBSD 8.2-stabile Box, und da haben wir gemacht

 # CD/usr/ports/net/rsync && installieren Sie die Installation sauber 

So installieren Sie RSYNC. Wir haben keine zusätzliche Konfiguration für keine dieser Maschinen gemacht, aber dies ist wieder ein einfaches Szenario. Lesen Sie das RSYNC -Handbuch für Optionen, die Sie möglicherweise für Ihren speziellen Fall benötigen. Bevor wir zum Real Deal kommen, erklären wir uns ein wenig über die üblichen Optionen für RSYNC -Optionen und -befehlsleitungsoptionen (ja, wir wissen, dass 90% die Handbücher nicht lesen). Mit RSYNC können Sie die Daten entweder von/in Richtung ihres Ziels ziehen oder drücken, so dass die Syntax im Allgemeinen sein wird

[Pull] RSYNC [Optionen] $ Source $ destination [Push] RSYNC [Optionen] $ destination $ source 

Der lokale Weg kann jeder relative oder absolute Weg sein. Der Remote -Pfad ist genau wie der, den Sie mit SSH oder einigen anderen Programmen verwenden, die über SSH: $ user@$ hostname oder $ ipaddress: $ path arbeiten . Übersetzen dessen, was wir oben gesagt haben und ein praktisches Beispiel verwenden (das Laufwerk zum Speichern von Backups wird unter /data1 auf dem BSD -Computer montiert, und wir möchten alle Filme des Benutzers auf 10 unterstützen.1.3.98), wir möchten Dateien aus der Debian -Box in die FreeBSD -Box drücken, also tun wir es

 $ rsync [Optionen] [email protected]:/home/user/film///data1/ 

vom Terminal von FreeBSD. Natürlich müssen Sie "Benutzer", Standorte und IP -Adressen durch alles ersetzen, was auf Ihrer Website geeignet ist. Wie gesagt, können Sie die IP -Adresse einfach durch einen Hostnamen ersetzen, sei es in Ihrem lokalen Netzwerk (stellen Sie sicher, dass Sie /etc bearbeiten /etc.Hosts) oder ein Remote -Hostname, der Ihrem DNS -Server bekannt ist. Stellen Sie auch sicher, dass Sie über die richtigen Berechtigungen für den Zielordner festgelegt sind und auch das Quelldatenverzeichnis lesen können. Die Verwendung des obigen Befehls ohne Optionen erledigt nichts, da die Quelle ein Verzeichnis ist, keine bestimmte Datei. Sie können Shell Wildcards mit RSYNC verwenden, wie

 $ rsync [Optionen] [email protected]:/home/user/film/*/data1/ 

Da RSYNC eine intelligente Software ist, ist es besser, wenn Sie verwenden

 $ rsync -AVR [email protected]:/home/user/film///data1/ 

Dies kopiert die Daten im Filmverzeichnis im Archivmodus (-a) ausführlich (-v) und rekursiv (-r). Kurz gesagt, wenn Sie ein ganzes Verzeichnis kopieren möchten, vergessen Sie nicht -r und wenn Sie das genaue Gegenteil wünschen, verwenden Sie -d, das nur die Verzeichnisstruktur ohne die Dateien kopiert. Wenn Bandbreite ein Problem darstellt, fügen Sie die -Z -Flagge hinzu, aber denken Sie daran, dass es immer einen Kompromiss zwischen Bandwith und CPU -Zeit gibt: Komprimierte Daten belasten die Maschinen mehr, beide, da einer komprimiert und sendet, der andere empfängt und dekomprimiert. Kurz gesagt, das ist alles, was wir für unseren Fall hier wirklich getan haben. Wir werden die genauen Befehle plus das Flag -Backup später verwenden, wenn wir die Daten aus dem Sicherungsfeld synchronisieren möchten, und wie bereits erwähnt, werden nur die Unterschiede synchronisiert. Trotzdem werden wir Ihnen RSYNC andere nützliche und weit verbreitete Optionen vorstellen, da dies eines der vielen Szenarien ist, in denen RSYNC Ihnen dienen kann, insbesondere, dass es klein und schnell ist.

Andere Optionen für RSYNC

RSYNC hat viele andere nützliche Optionen: Wir haben nur ein gemeinsames und einfaches Beispiel gegeben. Mit dem Flag -e können Sie die Remote -Shell mit RSYNC angeben, wie

 $ rsync -e ssh [Argumente] 

Wenn Sie keine Dateien synchronisieren möchten, die auf der Empfangsseite neuer sind, werden Sie mit -U dorthin gelangen. -Der Fortschritt zeigt Ihnen einen schönen detaillierten Live -Bericht über den Prozess der Fernsynchronisierung. -Löschen Sie die Datei am Zielgerät, wenn sie bereits vorhanden ist. Wenn die Datei nicht vorhanden ist und Sie sie nicht erstellen möchten, benötigen Sie die reine Aktualisierung der bereits vorhandenen Dateien, verwenden. Willst du die Änderungen sehen? Kein Problem, verwenden Sie -i.

Nun, dies sind nur ein kleiner Teil der Fülle von Optionen, die RSYNC anbietet. Wir können Sie den Rest entdecken lassen. Unser erstes Befehl mit all diesen neuen Optionen, die wir gelernt haben, würde also so aussehen:

 $ rsync -e SSH -Avriz -Progress -Delete [email protected]:/home/user/film///data1/ 

Wir hoffen. Remeber, um RSYNC mit Vorsicht zu verwenden, obwohl einige seiner Optionen, wie Sie gesammelt haben, ziemlich zerstörerisch sein können. Am Ende werden wir Ihnen einige Beispiele vorstellen, um Ihnen bei der Umstellung mit täglichen Situationen zu helfen:

Mehr RSYNC -Beispiele

1. Angenommen, Sie möchten nur eine Datei synchronisieren. Offensichtlich brauchen Sie nicht -r, da dies eine Verzeichnisspezifische ist, also werden Sie es einfach tun

 $ rsync -v user@host:/etc/adduser.conf /root / 

2. Vielleicht möchten Sie mit Mustern fortgeschritten sein, als Ihre Shell liefern kann, oder möchten nur einige Dateien/Verzeichnisse ausschließen/einfügen. Sie werden einfach -inklude und -ausklagen, wie SO verwenden:

 $ rsync -avz -include 'g*' -EXCLUDE '*' user@host:/etc//root/config/ 

Dieser Befehl kopiert nur Verzeichnisse von / etc /, die mit einem 'G' beginnen und alles andere ausschließen.

3. Vielleicht möchten Sie die maximale Dateigröße RSYNC -Übertragung vom Ziel einschränken. Man kann -max -size = 'Größe' verwenden, wobei 'Größe' mit K für KB, m für MB und G für GB angebracht werden kann.

$ rsync -avz -limit -size = '2g' /home /user /film /backupmedia

4. Bis jetzt haben wir darüber gesprochen, wie gut RSYNC für inkrementelle Sicherungen ist. Wenn Sie jedoch die gesamte Datei noch einmal übertragen möchten, können Sie dies frei tun. Verwenden Sie einfach -W:

 $ rsync -avzw/home/user/film/hacker2.avi /backupmedia / 

5. Wussten Sie? Es kann und funktioniert wie folgt:

 $ RSYNC -AVRZ -Benutzer@Host: "Find/Home/Benutzer/Entwicklung/-Name *.c -print "\/backup/Entwicklung/ 

6. Wenn Sie die Standardverschlüsselungsmethode SSH ändern möchten, verwenden Sie -rsh:

 $ rsync -avz - -rsh = "ssh -c arcfour -l user" /Quelle /Ziel 

Vielleicht möchten Sie dies besonders verwenden, wenn Sie sich auf einer sehr langsamen Maschine befinden.

7. Dieser Punkt befasst sich mit der Erhaltung verschiedener Attribute der kopierten Dateien: -P erhalten Berechtigungen, -x erhalten XATTRS, -a ), -H bewahrt harte Links und -G -Konservierungsgruppen. Führen Sie eine Suche nach dem Wort „bewahren“ im RSYNC -Handbuch durch, wenn das, was Sie erhalten möchten, hier nicht aufgeführt ist. Denken Sie daran, dass -ein größtenteils für Sie konservierender Teil. Wenn Sie jedoch eine feiner Kontrolle wünschen, können Sie dies frei tun.

 $ rsync -vzpxaohg /Quelle /Ziel 

8. RSYNC wird von Spiegelbesitzern überall verwendet, um mit den Projekten, die sie spiegeln, auf dem neuesten Stand zu bleiben. Hier sind einige Beispiele:

$ rsync -vaz -delete ftp4.de.FreeBSD.Org :: FreeBSD// Pub/ FreeBSD/ $ RSYNC -avz --Delete -Safe -Links RSYNC.Apache.org :: apache -dist/path/to/mirror $ rsync -auh rsync: // rsync.Chiark.Greenend.Org.UK/FTP/Users/Sgtatham/Putty-Websit-Mirror/ . 

9. Wir möchten ein endgültiges Warnwort ausgeben: Die endgültige '/' in der Quelladresse ist wichtig. Wenn Sie tun

 $ RSYNC -avz /Quelle /Ziel 

Sie erhalten ein anderes Ergebnis als wenn Sie es getan hätten

 $ RSYNC -avz /Quelle / / /Dstination 

Wir lassen Sie feststellen, was der Unterschied ist. Versuchen Sie diese Entdeckung jedoch nicht zu wichtigen Daten!

Verwandte Linux -Tutorials:

  • So belasten Sie Ihre CPU unter Linux
  • Dinge zu installieren auf Ubuntu 20.04
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • RSYNC -Beispiele unter Linux
  • So partitionieren Sie USB -Laufwerk in Linux
  • So verwenden Sie Google Drive unter Linux
  • Wie man die Festplattenleistung unter Linux bewertet
  • Ubuntu 20.04 Leitfaden
  • Dinge zu installieren auf Ubuntu 22.04
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken