GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Sysadmin-Tools:Verwenden von rsync zum Verwalten von Sicherung, Wiederherstellung und Dateisynchronisierung

Als Systemadministrator verbringe ich den größten Teil meiner Energie mit zwei Dingen (außer dafür zu sorgen, dass es Kaffee gibt):Sich Gedanken über Backups zu machen und herauszufinden, wie man die Dinge am einfachsten und besten erledigt. Eines meiner Lieblingstools zur Lösung beider Probleme heißt rsync .

Rsync wurde von einem der gleichen Leute entwickelt, die Samba erfunden haben, Andrew Tridgell. Es ist ein so nützliches und flexibles Tool, dass es in jeder Version von Linux enthalten ist und auf andere Betriebssysteme portiert wurde. Am einfachsten ist rsync ein Werkzeug zum Kopieren von Dateien. Es ist jedoch viel mächtiger als das.

  • Es hält zwei Sätze von Dateien auf dem neuesten Stand und synchronisiert.
  • Es wird als Befehl ausgeführt und kann per Skript erstellt werden.
  • Es komprimiert und verschlüsselt den Datenstrom.
  • Es verwendet mehrere Arten von Fernzugriffsclients (z. B. SSH und RSH).

Daher überrascht es nicht, dass es bei vielen Systemadministratoren beliebt ist.

Die Grundlagen

Wie das mv und cp Befehl, in seiner einfachsten Form rsync braucht nur eine Quelle und ein Ziel:

[root@milo enable]# rsync ./foo/testfoo ./bar/

[root@milo enable]# ls -ilR
.:
total 8
5079202 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:15 bar
5079201 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:08 foo

./bar:
total 8
5001398 -rw-rw-r-- 1 skipworthy skipworthy 8 Jun 11 15:08 testbar
4982446 -rw-rw-r-- 1 root       root       8 Jun 11 15:15 testfoo

./foo:
total 4
5001268 -rw-rw-r-- 1 skipworthy skipworthy 8 Jun 11 15:08 testfoo

Wir haben testfoo kopiert in die bar Verzeichnis. Keine große Sache, wirklich.

Lassen Sie uns nun eine Datei zu ./foo hinzufügen und erneut synchronisieren:

[root@milo enable]# touch ./foo/bat.txt

[root@milo enable]# rsync ./foo/* ./bar/
[root@milo enable]# ls -ilR
.:
total 8
5079202 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:45 bar
5079201 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:25 foo

./bar:
total 8
4992599 -rw-r--r-- 1 root       root       0 Jun 11 15:45 bat.txt
5001398 -rw-rw-r-- 1 skipworthy skipworthy 8 Jun 11 15:08 testbar
4992604 -rw-rw-r-- 1 root       root       8 Jun 11 15:45 testfoo

./foo:
total 4
5002591 -rw-r--r-- 1 root       root       0 Jun 11 15:25 bat.txt
5001268 -rw-rw-r-- 1 skipworthy skipworthy 8 Jun 11 15:08 testfoo

An dieser Stelle wollen wir ein paar Dinge anmerken. Erstens, als wir rsync erneut ausgeführt haben , es hat testfoo erneut kopiert und aktualisierte atime . Außerdem gibt es jedes Mal, wenn es eine Datei kopiert, der Datei einen neuen inode Anzahl. Daher ist es, soweit es das Dateisystem betrifft, eine völlig andere Datei (denn es ist – es hat alle kopiert die Informationen jedes Mal). Beachten Sie schließlich, dass wenn wir rsync die Datei, ändert sie den Besitz auf den Benutzer, der den Befehl ausgeführt hat (in diesem Fall root).

All dies ist wichtig, wenn wir Backups erstellen möchten. Dieses Verhalten ist dasselbe wie beim cp Befehl. Wir können auch den cp verwenden Befehl zum rekursiven Kopieren von Verzeichnissen sowie zum Beibehalten von Attributen und Eigentumsrechten. Der große Unterschied besteht darin, dass rsync kann eine Prüfsumme der Datei erstellen und Quell- und Zieldatei vergleichen, wobei cp schaut nur auf atime Wert. Rsync Die zusätzliche Funktionalität von ist nützlich, um die Integrität des Backups zu bewahren (wir werden uns später in dieser Serie mit der Integrität befassen).

Lassen Sie uns also nur eine dieser Dateien aktualisieren und sehen, was rsync ist tut:

[root@milo enable]# echo 'this is new text'>>./foo/testfoo
 
[root@milo enable]# ls -al ./foo
 
-rw-rw-r-- 1 skipworthy skipworthy   25 Jun 11 16:13 testfoo

[root@milo enable]# rsync -aruv ./foo/* ./bar/
sending incremental file list
testfoo

sent 194 bytes  received 35 bytes  458.00 bytes/sec
total size is 25  speedup is 0.11

[root@milo enable]# ls -ilR
.:
total 8
5079202 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 16:16 bar
5079201 drwxrwxr-x 2 skipworthy skipworthy 4096 Jun 11 15:56 foo

./bar:
total 8
4992599 -rw-r--r-- 1 root       root        0 Jun 11 15:45 bat.txt
4998080 -rw-r--r-- 1 root       root        0 Jun 11 15:56 footoo.txt
5001398 -rw-rw-r-- 1 skipworthy skipworthy  8 Jun 11 15:08 testbar
4983541 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

./foo:
total 4
5002591 -rw-r--r-- 1 root       root        0 Jun 11 15:25 bat.txt
4997949 -rw-rw-r-- 1 skipworthy skipworthy  0 Jun 11 15:56 footoo.txt
5001268 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

Beachten Sie, dass wir dieses Mal einige Schalter verwendet haben:

  • -a Archivmodus, bewahrt mtime , Berechtigungen und Symlinks.
  • -r Rekursiver Modus, bohrt in beliebige Verzeichnisse und synchronisiert diese (sollte mit dem -a redundant sein wechseln, aber ich gebe es trotzdem immer an).
  • -u Aktualisiert Dateien nur, wenn mtime auf der Quelle ist neuer.
  • -v Der Verbose-Modus sagt Ihnen, was es tut (es ist immer schön, überwachen zu können, was passiert. Ein weiterer nützlicher Trick besteht darin, diese Ausgabe in eine Datei zu leiten und sie später zu überprüfen).

Datei mit rsync wiederherstellen

Also lass uns so tun, als wäre es ein paar Wochen später. Der CFO ruft an und sagt, dass etwas nicht stimmt – in seinem /foo-Verzeichnis fehlen viele Dateien.

./foo:
total 8
5002591 -rw-r--r-- 1 root       root        0 Jun 11 15:25 bat.txt
4997949 -rw-rw-r-- 1 skipworthy skipworthy 33 Jul 24 15:32 footoo.txt
5001268 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

Wir werfen einen Blick auf die Backups und sehen die fehlenden Dateien:

./bar:
total 12
4992599 -rw-r--r-- 1 root       root        0 Jun 11 15:45 bat.txt
4994298 -rw-rw-r-- 1 skipworthy skipworthy 33 Jul 24 15:32 footoo.txt
4994359 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles1.txt
4994367 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles2.txt
4994374 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles3.txt
4994413 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles4.txt
5001398 -rw-rw-r-- 1 skipworthy skipworthy  8 Jun 11 15:08 testbar
4983541 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

Ein schnelles rsync wiederherstellen:

[root@milo enable]# rsync -aruv ./bar/* ./foo
sending incremental file list
bat.txt
laterfiles1.txt
laterfiles2.txt
laterfiles3.txt
laterfiles4.txt
testbar

Und:

./foo:
total 12
4994387 -rw-r--r-- 1 root       root        0 Jun 11 15:45 bat.txt
4997949 -rw-rw-r-- 1 skipworthy skipworthy 33 Jul 24 15:32 footoo.txt
4994562 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles1.txt
4994564 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles2.txt
4994565 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles3.txt
4994567 -rw-r--r-- 1 root       root        0 Jul 24 15:31 laterfiles4.txt
4994579 -rw-rw-r-- 1 skipworthy skipworthy  8 Jun 11 15:08 testbar
5001268 -rw-rw-r-- 1 skipworthy skipworthy 25 Jun 11 16:13 testfoo

Die fehlenden Dateien werden aus den neueren Sicherungen wiederhergestellt oder aktualisiert, aber die vorhandenen Dateien – die sich nicht geändert haben – bleiben unverändert. Beachten Sie auch, dass der Besitz von footoo.txt wurde beibehalten.

Abschluss

Ich ermutige Sie, einen Blick (wie immer) auf die Manpage für rsync zu werfen , und probieren Sie diesen nützlichen Befehl aus.

Hier sind ein paar weitere Schalter, die Sie berücksichtigen sollten:

  • -r (rekursiv)
  • -b (Sicherung)
  • -R (relativ)
  • -u (Aktualisieren - nur geänderte Dateien kopieren)
  • -P (Fortschritt)
  • -c (komprimieren)
  • -p (Berechtigungen beibehalten)

Im nächsten Artikel dieser Serie gehen wir etwas weiter und sehen uns Remote-rsync an und einige der anderen erweiterten Funktionen dieses Befehls.

[ Kostenloser Online-Kurs:Technischer Überblick zu Red Hat Enterprise Linux. ]


Linux
  1. Verwalten Sie den Start mit systemd

  2. MySQL:So sichern (dumpen) und wiederherstellen Sie eine Datenbank mit mysqldump

  3. So sichern und wiederherstellen Sie Anwendungseinstellungen mit Mackup auf einem neu installierten Linux-System

  4. So sichern und wiederherstellen Sie eine Datenbank in PostgreSQL

  5. Linux ext4 stellt Datei- und Verzeichniszugriffsrechte nach fehlerhafter Sicherung/Wiederherstellung wieder her

So sichern und wiederherstellen Sie eine SD-Karte für Raspberry Pi

So sichern und wiederherstellen Sie Daten mit Restic unter Linux

So sichern und wiederherstellen Sie Dateien mit BorgBackup unter Linux

So sichern Sie Dateien und Verzeichnisse mit Rsync unter Linux

Sichern und Wiederherstellen von Ubuntu-Anwendungen mit Aptik

So verwenden Sie Timeshift zum Sichern und Wiederherstellen von Linux