rsyncd Linux zu Windows
rsyncd Linux zu Windows
Guten Tag
Wer kennt sich hier mit rsync bzw. mit rsyncd (dem Deamon) aus?
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!
Wer kennt sich hier mit rsync bzw. mit rsyncd (dem Deamon) aus?
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!
Re: rsyncd Linux zu Windows
Dafür ist rsync eigentlich nicht gedacht. Das, was du suchst, sind Tools zur Deduplizierung.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.
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.
Re: rsyncd Linux zu Windows
Danke schon mal!MSfree hat geschrieben:Dafür ist rsync eigentlich nicht gedacht. Das, was du suchst, sind Tools zur Deduplizierung.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.
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.
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?
Re: rsyncd Linux zu Windows
rsync: change_dir "/home" (in pub) failed: No such file or directory (2)gadmin hat geschrieben:Ich verstehe nicht wo ich den Fehler gemacht habe. Vielleicht stimmt etwas an der Syntax von dem letzten rsync "Befehl" nicht?
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.
Re: rsyncd Linux zu Windows
Aber das ist der Syntax, den ich aus allen tutorials entnehme. (Vielleicht übersehe ich ja etwas).MSfree hat geschrieben:rsync: change_dir "/home" (in pub) failed: No such file or directory (2)gadmin hat geschrieben:Ich verstehe nicht wo ich den Fehler gemacht habe. Vielleicht stimmt etwas an der Syntax von dem letzten rsync "Befehl" nicht?
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.
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!
- 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
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ä
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
Re: rsyncd Linux zu Windows
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)
Wäre interessant zu erfahren ob das funktioniert. Bin mir aber nicht sicher. Habe noch nie überhaupt rsyncd konfiguriert Ok könnte schneller sein.
- 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
Re: rsyncd Linux zu Windows
Ne das geht auch nicht. Bei mir sieht es so aus: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ä
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]
Re: rsyncd Linux zu Windows
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)Wäre interessant zu erfahren ob das funktioniert. Bin mir aber nicht sicher. Habe noch nie überhaupt rsyncd konfiguriert Ok könnte schneller sein.Code: Alles auswählen
rsync -zv root@192.168.67.31:/home/quelle /cygdrive/c/ziel
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]
Re: rsyncd Linux zu Windows
Code: Alles auswählen
rsync -zv root@192.168.67.31:/pub/home/user/quelle /cygdrive/c/ziel
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.
Re: rsyncd Linux zu Windows
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:(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.
Code: Alles auswählen
rsync -zv root@192.168.67.31::pub /cygdrive/c/ziel
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.
Re: rsyncd Linux zu Windows
"No such file or directory" besagt genau das, was es sagt. Da ist keine Magie drin.
Zeig uns dochj bitte mal die Ausgaben von
und
und führ dir bitte mal imhttp://www.debiananwenderhandbuch.de das Kapitel über Verzeichnisstrukturen unter Linux zu Gemüte.
Zeig uns dochj bitte mal die Ausgaben von
Code: Alles auswählen
ls -l /pub
Code: Alles auswählen
ls -l /pub/home
Code: Alles auswählen
ls -l /pub/home/user
Re: rsyncd Linux zu Windows
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 vonCode: Alles auswählen
ls -l /pub
undCode: Alles auswählen
ls -l /pub/home
und führ dir bitte mal imhttp://www.debiananwenderhandbuch.de das Kapitel über Verzeichnisstrukturen unter Linux zu Gemüte.Code: Alles auswählen
ls -l /pub/home/user
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
Re: rsyncd Linux zu Windows
Ich habe weiter keine Ahnung, aber:
wäre wohl eher:
Code: Alles auswählen
[home]
comment = Public Share
path = /user/quelle
Code: Alles auswählen
[home]
comment = Public Share
path = /home/user/quelle
Re: rsyncd Linux zu Windows
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:da ich pub nicht als Verzeichnis angelegt hatte (dachte nicht, dass man das muss o:).
gadmin hat geschrieben: [home]
comment = Public Share
path = /user/quelle
Wenn du jetzt deine Moduldefinition korrigierst, indem du /home mit in den Pfad schreibst, dann sollte es funktionieren.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
edit: Siehe unames Beitrag!
Re: rsyncd Linux zu Windows
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
$ 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
Re: rsyncd Linux zu Windows
Nicht mal abschreiben kannst du richtig:
hat eine Bedeutung!
siehe Debiananwenderhandbuch.
Code: Alles auswählen
/
siehe Debiananwenderhandbuch.
Re: rsyncd Linux zu Windows
Könntest du mir nicht genau antworten, was du meinst? Bittereba hat geschrieben:Nicht mal abschreiben kannst du richtig:hat eine Bedeutung!Code: Alles auswählen
/
siehe Debiananwenderhandbuch.
Re: rsyncd Linux zu Windows
lock file = /var/run/rsync.lockreba hat geschrieben:path=
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
Re: rsyncd Linux zu Windows
Welcher?gadmin hat geschrieben:
Das? Genau der selbe Fehler
Re: rsyncd Linux zu Windows
$ rsync -zv root@192.168.67.31::home/ /cygdrive/c/zielreba hat geschrieben:Welcher?gadmin hat geschrieben:
Das? Genau der selbe Fehler
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)
Re: rsyncd Linux zu Windows
Hat sich denn überhaupt irgendwas im Quellverzeichnis geändert?
Vermutlich nicht.
Skipping ist kein Fehler, sondern das richtige Verhalten, wenn nichts neues da ist.
Vermutlich nicht.
Skipping ist kein Fehler, sondern das richtige Verhalten, wenn nichts neues da ist.
Re: rsyncd Linux zu Windows
Ne hab nichts geändert. Hmm warum klappt es dann nicht..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.
Re: rsyncd Linux zu Windows
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
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