rsyncd Linux zu Windows

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 10:44:53

Guten Tag :)

Wer kennt sich hier mit rsync bzw. mit rsyncd (dem Deamon) aus? :D

Ich habe folgendes Problem: Ich möchte mit Hilfe von rsyncd die Dateien in einem Verzeichnis unter Linux (Server) auf mein Windows XP (Client) [mit Cygwin] automatisch synchronisieren. Das heißt, sobald sich eine Datei in diesem Verzeichnis unter Linux ändert, soll die Kopie dieser Datei sich auch automatisch unter Windows ändern. Dies ist mit hilfe von rsync auch möglich! Der manuelle Weg (einmalig) nur mit rsync hat bei mir auch geklappt, allerdings will ich das ganze automatisiert haben. -> rsyncd.

Ich probiere schon SEHR lange daran rum und habe schon zahlreiche Tutorials ausprobiert. Nur irgendwo hackt es am Ende.

Meine Vorgehensweise:

Beispiel: Linux-Server: 192.168.67.31 / Windows-Client: 192.168.67.69

Part I

Cygwin installieren: http://cygwin.com/install.html (Dieses Programm eröffnet eine Linux-Shell auf dem Windows-Rechner)

Bei der Installation fragt er nach Packages -> "Net" aussuchen und: rsync, bash, openssh aussuchen



Part II (Linux)

nano /etc/rsyncd.conf

Edit zu:

lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid

transfer logging = true

log format = %h %o %f %l %b

[pub]

comment = Public Share

path = /home/Quellverzeichnis

read only = no

list = yes

uid = nobody

gid = nogroup

secrets file = /etc/rsyncd.secrets

hosts allow = 192.168.67.69



nano /etc/rsyncd.secrets
Edit zu:
# user: passwort
root:root
user:user
nano /etc/xinetd.d/rsync
Edit zu:
service rsync
{
disable = no
socket_type = stream
port = 873
protocol = tcp
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
service xinetd restart

nano /etc/default/rsync

Ändern zu: RSYNC_ENABLE=true

rsync --config=/etc/rsyncd.conf --daemon --no-detach & (Braucht man das??)


auf dem Windows-Client (Cygwin) HOLT sich die Daten vom Remote-Server (linux). mit dem Befehlt:

rsync -zv rsync://root@192.168.67.31/pub/home/quelle /cygdrive/c/ziel


Dabei kommt bei mir der folgende Fehler raus:

rsync: change_dir "/home" (in pub) failed: No such file or directory (2)

Hier -> var/log/rsyncd.log steht Folgendes:

2007/01/01 02:33:24 [2852] connect from Windows-PC (192.168.67.69)

2007/01/01 01:33:24 [2852] rsync on pub/home/quelle from Windows-PC (192.168.67.202)

2007/01/01 01:33:25 [2852] building file list

2007/01/01 01:33:25 [2852] rsync: change_dir "/home" (in pub) failed: No such file or directory (2)



Vielen Dank im Voraus!

Benutzeravatar
MSfree
Beiträge: 11741
Registriert: 25.09.2007 19:59:30

Re: rsyncd Linux zu Windows

Beitrag von MSfree » 30.09.2015 11:28:52

gadmin hat geschrieben:Das heißt, sobald sich eine Datei in diesem Verzeichnis unter Linux ändert, soll die Kopie dieser Datei sich auch automatisch unter Windows ändern.
Dafür ist rsync eigentlich nicht gedacht. Das, was du suchst, sind Tools zur Deduplizierung.

Rsync ist ein Werkzeug, um in regelmässigen Abständten (typischerweise einmal am Tag) eine Kopie eines Datenbestandes anzufertigen. Je nach Datenmenge ist das ein ziemlich langer Prozeß, weil erstmal die Dateilisten der beiden Bestände erzeugt werden und diese dann verglichen werden. Die Differenz wird dann übertragen.

Wenn du nun einen File-Alteration-Monitor verwendest und auf jede Dateiänderung rsync anstößt, lastest du den Server alleine damit aus, ständig Dateilisten des Dateibaumes anzufertigen.

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 14:18:33

MSfree hat geschrieben:
gadmin hat geschrieben:Das heißt, sobald sich eine Datei in diesem Verzeichnis unter Linux ändert, soll die Kopie dieser Datei sich auch automatisch unter Windows ändern.
Dafür ist rsync eigentlich nicht gedacht. Das, was du suchst, sind Tools zur Deduplizierung.

Rsync ist ein Werkzeug, um in regelmässigen Abständten (typischerweise einmal am Tag) eine Kopie eines Datenbestandes anzufertigen. Je nach Datenmenge ist das ein ziemlich langer Prozeß, weil erstmal die Dateilisten der beiden Bestände erzeugt werden und diese dann verglichen werden. Die Differenz wird dann übertragen.

Wenn du nun einen File-Alteration-Monitor verwendest und auf jede Dateiänderung rsync anstößt, lastest du den Server alleine damit aus, ständig Dateilisten des Dateibaumes anzufertigen.
Danke schon mal!
Hab mich falsch ausgedrückt. Das was du beschreibst, ist das was ich von rsync erwarte. Unabhängig davon wofür ich das brauche, will ich das einfach zum laufen bringen. Ich verstehe nicht wo ich den Fehler gemacht habe. Vielleicht stimmt etwas an der Syntax von dem letzten rsync "Befehl" nicht?

Benutzeravatar
MSfree
Beiträge: 11741
Registriert: 25.09.2007 19:59:30

Re: rsyncd Linux zu Windows

Beitrag von MSfree » 30.09.2015 14:29:58

gadmin hat geschrieben:Ich verstehe nicht wo ich den Fehler gemacht habe. Vielleicht stimmt etwas an der Syntax von dem letzten rsync "Befehl" nicht?
rsync: change_dir "/home" (in pub) failed: No such file or directory (2)

bedeutet, daß das Verzeichnis /pub/home auf dem Rechner mit der IP-Adresse 192.168.67.31 nicht exisitert. Folglich kann er auch nicht nach /pub/home/quelle wechseln und rsync bricht ab.

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 14:53:54

MSfree hat geschrieben:
gadmin hat geschrieben:Ich verstehe nicht wo ich den Fehler gemacht habe. Vielleicht stimmt etwas an der Syntax von dem letzten rsync "Befehl" nicht?
rsync: change_dir "/home" (in pub) failed: No such file or directory (2)

bedeutet, daß das Verzeichnis /pub/home auf dem Rechner mit der IP-Adresse 192.168.67.31 nicht exisitert. Folglich kann er auch nicht nach /pub/home/quelle wechseln und rsync bricht ab.
Aber das ist der Syntax, den ich aus allen tutorials entnehme. (Vielleicht übersehe ich ja etwas).

pub ist der Modulname (s.h .conf-Datei) und ab /home ist das der Pfad. Wenn ich pub weglasse, steht da:

$ rsync -zv rsync://root@192.168.67.31/home/quelle /cygdrive/c/ziel
@ERROR: Unknown module 'home'
rsync error: error starting client-server protocol (code 5) at main.c(1635) [Receiver=3.1.1]

Das heißt ich muss da schon das Modul hinschreiben. Nur den Pfad erkennt er irgendwie nicht. Der existiert aber!

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Re: rsyncd Linux zu Windows

Beitrag von peschmae » 30.09.2015 14:59:25

Du musst nicht den kompletten Pfad aufm rsync-server angeben, sondern nur relativ zur Freigabe.

Also statt /pub/home/quelle eher sowas wie /pub/quelle

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

uname
Beiträge: 12489
Registriert: 03.06.2008 09:33:02

Re: rsyncd Linux zu Windows

Beitrag von uname » 30.09.2015 15:00:24

Könntest du nicht einfacher "rsync über ssh" nutzen.
- SSH-Server installieren auf Linux-Server 192.168.67.31
- root-Zugriff erlauben (Passwort oder SSH-Key)

Code: Alles auswählen

rsync -zv root@192.168.67.31:/home/quelle /cygdrive/c/ziel
Wäre interessant zu erfahren ob das funktioniert. Bin mir aber nicht sicher. Habe noch nie überhaupt rsyncd konfiguriert ;-) Ok könnte schneller sein.

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 15:03:16

peschmae hat geschrieben:Du musst nicht den kompletten Pfad aufm rsync-server angeben, sondern nur relativ zur Freigabe.

Also statt /pub/home/quelle eher sowas wie /pub/quelle

MfG Peschmä
Ne das geht auch nicht. Bei mir sieht es so aus:

rsync -zv rsync://root@192.168.67.31/pub/home/userverzeichnis/quelle /cygdrive/c/ziel

Wenn ich das eingebe:

rsync -zv rsync://root@192.168.67.31/pub/userverzeichnis/quelle /cygdrive/c/ziel

rsync: link_stat "/userverzeichnis" (in pub) failed: No such file or directory (2)

sent 8 bytes received 86 bytes 188.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1637) [Receiver=3.1.1]


wenn ich das eingebe:

rsync -zv rsync://root@192.168.67.31/pub/quelle /cygdrive/c/ziel.

rsync: link_stat "/quelle" (in pub) failed: No such file or directory (2)

sent 8 bytes received 86 bytes 188.00 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1637) [Receiver=3.1.1]

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 15:07:44

uname hat geschrieben:Könntest du nicht einfacher "rsync über ssh" nutzen.
- SSH-Server installieren auf Linux-Server 192.168.67.31
- root-Zugriff erlauben (Passwort oder SSH-Key)

Code: Alles auswählen

rsync -zv root@192.168.67.31:/home/quelle /cygdrive/c/ziel
Wäre interessant zu erfahren ob das funktioniert. Bin mir aber nicht sicher. Habe noch nie überhaupt rsyncd konfiguriert ;-) Ok könnte schneller sein.

danke, auch schon versucht :) -> gleicher Fehler

$ rsync -zv root@192.168.67.31:/pub/home/user/quelle /cygdrive/c/ziel
root@192.168.67.31's password:
rsync: change_dir "/pub/home/user" failed: No such file or directory (2)

sent 8 bytes received 85 bytes 26.57 bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1637) [Receiver=3.1.1]

uname
Beiträge: 12489
Registriert: 03.06.2008 09:33:02

Re: rsyncd Linux zu Windows

Beitrag von uname » 30.09.2015 15:12:25

Code: Alles auswählen

rsync -zv root@192.168.67.31:/pub/home/user/quelle /cygdrive/c/ziel
Also das ist bestimmt falsch. Das /pub hast du als obersten Ordner in deinem Linux-Dateisystem wohl nicht, oder?
Also eher so:

Code: Alles auswählen

rsync -zv root@192.168.67.31:/home/user/quelle /cygdrive/c/ziel
Zuletzt geändert von uname am 30.09.2015 15:13:19, insgesamt 1-mal geändert.

Benutzeravatar
hikaru
Moderator
Beiträge: 13971
Registriert: 09.04.2008 12:48:59

Re: rsyncd Linux zu Windows

Beitrag von hikaru » 30.09.2015 15:13:02

Den Pfad /home/quelle hast du innerhalb des Moduls [pub] definiert. Wenn du nun also etwas vom Server ziehen willst gibst du NUR das Modul an:

Code: Alles auswählen

rsync -zv root@192.168.67.31::pub /cygdrive/c/ziel
(Beachte den doppelten Doppelpunkt!)
Die Alternative wäre der Weg über eine Remote-Shell wie von MSfree vorgeschlagen.

Was du laut deinen Ausgaben bisher versuchst ist, beide Wege zu mischen, und das funktioniert nicht. Rein syntaktisch hast du bisher einen Remote-Shell-Befehl (einzelner Doppelpunkt). Der würde aber eine stehende Remote-Shell voraussetzen die du vermutlich nicht hast. Und selbst wenn du sie hättest würde der Befehl erfordern, dass es auf deinem Server das Verzeichnis /pub/home gibt, was verrmutlich auch nicht der Fall ist.

reba
Beiträge: 536
Registriert: 27.06.2011 08:59:37

Re: rsyncd Linux zu Windows

Beitrag von reba » 30.09.2015 15:17:47

"No such file or directory" besagt genau das, was es sagt. Da ist keine Magie drin.
Zeig uns dochj bitte mal die Ausgaben von

Code: Alles auswählen

ls -l /pub

Code: Alles auswählen

ls -l /pub/home
und

Code: Alles auswählen

ls -l /pub/home/user
und führ dir bitte mal imhttp://www.debiananwenderhandbuch.de das Kapitel über Verzeichnisstrukturen unter Linux zu Gemüte.

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 15:48:13

reba hat geschrieben:"No such file or directory" besagt genau das, was es sagt. Da ist keine Magie drin.
Zeig uns dochj bitte mal die Ausgaben von

Code: Alles auswählen

ls -l /pub

Code: Alles auswählen

ls -l /pub/home
und

Code: Alles auswählen

ls -l /pub/home/user
und führ dir bitte mal imhttp://www.debiananwenderhandbuch.de das Kapitel über Verzeichnisstrukturen unter Linux zu Gemüte.

Alsoo. Das hätte vorher nicht geklappt, da ich pub nicht als Verzeichnis angelegt hatte (dachte nicht, dass man das muss o:). Jetzt hab ich einfach home als module genommen.


lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

hosts allow = 192.168.67.69


transfer logging = true
log format = %h %o %f %l %b

[home]
comment = Public Share
path = /user/quelle
read only = no
list = yes
uid = nobody
gid = nogroup
secrets file = /etc/rsyncd.secrets

Jetzt habe ich das eingegeben:

rsync -zv root@192.168.67.31::home /cygdrive/c/ziel


Jetzt krieg ich den Fehler:

2007/01/01 07:30:58 [3130] connect from Windows-PC (192.168.67.69)
2007/01/01 07:30:58 [3130] rsync: chroot /user/quelle failed: No such file or directory

update:

root@SAMA5D3-Xplained:~# ls -l /home/user/quelle/
total 4
-rw-r--r-- 1 root root 59 Jan 1 04:41 textlinux.txt

uname
Beiträge: 12489
Registriert: 03.06.2008 09:33:02

Re: rsyncd Linux zu Windows

Beitrag von uname » 30.09.2015 16:00:12

Ich habe weiter keine Ahnung, aber:

Code: Alles auswählen

[home]
comment = Public Share
path = /user/quelle
wäre wohl eher:

Code: Alles auswählen

[home]
comment = Public Share
path = /home/user/quelle

Benutzeravatar
hikaru
Moderator
Beiträge: 13971
Registriert: 09.04.2008 12:48:59

Re: rsyncd Linux zu Windows

Beitrag von hikaru » 30.09.2015 16:00:32

gadmin hat geschrieben:da ich pub nicht als Verzeichnis angelegt hatte (dachte nicht, dass man das muss o:).
Muss man auch nicht. Man muss lediglich dafür sorgen, dass die Moduldefinition mit der Dateisystemstruktur übereinstimmt. Die Modulnamen sind Schall und Rauch.
gadmin hat geschrieben: [home]
comment = Public Share
path = /user/quelle
gadmin hat geschrieben:Jetzt habe ich das eingegeben:

rsync -zv root@192.168.67.31::home /cygdrive/c/ziel


Jetzt krieg ich den Fehler:

2007/01/01 07:30:58 [3130] connect from Windows-PC (192.168.67.69)
2007/01/01 07:30:58 [3130] rsync: chroot /user/quelle failed: No such file or directory

update:

root@SAMA5D3-Xplained:~# ls -l /home/user/quelle/
total 4
-rw-r--r-- 1 root root 59 Jan 1 04:41 textlinux.txt
Wenn du jetzt deine Moduldefinition korrigierst, indem du /home mit in den Pfad schreibst, dann sollte es funktionieren.

edit: Siehe unames Beitrag!

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 16:16:29

Vielen Dank euch beiden, aber:

$ rsync -zv root@192.168.67.31::home /cygdrive/c/ziel
skipping directory .

sent 8 bytes received 30 bytes 76.00 bytes/sec
total size is 0 speedup is 0.00


edit:

conf-Datei:

lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

hosts allow = 192.168.67.69


transfer logging = true
log format = %h %o %f %l %b

[home]
comment = Public Share
path = home/user/quelle
read only = no
list = yes
uid = nobody
gid = nogroup
secrets file = /etc/rsyncd.secrets

reba
Beiträge: 536
Registriert: 27.06.2011 08:59:37

Re: rsyncd Linux zu Windows

Beitrag von reba » 30.09.2015 16:29:25

Nicht mal abschreiben kannst du richtig: hat eine Bedeutung!
siehe Debiananwenderhandbuch.

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 16:32:28

reba hat geschrieben:Nicht mal abschreiben kannst du richtig: hat eine Bedeutung!
siehe Debiananwenderhandbuch.
Könntest du mir nicht genau antworten, was du meinst? Bitte :P

reba
Beiträge: 536
Registriert: 27.06.2011 08:59:37

Re: rsyncd Linux zu Windows

Beitrag von reba » 30.09.2015 16:35:19

path=

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 16:36:20

reba hat geschrieben:path=
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

hosts allow = 192.168.67.69


transfer logging = true
log format = %h %o %f %l %b

[home]
comment = Public Share
path = /home/user/quelle
read only = no
list = yes
uid = nobody
gid = nogroup
secrets file = /etc/rsyncd.secrets


Das? Genau der selbe Fehler

reba
Beiträge: 536
Registriert: 27.06.2011 08:59:37

Re: rsyncd Linux zu Windows

Beitrag von reba » 30.09.2015 16:43:32

gadmin hat geschrieben:


Das? Genau der selbe Fehler
Welcher?

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 16:44:08

reba hat geschrieben:
gadmin hat geschrieben:


Das? Genau der selbe Fehler
Welcher?
$ rsync -zv root@192.168.67.31::home/ /cygdrive/c/ziel
skipping directory .

sent 8 bytes received 30 bytes 25.33 bytes/sec
total size is 0 speedup is 0.00


log-datei:


2007/01/01 08:23:58 [3189] connect from Windows-PC (192.168.67.69)
2007/01/01 07:23:58 [3189] rsync on home/ from Windows-PC (192.168.67.69)
2007/01/01 07:23:59 [3189] building file list
2007/01/01 07:23:59 [3189] skipping directory .
2007/01/01 07:23:59 [3189] sent 30 bytes received 8 bytes total size 0


Edit: Stimmt ist nicht der selbe, sorry. (Den hatte ich auch schon voher, deswegen hab ich den verwechselt)

reba
Beiträge: 536
Registriert: 27.06.2011 08:59:37

Re: rsyncd Linux zu Windows

Beitrag von reba » 30.09.2015 17:02:37

Hat sich denn überhaupt irgendwas im Quellverzeichnis geändert?
Vermutlich nicht.
Skipping ist kein Fehler, sondern das richtige Verhalten, wenn nichts neues da ist.

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 17:08:34

reba hat geschrieben:Hat sich denn überhaupt irgendwas im Quellverzeichnis geändert?
Vermutlich nicht.
Skipping ist kein Fehler, sondern das richtige Verhalten, wenn nichts neues da ist.
Ne hab nichts geändert. Hmm warum klappt es dann nicht..

gadmin
Beiträge: 21
Registriert: 30.09.2015 10:16:35

Re: rsyncd Linux zu Windows

Beitrag von gadmin » 30.09.2015 17:27:12

Sooooooooo. Leute! Ich habe es geschafft! Vielen Dank, das hat mir sehr geholfen.

Also es lag an 2 Sachen:

Der Modulname muss ja ein eigenes Verzeichnis sein (s.h .conf-Datei)

und die Optionen bei rsync genau beachten!

statt:

rsync -vz root@192.168.67.31::home/ /cygdrive/c/ziel

DAS (dabei ist -a das Entscheidende !) -->

rsync -azvu root@192.168.67.31::home/ /cygdrive/c/ziel

Antworten