Ich versuche, mithilfe der vom NAS angebotenen „Backup Station“ ein Backup von meinem NAS (QNAP TS-469 Pro) auf meinem PC mit Ubuntu 16.10 einzurichten.
Wenn ich per SSH auf das NAS zugreife und die folgenden Befehle ausführe, funktioniert rsync:
touch file.txt # Create "file.txt" on the QNAP
rsync file.txt username@ipaddress:~ # Backup "file.txt" on the backup PC
Wenn ich jedoch ein Backup über die GUI des NAS (in einem Browser) einrichte, erhalte ich den Fehler
Ungültige Portnummer oder der Dienst ist deaktiviert.
Ich habe einiges über Port 873 oder das Ausführen eines Rsync-Daemons gelesen, aber das ist alles sehr unklar für mich.
Warum rsync
funktioniert die manuelle Ausführung, während ich bei der „Backup Station“ einen Fehler erhalte? Letztendlich bin ich natürlich daran interessiert, dass die automatische Sicherung funktioniert.
Antwort1
Rsync kann in zwei verschiedenen Modi arbeiten:
- über SSH:Rsync-Verbindung (sowohl für Steuerung als auch Datenübertragung) innerhalb eines SSH-Tunnels (grundsätzlich unter Verwendung von Pipes). Aufgrund der Allgegenwärtigkeit des SSH-Zugriffs und seiner Sicherheit ist dies häufig der bevorzugte Ansatz. Um jedoch wirklich transparent und automatisiert zu sein (ohne dass ein Passwort erforderlich ist), mussten Sie die RSA-Authentifizierung einrichten. Da außerdem alle Daten durch SSH verschlüsselt werden, kann dies langsamer sein als der andere Ansatz;
- über den Daemon- (oder Service-)Modus:Auf dem Remote-System läuft Rsync als Daemon/Dienst und lauscht auf Port TCP 873. Dieser Modus hat keine integrierte Verschlüsselung und ist daher sowohl schneller als auch weniger sicher als der SSH-Tunnel. Dies ist der Modus, der von QNAP für lokale und Remote-Backups verwendet wird. Damit QNAP Ihren PC als Backup-Ziel verwenden kann (d. h. das NAS auf dem PC sichern), müssen Sie den Rsync-Dienst aktivieren.auf Ihrem PC. Das ist zwar nicht schwierig, aber sicherlich komplexer als ein einfacher SSH-Tunnel. Weitere Informationen finden Sie im Internet, zum BeispielHier.
Antwort2
Sie sind wahrscheinlich rsync over rsync
verwirrt rsync over ssh
.
Rsync über SSH(unter Verwendung Ihrer SSH-Konfiguration)
rsync -av file.txt username@ipaddress:~
Diese Methode durchläuft einen SSH-Kanal und ist verschlüsselt.
Rsync über Rsyncunter Verwendung des Standard-Rsync-Protokolls
rsync -av file.txt ipaddress::myhome/.
Letzteres setzt voraus, dass Sie rsyncd.conf eingerichtet und rsync als Daemon gestartet haben. Als Daemon ist die gesamte Authentifizierung/Sicherheit in rsyncd.conf definiert und es wird keine Verschlüsselung verwendet.
Der Unterschied ist am einfachsten an den beiden Doppelpunkten nach der Adresse und dem Freigabenamen nach den beiden Doppelpunkten zu erkennen.
Hier ist eine wirklich einfache undgefährlichBeispiel für rsyncd.conf (einfach, weil Root und Berechtigungen kein Problem sind. Gefährlich, weil es als Root und nicht als Chroot ausgeführt wird)
uid = root
gid = root
use chroot = no
max connections = 64
lock file = /var/tmp/rsyncd.lock
syslog facility = local5
pid file = /var/tmp/rsyncd.pid
strict modes = false
hosts allow = 192.168.120.2
timeout = 60
dont compress = *.xz *.gz *.tgz *.zip *.rpm *.bz2 *.7z *.rar *.jp* *.gif *.png *.avi *.mp* *.wmv *.asf *.flv *.m4v *.mkv *.mov *.ogm *.rm *.3g*
#refuse options = checksum delete
refuse options = delete
#
[myhome]
list = false
comment = "myhome"
path = /home/myself/mydir
read only = no
Und hier starte ich den besagten Daemon:
#!/bin/bash
set -o posix
set -u
# keep nagios happy
renice 19 -p $$ > /dev/null 2>&1
ionice -c3 -p $$ > /dev/null 2>&1
rsync --daemon --ipv4 --address=192.168.120.1 --config=/home/myhome/rsyncd.conf --log-file=/dev/shm/rsync.log