-
Notifications
You must be signed in to change notification settings - Fork 314
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* New translations 01_rsync_overview.md (German) * New translations 04_rsync_configure.md (German) * New translations 02_rsync_demo01.md (German)
- Loading branch information
1 parent
c009873
commit 7cbad13
Showing
3 changed files
with
227 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
--- | ||
title: rsync - Kurzbeschreibung | ||
author: tianci li | ||
contributors: Steven Spencer, Ganna Zhyrnova | ||
update: 2022-03-08 | ||
--- | ||
|
||
# Backup | ||
|
||
Was ist ein Backup? | ||
|
||
Unter Backup versteht man das Kopieren von Daten in ein Dateisystem oder eine Datenbank, sodass im Fehler- oder Katastrophenfall die effektiven Daten des Systems zeitnah und bequem wiederhergestellt werden können und das System normal wieder funktionieren kann. Im Falle eines Fehlers oder einer Katastrophe können die effektiven Daten des Systems rechtzeitig und normal wiederhergestellt werden. | ||
|
||
Was sind die Backup-Methoden? | ||
|
||
* Vollständige Sicherung: bezieht sich auf eine einmalige Kopie aller Dateien, Ordner oder Daten auf der Festplatte oder Datenbank. (Pros: kann Daten schneller wiederherstellen. Nachteil: nimmt einen größeren Festplattenspeicher in Anspruch.) | ||
* Inkrementelle Sicherung: bezieht sich auf die Sicherung der Daten, die nach dem letzten vollständigen Backup oder inkrementellen Backup aktualisiert wurden. Der Prozess ist so, wie zum Beispiel ein vollständiges Backup am ersten Tag; eine Sicherung der neu hinzugefügten Daten am zweiten Tag, im Gegensatz zu einer vollständigen Sicherung; am dritten Tag, eine Sicherung der neu hinzugefügten Daten auf Basis des zweiten Tages relativ zum nächsten Tag, und so weiter. | ||
* Differentielle Sicherung: Bezieht sich auf die Sicherung der geänderten Dateien nach der vollständigen Sicherung. Zum Beispiel ein vollständiges Backup am ersten Tag; ein Backup der neuen Daten am zweiten Tag; eine Sicherung der neuen Daten vom zweiten Tag bis zum dritten Tag am dritten Tag; und eine Sicherung aller neuen Daten vom zweiten Tag bis zum vierten Tag am vierten Tag und so weiter. | ||
* Selektives Backup: Verweist auf die Sicherung eines Teils des Systems. | ||
* Cold Backup: bezieht sich auf die Sicherung, wenn das System im Stillstand oder Wartungszustand ist. Die gesicherten Daten sind genau die gleichen wie die Daten im System während dieses Zeitraums. | ||
* Hot Backup: Bezieht sich auf die Sicherung, wenn das System im normalen Betrieb ist. Da die Daten im System jederzeit aktualisiert werden, haben die gesicherten Daten einen gewissen Rückstand gegenüber den realen Daten des Systems. | ||
* Remote Backup: bezieht sich auf die Sicherung von Daten an einem anderen geografischen Ort, um Datenverluste und Unterbrechungen durch Feuer, Naturkatastrophen, Diebstahl usw. zu vermeiden. | ||
|
||
## rsync in Kürze | ||
|
||
Auf einem Server haben wir die erste Partition auf die zweite Partition gesichert, was allgemein "lokales Backup" genannt ist. Die spezifischen Sicherungswerkzeuge sind `tar` , `dd`, `dump`, `cp`, etc. Obwohl die Daten auf diesem Server gesichert sind, werden die Daten nicht abgerufen, wenn die Hardware nicht richtig bootet. Um dieses Problem mit dem lokalen Backup zu lösen, haben wir eine andere Art von Backup --- "remote backup" eingeführt. | ||
|
||
Einige werden sagen, können wir nicht einfach den `tar` oder `cp` Befehl auf dem ersten Server verwenden und die Daten über `scp` oder `sftp` an den zweiten Server senden? | ||
|
||
In einem Produktionsumfeld ist die Datenmenge relativ groß. Zuallererst verbraucht `tar` oder `cp` viel Zeit und belegt die Systemleistung. Transmission via `scp` or `sftp` also occupies a lot of network bandwidth, which is not allowed in the actual production environment. Zweitens müssen diese Befehle oder Werkzeuge manuell vom Administrator eingegeben werden und mit der Crontab der geplanten Aufgabe kombiniert werden. Die von crontab festgelegte Zeit ist jedoch nicht leicht zu begreifen, und es ist nicht angemessen, dass Daten gesichert werden, wenn die Zeit zu kurz oder zu lang ist. | ||
|
||
Daher muss es eine Datensicherung im Produktionsumfeld geben, die folgende Anforderungen erfüllen muss: | ||
|
||
1. Datensicherungen über das Netzwerk übertragen | ||
2. Echtzeit-Daten-Synchronisation | ||
3. Geringerer Verbrauch der Systemressourcen und höhere Effizienz | ||
|
||
`rsync` scheint die oben genannten Anforderungen zu erfüllen. Es verwendet die GNU Open Source Lizenz. Es ist ein schnelles inkrementelles Backup-Tool. Die neueste Version war 3.2.3 (2020-08-06). Für weitere Informationen können Sie die [Offizielle Website](https://rsync.samba.org/) besuchen. | ||
|
||
Im Hinblick auf die Plattformunterstützung werden die meisten Unix-ähnlichen Systeme unterstützt, egal ob es sich z.B. um GNU/Linux oder BSD handelt. Zusätzlich gibt es unter der Windows-Plattform `rsync` verwandte Programme, wie z.B. cwRsync. | ||
|
||
Das ursprüngliche `rsync` wurde vom australischen Programmierer <font color=red>Andrew Tridgell</font> (siehe Abbildung 1 unten) gepflegt und wird jetzt von <font color=red>Wayne Davison</font> (siehe Abbildung 2 unten) gepflegt. Informationen zur Wartung finden Sie unter [GitHub-Projekt](https://github.com/WayneD/rsync). | ||
|
||
![ Andrew Tridgell ](images/Andrew_Tridgell.jpg) ![ Wayne Davison ](images/Wayne_Davison.jpg) | ||
|
||
!!! note "Bemerkung" | ||
|
||
**rsync selbst ist nur ein inkrementelles Sicherungswerkzeug und hat nicht die Funktion der Echtzeit-Datensynchronisierung (es muss durch andere Programme ergänzt werden). Darüber hinaus ist die Synchronisierung eine Einbahnstraße. Wenn Sie eine bidirektionale Synchronisation durchführen möchten, sollten Sie andere Tools erwägen.** | ||
|
||
### Grundprinzipien und Funktionen | ||
|
||
Wie erreicht `rsync` ein effizientes Backup durch Datensynchronisierung? | ||
|
||
Der Kern von `rsync` ist sein **Prüfsummen-Algorithmus**. Wenn Sie interessiert sind, können Sie die Webseiten \[Wie Rsync funktioniert\](https://rsync.samba.org/how-rsync-works.html) und \[Der rsync-Algorithmus\](https://rsync.samba.org/tech_report/) für weitere Informationen besuchen. Das Thema wird hier nicht ausführlich behandelt. | ||
|
||
Die Eigenschaften von `rsync` sind: | ||
|
||
* Das gesamte Verzeichnis kann rekursiv aktualisiert werden; | ||
* Kann selektiv Dateisynchronisierungseigenschaften beibehalten, wie z. B. hard Links, soft Links, Eigentümer, Gruppen, entsprechende Berechtigungen, Änderungszeit usw. und kann einige der Attribute beibehalten; | ||
* Unterstützt zwei Protokolle für die Übertragung, eines ist das `ssh`-Protokoll, das andere ist das `rsync`-Protokoll |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
--- | ||
title: rsync-Demo 01 | ||
author: tianci li | ||
contributors: Steven Spencer, Ganna Zhyrnova | ||
update: 2021-11-04 | ||
--- | ||
|
||
# Vorwort | ||
|
||
`rsync` muss vor der Datensynchronisierung eine Benutzerauthentifizierung durchführen. **Es gibt zwei Protokollmethoden für die Authentifizierung: SSH-Protokoll und rsync-Protokoll (der Standardport des rsync-Protokolls ist 873)** | ||
|
||
* Login-Methode mit SSH-Protokollüberprüfung: Benutzen Sie das SSH-Protokoll als Basis für die Authentifizierung der Benutzeridentität (d.h. verwenden Sie den Systembenutzer und das Passwort zur Verifizierung) und führen Sie dann die Datensynchronisierung durch. | ||
* Login-Methode für rsync-Protokollüberprüfung: Benutzen Sie das `rsync`-Protokoll für die Authentifizierung (Benutzer, die keine GNU/Linux-Systembenutzer sind, ähnlich wie vsftpd-virtuelle Benutzer), und führen Sie dann die Datensynchronisierung durch. | ||
|
||
Vor der spezifischen Demonstration der rsync-Synchronisierung müssen Sie den Befehl `rsync` verwenden. In Rocky Linux 8 ist das rsync-rpm-Paket standardmäßig installiert und die Version 3.1.3-12 ist wie folgt: | ||
|
||
```bash | ||
[root@Rocky ~]# rpm -qa|grep rsync | ||
rsync-3.1.3-12.el8.x86_64 | ||
``` | ||
|
||
```txt | ||
Basic format: rsync [options] original location target location | ||
Commonly used options: | ||
-a: archive mode, recursive and preserves the attributes of the file object, which is equivalent to -rlptgoD (without -H, -A, -X) | ||
-v: Display detailed information about the synchronization process | ||
-z: compress when transferring files | ||
-H: Keep hard link files | ||
-A: retain ACL permissions | ||
-X: retain chattr permissions | ||
-r: Recursive mode, including all files in the directory and subdirectories | ||
-l: still reserved for symbolic link files | ||
-p: Permission to retain file attributes | ||
-t: time to retain file attributes | ||
-g: retain the group belonging to the file attribute (only for super users) | ||
-o: retain the owner of the file attributes (only for super users) | ||
-D: Keep device files and other special files | ||
``` | ||
|
||
Persönliche Verwendung durch den Autor: `rsync -avz Originalstandort Zielstandort` | ||
|
||
## Umgebungsbeschreibung | ||
|
||
| Item | Beschreibung | | ||
| ---------------------- | ---------------- | | ||
| Rocky Linux 8 (Server) | 192.168.100.4/24 | | ||
| Fedora 34 (Client) | 192.168.100.5/24 | | ||
|
||
Sie können Fedora 34 zum Hochladen und Herunterladen verwenden | ||
|
||
```mermaid | ||
graph LR; | ||
RockyLinux8-->|pull/download|Fedora34; | ||
Fedora34-->|push/upload|RockyLinux8; | ||
``` | ||
|
||
Sie können Rocky Linux 8 auch zum Hochladen und Herunterladen verwenden | ||
|
||
```mermaid | ||
graph LR; | ||
RockyLinux8-->|push/upload|Fedora34; | ||
Fedora34-->|pull/download|RockyLinux8; | ||
``` | ||
|
||
## Demonstration basierend auf SSH-Protokoll | ||
|
||
!!! tip "Hinweis" | ||
|
||
Hier verwenden sowohl Rocky Linux 8 als auch Fedora 34 den root-Benutzer, um sich einzuloggen. In diesem Beispiel ist Fedora 34 der Client und Rocky Linux 8 der Server. | ||
|
||
### pull/download | ||
|
||
Da es auf dem SSH-Protokoll basiert, erstellen wir zuerst einen Benutzer auf dem Server: | ||
|
||
```bash | ||
[root@Rocky ~]# useradd testrsync | ||
[root@Rocky ~]# passwd testrsync | ||
``` | ||
|
||
Auf der Client-Seite wird es heruntergeladen, und die Datei auf dem Server ist /rsync/aabbcc | ||
|
||
```bash | ||
[root@fedora ~]# rsync -avz testrsync@192.168.100.4:/rsync/aabbcc /root | ||
testrsync@192.168.100.4 ' s password: | ||
receiving incremental file list | ||
aabbcc | ||
sent 43 bytes received 85 bytes 51.20 bytes/sec | ||
total size is 0 speedup is 0.00 | ||
[root@fedora ~]# cd | ||
[root@fedora ~]# ls | ||
aabbcc | ||
``` | ||
Die Übertragung war erfolgreich. | ||
!!! tip "Tip" | ||
Wenn der SSH-Port des Servers nicht der Standard ist, 22, können Sie den Port wie folgt angeben: `rsync -avz -e 'ssh -p [port]'. | ||
### push/upload | ||
```bash | ||
[root@fedora ~]# touch fedora | ||
[root@fedora ~]# rsync -avz /root/* testrsync@192.168.100.4:/rsync/ | ||
testrsync@192.168.100.4 ' s password: | ||
sending incremental file list | ||
anaconda-ks.cfg | ||
fedora | ||
rsync: mkstemp " /rsync/.anaconda-ks.cfg.KWf7JF " failed: Permission denied (13) | ||
rsync: mkstemp " /rsync/.fedora.fL3zPC " failed: Permission denied (13) | ||
sent 760 bytes received 211 bytes 277.43 bytes/sec | ||
total size is 883 speedup is 0.91 | ||
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender = 3.2.3] | ||
``` | ||
|
||
**Eingabeaufforderung verweigert, wie Sie damit umzugehen sollten?** | ||
|
||
Überprüfen Sie zuerst die Berechtigungen des /rsync/ Verzeichnisses. Offensichtlich gibt es keine "w"-Berechtigung. Wir können `setfacl` verwenden, um die Berechtigung zu erteilen: | ||
|
||
```bash | ||
[root@Rocky ~ ] # ls -ld /rsync/ | ||
drwxr-xr-x 2 root root 4096 November 2 15:05 /rsync/ | ||
``` | ||
|
||
```bash | ||
[root@Rocky ~ ] # setfacl -mu:testrsync:rwx /rsync/ | ||
[root@Rocky ~ ] # getfacl /rsync/ | ||
getfacl: Removing leading ' / ' from absolute path names | ||
# file: rsync/ | ||
# owner: root | ||
# group: root | ||
user::rwx | ||
user:testrsync:rwx | ||
group::rx | ||
mask::rwx | ||
other::rx | ||
``` | ||
|
||
Versuchen Sie es noch einmal! | ||
|
||
```bash | ||
[root@fedora ~ ] # rsync -avz /root/* testrsync@192.168.100.4:/rsync/ | ||
testrsync@192.168.100.4 ' s password: | ||
sending incremental file list | ||
anaconda-ks.cfg | ||
fedora | ||
sent 760 bytes received 54 bytes 180.89 bytes/sec | ||
total size is 883 speedup is 1.08 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters