PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rsnapshot & remote client mit cygwin problem



chrispy
20.03.10, 01:41
Hallo!

Ich habe ein heterogenes netzwerk zuhause (debian linux backup server und einen haufen winxp clients) und habe es jetzt geschafft, rsnapshot / rsync auf den jeweiligen maschinen einzurichten.
das problem was ich jetzt noch habe, ist dass beim aufruf der rsnapshot remote backup routine auf dem backup server anscheinend 'sudo rsync' auf dem client ausgeführt wird - leider läuft der unter cygwin, insofern kennt er sudo nicht und ich kriege folgenden fehleroutput:

chris@BACKUPSERVER:/etc$ sudo rsnapshot daily
Chris@SOMEIP's password:
bash: sudo rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(635) [receiver=3.0.3]
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot daily
----------------------------------------------------------------------------
ERROR: /usr/bin/rsync returned 12 while processing Chris@SOMEIP:/cygdrive/f/backuptest/


D.h. ich bräuchte eine Idee, wie ich entweder sudo definieren kann unter cygwin (i.e. einfach so dass das sudo ignoriert wird und der befehl ohne sudo ausgeführt wird) oder ich rsnapshot mitteilen kann, dass es keine root rechte beim ausführen von rsync beanspruchen soll.
Vielen Dank für Eure Hilfe! :)

MfG Chrispy

chrispy
20.03.10, 15:18
Nun ich habe jetzt für cygwin ein shell-script geschrieben (mit dem inhalt $*) das als sudo aufgerufen wird, i.e. auf cygwin ist jetzt einfach "sudo echo 'hallo' "
ausgeführt als "echo 'hallo' "
Leider habe ich damit immer noch obiges problem. Die logdatei von rsnapshot auf dem server zeigt an dass rsync ein IO in clientserver.c hat.

Wenn ich mich jetzt vom server aus über ssh im cygwinclient einlogge, so kann ich problemlos rsync über "sudo rsync" starten. Aber obiges problem bleibt leider trotzdem, sprich es muss etwas anderes im Argen sein als ich ursprünglich vermutet hatte.

derRichard
20.03.10, 15:20
könnte es sein, dass auf der gegenseite kein rsync installiert ist?
oder nicht im suchpfad ist?

hth,
//richard

chrispy
20.03.10, 20:49
vielen dank, aber leider bin ich damit noch nicht weiter. :'(

ich habe auf client und server jeweils rsync und rsnapshot installiert.
Ich kann manuell z.b. vom server aus über ssh mich in den (cygwin) client einloggen, dort in die bash gehen und mit "sudo rsync" rsync aufrufen. Insofern verstehe ich die Fehlermeldung immer weniger.
Ich habe allerdings sowieso vorsichtshalber mein rsync-verzeichnis und das verzeichnis meiner selbst-gebastelten sudo-alternative im home/Chris/.bash_profile PATH eingetragen - wobei er es auch ohne diesen eintrag schafft, rsync von irgendeinem ort etc auszuführen.

Ich bin etwas enttäuscht dass diverse Tutorials im Web zum Thema rsnapshot /rsync und cygwin diese Problematik gar nicht behandeln? Anscheinend haben andere gar kein problem - einfach auf client/server rsnapshot, rsync und openssh installieren, ein bisschen konfigurieren, und schon klappt alles ?!

framp
20.03.10, 23:14
Hm ... Du sagts dass Du per ssh auf die Win Boxen ins cygwin kommst. Ich verstehe nicht warum du auf den remote Boxen alles per sudo aufrufen musst/willst. Ich kann Dein Scenario mangels Environment nicht testen - aber irgendwie habe ich Dein Problem noch nicht verstanden.

Willst Du ein rsync des Cliensts auf Deinem Backupserver initiieren - dann sollte doch - sofern alles mit den Keys korrekt aufgesetzt wurde - das ohne Probleme gehen. Deshalb verstehe ich nicht warum Du auf dem Client was mit sudo machst.

Bislang habe ich mit Freuden festgestellt, dass sich ein W$ Client, der cygwin installiert hat - wie eine well known Linux box verhält. So wie sch da anhört ist dem nicht so :-( . Das kann ich ehrlich gesagt nicht so ganz glauben :rolleyes:

chrispy
21.03.10, 12:10
haha, ja du hast schon recht, es ist wahrscheinlicher dass cygwin sich perfekt verhält aber ich einfach kein guter linux user bin!!! :o
Dankeschön für deine Antwort! Ich hoffe ich schaffe es, mein Problem etwas deutlicher zu formulieren...

Also, nochmal: Ja, ich möchte rsync auf dem client aufrufen (wobei das rsnapshot vom server aus macht). Und wenn ich eben "rsnapshot daily" auf dem server aufrufe, dann fragt er nach dem passwort für Benutzer "Chris" auf dem Client und dann kommt obige fehlermeldung dass die bash den befehl "sudo rsync" nicht kennt - wahrscheinlich meint er also die bash auf dem client-system die er als user "Chris" betritt.
D.h.: ich möchte ja gar nicht, dass sich rsnapshot mit root-rechten (sprich mit sudo) im cygwin client verlustiert, sondern vielmehr logt sich rsnapshot ja als ganz normaler user "Chris" im Client ein. Ich verstehe ehrlich gesagt selbst nicht, warum rsnapshot das sudo dann verwendet. Die Frage ist deshalb ja auch gewesen, wie ich rsnapshot entsprechend konfigurieren kann?

Jedenfalls habe ich sowohl die Client wie auch Server bash und alle relevanten benutzer / root manuell überprüft: sudo rsync führt in keinem falle zu einem problem, i.e. sudo rsync verhält sich wie der aufruf von rsync.
Deswegen verstehe ich schonmal gar nicht, warum rsnapshot überhaupt meckert !!! :ugly:

framp
21.03.10, 13:24
Interessant. Ich kannte rsnapshot noch nicht. Allerdings kenne ich die Mächtigkeit von rsync - speziell das LinkFeature - und habe bei mir damit per bash meine eigene BackupImplementierung mit rsync geschrieben :-(.

Anyhow - ich habe Dein Scenario mal nachgestellt - also ein XP in einer VM und auf meinem Linux Desktop rsnapshot installiert. Nachdem ich den key von meinem Desktop (Dein Server) in die authorized_keys Datei unter cygnwin kopiert habe funktioniert alles prächtig ohne Passwordeingabe.

Du solltest mal Deine /etc/rsnapshot posten.