Wo sind die Rsync Profis?

Gast #6781353
Lesenswert?

Hallo Leute,

Will mir von einem entfernten NAS Daten synchronisieren.
Dazu will ich rsync benutzen.

Wie wäre da der Syntax?

Quelle Remote NAS:
1
DS220.ddns.net
2
SSH Port 5152
3
Benutzer: Shareer
4
Passwort:Kugel
5
Pfad: /volume1/BackupOrdner1


Ziel Lokaler NAS:
1
Pfad: /volume1/BackupOrdner1
Gast #6781365
Lesenswert?

Das würde folgendes ergeben:
rsync -av -e --progress --delete --partial 'ssh -p 5152' 
Shareer@DS220.ddns.net:/volume1/BackupOrdner1 /volume1/BackupOrdner1

ABER: Wie bekomme ich da noch das Passwort rein?
Gast #6781423
Lesenswert?

rsyn schrieb:
> Das würde folgendes ergeben:
> rsync -av -e --progress --delete --partial 'ssh -p 5152'
> Shareer@DS220.ddns.net:/volume1/BackupOrdner1 /volume1/BackupOrdner1
>
> ABER: Wie bekomme ich da noch das Passwort rein?

Das willst du da nicht im Befehl haben, weil das bei Eingabe in der 
Konsole sonst in der .bash_history drin steht.
Das PW gibst du also besser an, wenn du dich verbindest und dann danach 
gefragt wirst.

Ansonsten, falls du das automatisieren willst, gibt's für ssh noch 
bessere Lösungen. Siehe Manpage.

Bei rsync nutze noch den Parameter z für AFAIK Kompression.

--delete ist auch ganz nützlich, falls Dateien auch auf dem Ziel auch 
gelöscht werden sollen, die du schon bei dir gelöscht hast.

Und wenn du immer vorher nachgucken willst, was rsync macht, dann nutze 
noch
--dry-run bzw. -n

Am besten packst du das in ein Skript, bei dem du je nach 
Aufrufparameter nen dryrun oder nen richtigen Durchlauf machen kannst.
Gast #6781431
Lesenswert?

So. Habe jetzt mal das Passwort gesetzt und einen Probelauf gemacht.
1
sudo env RSYNC_PASSWORD='Kugel' rsync -av -e --progress --delete --partial 'ssh -p 5152' Shareer@DS220.ddns.net:/volume1/BackupOrdner1 /volume1/BackupOrdner1

Ergebniss (Am realen NAS - Ordner/user/server umbenannt):
Unexpected remote arg: Shareer@DS220.ddns.net:/volume1/BackupOrdner1
rsync error: syntax or usage error (code 1) at main.c(1517) 
[sender=3.0.9]
Gast #6781512
Lesenswert?

rsyn schrieb:
> sudo env RSYNC_PASSWORD='Kugel' rsync -av -e --progress --delete
> --partial 'ssh -p 5152' Shareer@DS220.ddns.net:/volume1/BackupOrdner1
> /volume1/BackupOrdner1

Jetzt unabhängig von Passwort: Ich bin mir recht sicher, dass das 'ssh' 
hinter das -e gehört.
Teste doch mal ob
rsync -av -e 'ssh -p 5152' --progress --delete --partial 
Shareer@DS220.ddns.net:/volume1/BackupOrdner1 /volume1/BackupOrdner1

mit manueller Passworteingabe funktioniert. Danach kannst du 
weitersehen.

Wenn das ganze hinterher als Job laufen soll willst du wahrscheinlich 
auf das --progess versichten.
Gast #6781520
Lesenswert?

Nix für ungut aber das mit Linux und eigenes NAS macht nur Sinn wenn man 
sich mal geduldig hinsetzen und sich Dinge erarbeiten kann. Dass man am 
Anfang mal die richtigen Seiten nicht kennt ist ja ok. Aber wenn du es 
nicht mal schaffst auf der Seite selbst nach „Password“ zu suchen oder 
eine Fehlermeldung selbst zu interpretieren, lässt nichts gutes erahnen. 
So wirst du mit Linux und einem eigenen NAS nicht glücklich.
Gast #6781539
Lesenswert?

OK. Weiter gehts.
Generell funktioniert es jetzt. Das synchn.
1
env RSYNC_PASSWORD='Kugel'
2
export RSYNC_PASSWORD='Kugel'
3
sudo rsync -rav -e 'ssh -p 5152' --delete --partial --progress -z Sharerer@DS220.ddns.net:/volume1/BackupOrdner1 /volume1/BackupOrdner1

ABER:
1
Sharerer@DS220.ddns.net's password:

Er will also nochmals das Passwort :-/

Es wird also nicht richtig übergeben.
In der Hilfe ist das mit dem Password nicht gang eindeutig erklärt.
Anonsten: WIE muss die Befehlsline aussehen?
#6781607
Lesenswert?

Warum eigentlich immer so kompliziert? Generier dir einen 
Passphrasefreien SSH-Key, hinterleg den bei deinem Gegenüber auf dem NAS 
und fertig. Wenn dir das unsicherer erscheint als das Passwort in eine 
Variable zu packen, kannst du den Key am NAS noch mit einem 
Forced-command absichern. Das Problem wäre hier auch ganz gut 
beschrieben: 
https://stackoverflow.com/questions/3299951/how-to-pass-password-automatically-for-rsync-ssh-command

Gruß Gerd
Gast #6784640
Lesenswert?

rsyn schrieb:
> env RSYNC_PASSWORD='Kugel'
> export RSYNC_PASSWORD='Kugel'
> sudo rsync -rav -e 'ssh -p 5152' --delete --partial --progress -z
> Sharerer@DS220.ddns.net:/volume1/BackupOrdner1 /volume1/BackupOrdner1

rsyn schrieb:
> Er will also nochmals das Passwort :-/

Das geht leider so nicht, da du durch den geänderten Port einen eigenen 
SSH-Befehl hast. Man könnte das mit sshpass lösen (falls vorhanden auf 
deinem Syno-NAS) oder halt wie schon drölfzig mal vorgeschlagen mit 
SSH-Key. Dies wäre auch aus zahlreichen anderen Gründen vorzuziehen.
Gast #6785698
Lesenswert?

Das Password Thema hat nichts mit rsync zu tun.

Am einfachsten ist es die Authentifikation mit dem public key 
durchzuführen.
Somit den public key (zB. ~Lokalerbenuzter/.ssh/rsa_id.pub) vom lokalen 
NAS-Benutzer, in das .ssh Verzeichnis vom Benutzer Shareer auf dem 
remote NAS in die Datei authorized_keys eintragen.

Dazu gibt es auf manchen Distri den Befehl "ssh-copy-id -p 5152 
Shareer@DS220.ddns.net" -> lokal aufrufen.

Danach sollte dies funktionieren:
-z, komprimiert die Daten
--partial, würde ich nicht machen, wenn diese in der Quelle schon kaputt 
sind, warum brauchst Du diese im Backup?

rsync -azv --progress --delete --partial -e ssh -p 5152
Shareer@DS220.ddns.net:/volume1/BackupOrdner1 /volume1/BackupOrdner1
Gast #6788051
Lesenswert?

OK weitergehts.
Habe jetzt eine Keyyfile angelegt und kann mich auch ohne Passwort 
verbinden. (ssh Shareer@DS220.ddns.net -p 5152)
Hier nur nochmals die Aufgabenstellung: Daten werden vom Remote Synology 
DS220 NAS abgeholt und dann lokal auf dem DS216 NAS abgelegt.
Möglichst eine 1:1 Kopie.
Der Benutzer "Shareer" ist auf der Remote NAS nur mit Leserechten als 
Benutzer ausgeführt.
Er darf aber auf die Shell zugreifen. (auf /bin/sh in der /etc/passwd 
geändert)

Der Benutzer "Backuper" ist auf der lokalen NAS nur mit 
Schreib/Leserechten als Administrator ausgeführt.

Quelle Remote NAS:
1
DS220.ddns.net
2
SSH Port 5152
3
Benutzer: Shareer
4
Passwort:Kugel
5
Pfad: /volume1/BackupOrdner1

Ziel Lokaler NAS:
1
Pfad: /volume1/BackupOrdner1

Der "Administrator" Backuper führt den Rsync Befehl direkt in der Shell 
aus.
Der rsync Befehl sieht nun wie folgt aus:
1
rsync -azv --progress --delete --partial --no-p -e 'ssh -p 5152' Shareer@DS220.ddns.net:/volume1/BackupOrdner1 /volume1

Leider erhalte ich noch diese Fehler:
1
rsync: failed to set times on "/volume1/BackupOrdner1/Ordner Nummer11": Operation not permitted (1)
1
rsync: recv_generator: failed to stat "/volume1/BackupOrdner1/Ordner23/Datei1122.pdf": Permission denied (13)
1
rsync: recv_generator: mkdir "/volume1/BackupOrdner1/Ordner99/SubOrdner55" failed: Permission denied (13)

Auf welcher Seite liegt das Problem? Remote oder Lokal?
Ist das ein Rechteproblem vom "Backuper" auf der lokalen NAS oder der 
des "Shareer" auf der Remote NAS?
Beitrag #6791231 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren