Man kennt das Problem wenn man mehrere Rechner hat. „Hier fehlt eine Datei die ich auf dem Laptop hatte.“ „Die Datei war dann doch woanders.“ Sowas ist auf dauer zeitaufwendig und zerrt an den Nerven die Dateien zu suchen. Besser ist wenn alle Daten auf einem Homeserver liegen und man die Rechner so aktuell halten kann. Folgendes lässt sich mit rsync bewerkstelligen.
Auf dem Server
Zuerst einmal müssen Sie dafür Sorgen das der rsync Daemon automatisch beim booten mitstartet. Die Einstellung nehmen Sie in YaST in Systemdienste (Runlevel) vor. Stellen Sie im Expertenmodus den Dienst rsyncd so ein das er bei Runlevel 3 und 5 mitstartet. Die Einstellungen übernehmen Sie nun.
Öffnen Sie nun eine Konsole und verschaffen Sie sich mittels su
Rootrechte. Mit dem Befehl vi /etc/rsyncd.conf
können Sie die Konfigurationsdatei von rsyncd öffnen. Hier tragen Sie nun folgendes ein bzw. ändern die Einstellungen:
gid = users
read only = true
use chroot = true
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow =
slp refresh = 300
use slp = false
[homefreigabe]
path = /home/detlev/
comment = syncordner
auth users = detlev
secrets file = /etc/rsyncd.secrets
read only = false
uid= 1000
(Sie müssen die Taste i drücken um in den Einfügemodus zu gelangen)
detlev
ersetzen Sie durch den Benutzer der die Daten später besitzen soll. Bei
path
muss der Ordner stehen der die Daten später aufheben soll. Bei
uid
muss die ID des Benutzers detlev eingegeben werden. Diese können Sie zum Beispiel in YaST nachschauen. Speichern Sie mit dem Befehl Esc gefolgt von :wq
Nun öffnen Sie mit vi /etc/rsyncd.secrets
und geben Sie dort den Benutzer mittles seinem SMB-Passworts ein. In diesem Falle:
detlev:seinpasswort
Dies können Sie nun auch speichern. Sollte detlev noch kein SMB-Passwort besitzen können Sie dies mit dem Befehl smbpasswd erstellen.
Nun starten Sie mittels rcrsyncd restart
den Dienst neu. Dieser übernimmt nun auch die Einstellungen.
Bitte beachten Sie das sie in der SuSEFirewall den Dienst noch freigeben müssen. Ansonsten kann dieser nicht nach außen kommunizieren.
Auf dem PC
Auf dem PC erstellen Sie mit einem Editor Ihrer wahl folgendes Scripst:
Zum Sichern
#!/bin/bash
rsync -auv --delete --password-file=rsync.pwd --exclude=/.* --exclude=Videos/* ~/ detlev@192.168.1.42::homefreigabe
sleep 2
Speichern Sie dies unter backup.sh
Zum Zurückspielen
#!/bin/bash
rsync -auv --delete --password-file=rsync.pwd --exclude=/.* --exclude=Videos/* detlev@192.168.1.42::homefreigabe ~/
sleep 2
Speichern Sie dies unter aktualiseren.sh
Die IP durch die des Servers erstetzen, sowie natürlich den Benutzernamen und den Pfad.
In den beiden Beispielen werden alle versteckten Dateien und Ordner ignoriert sowie der Ordner Videos. Nachdem rsync fertig ist bleibt das Script noch 2 Sekunden stehen. Wird es nämlich in einem Fenster aufgerufen so lassen sich die Ausgaben am Ende nicht mehr sehen, da es zu schnell schließt.
Nun im gleichen Ordner eine Datei
rsync.pwd
erstellen und das SMB-Passwort eintragen. In diesem Falle
seinpasswort
Die Datei abspeichern und nur für den eigenen Benuter lesbar und schreibbar machen. Ansonsten verweigert rsyncd die Arbeit.
Sinnvoll ist es die Datein im Ordner ~/bin abzulegen. Nun können Sie die ersten Synchronisation mittels ./backup.sh durchführen. So werden die Daten auf den Server geladen. Andere Dateien von anderen Rechnern MÜSSEN!!! manuell in das Verzeichnis gelegt werden. rsync würde Sie sonst löschen. Die beiden Scripte können so übernommen einfach auf die anderen Rechner kopiert werden. Die Passwortdatei erstellen Sie einfach auf alle anderen Rechner.
Sinnvoll ist es beim hochfahren Dateien zurückzuspielen und beim herunterfahren sichern. Der erste Upload und der erste Download müssen vollständig sein. Ansonsten überschreibt rsync andernfalls noch Daten die eigentlich gesichert werden sollten.
In KDE habe ich mir in die Kontrollleiste zwei Verknüpfungen angelegt. So kann ich schnell meine Daten sichern. Hier besteht nur das Risiko das man nicht ausversehen das falsche Icon betätigt.