Linux rsync-Befehl
Vollständige Liste der Linux-Befehle
Was ist der rsync-Befehl
rsync (Remote Sync) ist ein leistungsstarkes Dateisynchronisierungswerkzeug in Linux-Systemen. Es kann Dateien und Verzeichnisse effizient zwischen lokalen oder entfernten Systemen synchronisieren. rsync ist für seinen "inkrementellen Übertragungs"-Algorithmus bekannt, der nur die Unterschiede zwischen Quell- und Zieldateien überträgt und so die Effizienz der Dateiübertragung erheblich verbessert.
Kernfunktionen von rsync
- Inkrementelle Synchronisierung: Überträgt nur die geänderten Teile von Dateien, was Bandbreite und Zeit spart
- Attribute beibehalten: Kann Metadaten wie Dateiberechtigungen und Zeitstempel beibehalten
- Komprimierte Übertragung: Unterstützt Datenkomprimierung während der Übertragung, was die Netzwerklast reduziert
- Flexibler Ausschluss: Kann bestimmte Dateien oder Verzeichnisse ausschließen
- Remote-Unterstützung: Dateien entfernter Server sicher über SSH synchronisieren
Grundlegende rsync-Syntax
rsync [选项] 源文件 目标文件
Häufige Befehlsformen
Lokale Synchronisierung:
rsync -av /path/to/source/ /path/to/destination/
Von lokal nach remote synchronisieren:
rsync -avz /local/path/ username@remote_host:/remote/path/
Von remote nach lokal synchronisieren:
rsync -avz username@remote_host:/remote/path/ /local/path/
Detaillierte Erklärung gängiger rsync-Optionen
| Option | Vollständiger Name | Beschreibung |
|---|---|---|
| -a | --archive | Archivmodus, behält alle Dateiattribute bei (entspricht -rlptgoD) |
| -v | --verbose | Detaillierte Übertragungsinformationen anzeigen |
| -z | --compress | Daten während der Übertragung komprimieren |
| -r | --recursive | Verzeichnisse rekursiv kopieren |
| -l | --links | Symbolische Links beibehalten |
| -p | --perms | Dateiberechtigungen beibehalten |
| -t | --times | Änderungszeit der Datei beibehalten |
| -g | --group | Dateigruppe beibehalten |
| -o | --owner | Dateieigentümer beibehalten |
| -D | --devices | Gerätedateien beibehalten (nur Superuser) |
| -h | --human-readable | Zahlen in menschenlesbarem Format ausgeben |
| --progress | Übertragungsfortschritt anzeigen | |
| --delete | Dateien im Ziel löschen, die nicht in der Quelle vorhanden sind | |
| --exclude=PATTERN | Dateien ausschließen, die PATTERN entsprechen | |
| --include=PATTERN | Dateien einschließen, die PATTERN entsprechen |
Praktische Anwendungsbeispiele für rsync
Beispiel 1: Lokale Verzeichnissynchronisierung
Beispiel
rsync -av /home/user/docs/ /backup/docs/
Hinweis: Der Schrägstrich nach dem Quellverzeichnis/ist sehr wichtig:
- Mit Schrägstrich: die Verzeichnisinhalte synchronisieren
- Ohne Schrägstrich: das Verzeichnis selbst synchronisieren
Beispiel 2: Remote-Server-Backup
Beispiel
rsync -avz /data/backups/ user@example.com:/Remote-/Backups/
Beispiel 3: Synchronisierung mit Ausschlussoptionen
Beispiel
rsync -av --exclude='*.tmp' --exclude='log/' /source/ /destination/
Beispiel 4: Beide Seiten vollständig konsistent halten (überzählige Dateien auf dem Ziel löschen)
Beispiel
Erweiterte rsync-Nutzung
1. Verwendung eines benutzerdefinierten SSH-Ports
Beispiel
2. Bandbreitenbegrenzung (begrenzt auf 500KB/s)
Beispiel
3. Teilübertragung (nur Dateien größer als 100KB übertragen)
Beispiel
4. Geplantes Backup-Skript
Beispiel
rsync -avz --delete /wichtige/Daten/ Backup@Server:/Backups/Daten/
echo "Backup abgeschlossen um $(date)" >> /var/log/backup.log
rsync FAQ
F1: Was ist der Unterschied zwischen rsync und scp?
- rsync: Inkrementelle Synchronisierung, überträgt nur die Unterschiede, geeignet für regelmäßige Backups
- scp: Jedes Mal vollständige Übertragung, geeignet für einmalige Dateiübertragungen
F2: Wie setzt man eine unterbrochene rsync-Übertragung fort?
Verwenden Sie--partialOption zum Behalten teilweise übertragener Dateien:
Beispiel
F3: Wie kann man sehen, was rsync tun wird, ohne es tatsächlich auszuführen?
Verwenden Sie-n(Trockenlauf-)Option:
Beispiel
F4: Wie kann man die rsync-Übertragungsgeschwindigkeit verbessern?
- Verwenden Sie
-zOption zum Aktivieren der Komprimierung - Verwenden Sie
--compress-level=NKomprimierungsstufe anpassen (1-9) - Prüfsummenberechnung deaktivieren (nur vertrauenswürdige Netzwerke):
--no-checksum
Empfehlungen für bewährte Verfahren
- Zuerst testen: Verwenden Sie
-ndie Option, um zuerst einen Probelauf durchzuführen - Protokollierung: Fügen Sie hinzu
--log-file=rsync.logum Vorgänge aufzuzeichnen - Berechtigungsverwaltung: Erwägen Sie
--chmoddie Verwendung zur Vereinheitlichung von Dateiberechtigungen - Geplante Aufgaben: Kombinieren Sie mit crontab für automatische Backups
- Sichere Übertragung: Führen Sie Remote-Übertragungen immer über SSH durch
Zusammenfassung
rsync ist ein unverzichtbares Werkzeug für Linux-Systemadministratoren und Entwickler. Wenn Sie es beherrschen, können Sie:
- Lokale und Remote-Dateisynchronisierung effizient durchführen
- Automatisierte Backup-Lösungen implementieren
- Netzwerkdatenübertragung optimieren
- Dateisystemkonsistenz aufrechterhalten
Durch diesen Artikel sollten Sie die grundlegende Verwendung und fortgeschrittene Techniken von rsync beherrschen. Es wird empfohlen, in Ihrer tatsächlichen Arbeit mehr zu üben und nach und nach mehr von rsyncs leistungsstarken Funktionen zu entdecken.
Weitere Erweiterungen