Skip to content

Commit

Permalink
New Crowdin updates (#2545)
Browse files Browse the repository at this point in the history
* New translations 01_rsync_overview.md (German)

* New translations 04_rsync_configure.md (German)

* New translations 02_rsync_demo01.md (German)
  • Loading branch information
rockylinux-auto authored Dec 27, 2024
1 parent c009873 commit 7cbad13
Show file tree
Hide file tree
Showing 3 changed files with 227 additions and 1 deletion.
60 changes: 60 additions & 0 deletions docs/books/learning_rsync/01_rsync_overview.de.md
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
149 changes: 149 additions & 0 deletions docs/books/learning_rsync/02_rsync_demo01.de.md
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
```
19 changes: 18 additions & 1 deletion docs/books/learning_rsync/04_rsync_configure.de.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,21 @@ Im vorherigen Artikel [rsync demo 02](03_rsync_demo02.md) haben wir einige grund

## Empfohlene Konfiguration

![ photo ](images/rsync_config.jpg)
```ini title="/etc/rsyncd.conf"
uid = nobody
gid = nobody
address = 192.168.100.4
use chroot = yes
max connections = 10
syslog facility = daemon
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
lock file = /var/run/rsyncd.lock
[file]
comment = rsync
path = /rsync/
read only = no
dont compress = *.gz *.bz2 *.zip
auth users = li
secrets file = /etc/rsyncd users.db
```

0 comments on commit 7cbad13

Please sign in to comment.