Forum: PC Hard- und Software Wo sind die Rsync Profis?


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von rsyn (Gast)


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

von Peter (Gast)


Lesenswert?


von rsyn (Gast)


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?

von Peter (Gast)


Lesenswert?

Auch auf der Seite mal nach Password. 🙄

von rsyn (Gast)


Lesenswert?

export RSYNC_PASSWORD="Ben8!?"
env RSYNC_PASSWORD="Ben8!?"

Beide liefern "-sh: !?": event not found"
Also kann der Befehl nicht mit Sonderzeichen umgehen.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

rsyn schrieb:
> Beide liefern "-sh: !?": event not found"
> Also kann der Befehl nicht mit Sonderzeichen umgehen.

Nein, diese Fehlermeldung kommt nicht von rsync, sondern von der 
aufrufenden Shell... Das sind doch nun wirklich elementare Grundlagen.

von Nano (Gast)


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.

von Andreas B. (bitverdreher)


Lesenswert?

Nimm FreefileSync (https://freefilesync.org/) und denk nicht mehr drüber 
nach. ;-)

von rsyn (Gast)


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]

von rsyn (Gast)


Angehängte Dateien:

Lesenswert?

Andreas B. schrieb:
> Nimm FreefileSync (https://freefilesync.org/) und denk nicht mehr drüber
> nach. ;-)

Das Programm wurde im Paket-Manager nicht gefunden!!! (Siehe Anhang)

von Andreas B. (bitverdreher)


Lesenswert?

Was meinst Du wohl warum ich den Link angegeben habe?

von rsyn (Gast)


Lesenswert?

Andreas B. schrieb:
> Was meinst Du wohl warum ich den Link angegeben habe?

Weil es keine SPK File für meinen NAS gibt, der signiert usw. ist?

von Andreas B. (bitverdreher)


Lesenswert?

Falls Du etwas aus dem Repo nehmen willst: Mit unison-gtk habe ich auch 
gute Erfahrungen gemacht.

Sorry, vergiss es. Ich nahm an, Du wolltest mit dem Desktop das NAS 
synchronisieren.

: Bearbeitet durch User
von JJ (Gast)


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.

von Peter (Gast)


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.

von Peter (Gast)


Lesenswert?

Und wir sind hier glaube alle keine rsync Experten. Wir lesen das auch 
nur.

von rsyn (Gast)


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?

von Gerd A. (gerd_a289)


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

von Hklöü (Gast)


Lesenswert?

Gerd A. schrieb:
> Warum eigentlich immer so kompliziert?

Weil er nicht danach gefragt hat?

von MaWin (Gast)


Lesenswert?

DAS geht ohne Ssh Keyfile nicht, du Prolo!

von Karl (Gast)


Lesenswert?

rsyn schrieb:
> Das Programm wurde im Paket-Manager nicht gefunden!!! (Siehe Anhang)

Einfach googeln, herunterladen, entpacken, install.sh ausführbar machen 
und mit ./install.sh installieren

von Christian F. (christian_f476)


Lesenswert?

Ich würde hier auch eher mit einem SSH-Schlüssel und public-key-auth.

Das kostet 5s suche nach genau dem was der TO hier vorhat:

https://www.linux-magazin.de/ausgaben/2005/05/sicherer-hafen/

von SR (Gast)


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.

von Hugo (Gast)


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

von Hugo (Gast)


Lesenswert?

die Authentifikation kann mit 'ssh Shareer@DS220.ddns.net' getestet 
werden

von SR (Gast)


Lesenswert?

Hugo schrieb:
> rsync -azv --progress --delete --partial -e ssh -p 5152

Nein, wieder einer der es nicht verstanden hat... :'(

rsync -azv --progress --delete --partial -e 'ssh -p 5152'

von rsyn (Gast)


Lesenswert?

Hugo schrieb:
> die Authentifikation kann mit 'ssh Shareer@DS220.ddns.net' getestet
> werden

Wie kann ich das testen, mit einem anderen Zielport als Port 22?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

rsyn schrieb:
> Wie kann ich das testen, mit einem anderen Zielport als Port 22?

man ssh zeigt:

-p port

Port to connect to on the remote host. This can be specified on a 
per-host basis in the configuration file.

Wenn man gerade kein Linux zur Hand hat, kann man auch "man ssh" bei 
google eingeben.

: Bearbeitet durch Moderator
von rsyn (Gast)


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?

von rsyn (Gast)


Lesenswert?

Aja auch noch:
1
rsync: failed to modify permissions on "/volume1/BackupOrdner1/Ordner123": Operation not permitted (1)

von Gerd A. (gerd_a289)


Lesenswert?

Hi, ein Grund könnte sein, dass die Filesysteme unterschiedlich sind:
Quelle(NAS) = ext4 -> Ziel (lokal) = VFAT/NTFS, dann ist dein Problem 
das Ziel und beim Recovern ein Problemchen.
Gruß
Gerd

von M. P. (matze7779)


Lesenswert?

Das sind doch beides Synology NAS.
Warum nimmt Du nicht einfach Synology Drive ShareSync out of the Box?
Genau dafür gemacht.

https://kb.synology.com/de-de/DSM/help/SynologyDrive/drive_sharesync?version=6

Beitrag #6791231 wurde vom Autor gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.