Mein Thecus NAS N5200 Pro bietet von Haus aus eine Synchronisations-Möglichkeit (NSYNC). Diese Funktioniert aber nur sehr eingeschränkt. *comment on* NSYNC steht offenbar für NotSYNC… *comment off*
RSYNC muss her…
Dieses Howto basiert unter anderem auf der Beschreibung von Peter Futterknecht:
- http://forums.hexus.net/thecus-care-hexus/159660-nsync-still-not-working-3-months.html#post1702687
- http://www.futterknecht.at
- http://wiki.qnap.com/wiki/Autorun.sh
Meine Umgebung:
- Thecus NAS 5200 Pro; Dies ist mein produktives NAS
- QNAP TS-109; Dies ist das Backup-Medium
Installation Module auf Thecus N5200Pro
Auf dem Thecus N5200Pro werden folgende Module installiert:
- SSHD
N5200_SSHD_2.00.00 - SYSUSER für ssh Zugriff
SYSUSER-2.00.02.04
Nach der Installattion das Passwort von „sys“ über die Modul-Property Seite des Moduls SYSUSER ändern. Per Default ist das Passwort „sys“. - RSYNC für rsync (RSYNC installieren, aber noch nicht aktvieren!)
N5200_RSYNC_2.00.02
RSYNC auf Thecus konfigurieren (Source-Daten)
Als erstes loggen wir uns über ssh auf das Thecus ein
ssh sys@thecusIP
Nach der Installation des Moduls RSYNC läuft rsync als deamon. Die Konfiguration erfolgt über das File
/raid/data/module/RSYNC/system/etc/rsyncd.conf
und enthält bereits alle Default-Shares des Thecus als vorkonfigurierte Ordner. Anbei eine Beispiel-Konfiguration. Es erlaubt den rsync-Zugriff von Host 192.168.1.xx (meine IP-Adresse des Qnap TS-109). Konfiguriert ist ein Zugriff „test“, welcher auf den lokalen Ordner „/raid/data/test123“ verweist. Der rsync-Zugriff erfolgt in diesem Falle über den user „sys“. Hier kann ein beliebiger User konfiguriert werden. Es ist aber wichtig, dass dieser User auch entsprechende Rechte auf dem lokalen Ordner (/raid/data/test123) besitzt. Es können beliebig viele solcher „rsync-shares“ erstellt werden. Es ist damit auch möglich nur einzelne Unterverzeichnisse eines Thecus-Shares zu synchen:
gid = Users read only = true transfer logging = false log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid #hosts allow = 192.168.2.254:255.255.255.0 hosts allow = 192.168.1.xx [test] comment = test Files path = /raid/data/test123 read only = no list = yes uid = sys gid = nogroup ...
- Logout SSH
- Nun aktivieren wir das Modul RSYNC auf dem Thecus über das Web-Interface.
RSYNC auf Qnap TS-109 konfigurieren (Target-Data)
- Login über das Qnap TS-109 Webinterface
- Erstellen eines Zielverzeichnises. z.B. „Thecus_Backup/test123“
- Das Qnap TS-109 liefert bereits ein SSH-Login Plugin mit. Dieses aktivieren.
- Login über SSH
- Das Qnap TS-109 liefert ebenfalls bereits rsync out of the box mit.
- Nun können auf dem Qnap TS-109 rsync Befehle gegen das Thecus N5200pro ausgeführt werden.
Folgender Befehl kopiert alle daten aus dem Thecus Source-Verzeichnis /raid/data/test123 in das Qnap TS-109 Zielverzeichnis /share/HDA_DATA/Thecus_Backup/test123/.
Parameter delete = gelöschte Dateien werden auch in der Sicherung gelöscht
Parameter stats = zeigt einen ausführlicheren Report am Ende einer Übertragung an.
rsync -a --delete --stats thecusIP::test /share/HDA_DATA/Thecus_Backup/test123/
Backup automatisieren
Nun, da rsync funktioniert ist es Zeit das ganze automatisiert, in regelmässigen Zeitabständen auszuführen.
- copy_all.sh File unter /mnt/HDA_ROOT erstellen
cd /mnt/HDA_ROOT vi copy_all.sh
Script:
#!/bin/sh # # called by cron to backup the N5200 to the Qnap TS-109 via rsync echo "start backup via rsync : `date`" echo "syncing folder : test" rsync -a --delete --stats 192.168.1.xxx::test /share/HDA_DATA/Thecus_Backup/test123/ echo "end backup via rsync : `date`" echo "+++++++++++++++++++++++++++++++++++++++++++++++++"
File ausführbar machen
chmod +x copy_all.sh
Nun die crontab des Qnap TS-109 anpassen („crontab -l“ listet die aktuellen Einträge auf)
vi /etc/config/crontab
folgenden Eintrag hinzfügen. Das Script wird nun jeden Montag um 13:00 Uhr ausgeführt. Die Logdatei wird in das Root-Verzeichnis des Backups geschrieben.
0 13 * * 1 /mnt/HDA_ROOT/copy_all.sh >> /share/HDA_DATA/Thecus_Backup/rsync.log 2>&1
crontab neu laden
crontab /etc/config/crontab
cron restarten
/etc/init.d/crond.sh restart