Forum: PC Hard- und Software rsync im Netzwerkpfad und relative Pfade


von Timmo H. (masterfx)


Lesenswert?

Hallo.
Ich habe folgendes Problem. Ich habe einen Ordner im Windows Netzwerk, 
den ich per rsync sichern möchte. Nun soll das ganze so gestaltet sein, 
dass JEDER, der Zugriff auf diesen Ordner hat, von diesem Ordner ein 
Backup auf ein Medium machen kann (USB-Stick, HDD etc.). Also habe ich 
ein kleines Programm gemacht, dass den rsync Befehl entsprechend 
zusammensetzt (ist ja etwas anders wegen /cygdrive etc). Dieses 
Programm, rsync sowie die cygwin dlls liegen im gleichen Ordner. Und 
dieser Rsync-Ordner ist ein Unterverzeichnis von dem Ordner der 
abgesichert werden soll.
Also um das etwas zu verdeutlichen, ich habe ein Netzwerkpfad, der 
gesichert werden soll: \\Storage\Daten\GemeinsameDaten\
In dem Ordner GemeinsameDaten liegt nun das Backup Tool:
\\Storage\Daten\GemeinsameDaten\Backup\rsync\
Nun wird mein kleines Programm direkt aus dem Netzwerkpfad aufgerufen 
und da ja der Inhalt von GemeinsameDaten gesichert werden soll lautet 
der Befehl:
1
rsync.exe -av --exclude=\"*/Backup/\" ../../ /cygdrive/D/
rsync spuckt darauf hin folgenden Fehler aus:
1
sending incremental file list
2
rsync: change_dir "/Storage/Daten/GemeinsameDaten/Backup/rsync/../.." failed: No such file or directory (2)
Tja und nun fällt mir gerade nichts ein, was da falsch läuft. Hat jemand 
eine Idee, wie ich das ohne absolute Adressierung hinbekomme?

von Icke (Gast)


Lesenswert?

Das kann m.E. so nicht gehen, denn die Verzeichnisangabe "../../" wird 
höchstwahrscheinlich auf den lokalen PC angewendet (also wo das Prog 
gestartet wird) und nicht auf den UNC-Pfad.
Du könntest dir mit einer Batchdatei behelfen, die zunächst die Freigabe 
mit einem Laufwerksbuchstaben verbindet, dann den Befehl ausführt und am 
Schluß die Verbindung wieder trennt:


net use n: \\Storage\daten /persistent:no
n:
cd GemeinsameDaten\Backup\rsync\
rsync.exe -av --exclude=\"*/Backup/\" ../../ /cygdrive/D/
c:
net use n: /delete

Anm.: Ich habe allerdings nicht geprüft, ob die Syntax deiner 
Befehlszeile stimmt.

von Peter (Gast)


Lesenswert?

warum überhaupt der weg über cygwin und rsync?

Unter Windows kann man doch auch robocopy nehmen.

von Timmo H. (masterfx)


Lesenswert?

@Icke
>also wo das Prog gestartet wird) und nicht auf den UNC-Pfad.
Naja, das Prog wird ja auch dem Netzwerk gestartet, das sieht man ja 
auch daran, dass aus dem "../../" aus der Befehlszeile ein
1
rsync: change_dir "/Storage/Daten/GemeinsameDaten/Backup/rsync/../.." failed: No such file or directory (2)
wird.

Das mit dem Net Use schaue ich mir mal an, das könnte sogar klappen. 
Dann müsste ich zwar einen Umweg über ne Batch gehen, aber wenns nicht 
anders geht.

@Peter
Habe halt immer mit rsync gearbeitet. Das Robocopy schaue ich mir mal 
an.

von min (Gast)


Lesenswert?

>warum überhaupt der weg über cygwin und rsync?
>Unter Windows kann man doch auch robocopy nehmen.

Vielleicht weil robocopy ein closed source microsoft-produkt ist und 
rsync
open source GPL software ist.
Der Weg über cygwin ist hier ja auch nicht das Problem sondern der Pfad: 
Storage/Daten/GemeinsameDaten/Backup/rsync/...
C:\...\...\...\...\ sollte unter Windows so aussehen.

von Peter (Gast)


Lesenswert?

> Vielleicht weil robocopy ein closed source microsoft-produkt ist und
> rsync
> open source GPL software ist.
und was spielt das für eine Rolle wenn man schon untern einem closed 
source Windows mit einem closed source USB stick und einer closed source 
commandozeile arbeitert?

Dafür hat man den Vorteil das Rechte mit kopiert werden und auch alle 
Datumsattribute.

von Timmo H. (masterfx)


Lesenswert?

Hallo, habs jetzt mit Robocopy getestet und es läuft wunderbar! Danke 
für den Tipp.

>Storage/Daten/GemeinsameDaten/Backup/rsync/...
>C:\...\...\...\...\
Nein Storage ist der Netzwerkpfad. Der sieht unter Windows so aus:
1
\\Storage\Daten\GemeinsameDaten\
Und wenn ich relativ adressiere dann wird 
/Storage/Daten/GemeinsameDaten/
dadraus. Scheinbar kommt rsync einfach mit Netzwerkpfaden nicht klar.

Aber Robocopy ist schon das was ich will. Da ich es nicht 
Plattformübergreifend mache, brauch ich rsync eigentlich nicht, das war 
halt nur das womit ich sonst immer gearbeitet habe.

von min (Gast)


Lesenswert?

>Dafür hat man den Vorteil das Rechte mit kopiert werden und auch alle
>Datumsattribute.

Das kann rsync auch.
Ansonsten ziehe ich generell open source der closed source vor. Und 
Windose hat mein Vertrauen schon lange verspielt. Bin übrigens 
Linux-Nutzer.

von min (Gast)


Lesenswert?

Wer's einfacher haben will - dieses Javaprogramm ist ultimativ-
Capivara:

http://www.heise.de/software/download/capivara/64995

von Timmo H. (masterfx)


Lesenswert?

Geh mir bloß weg mit Java.
1. muss jeder die Java Runtime drauf haben
2. Brauch ich kein GUI Programm wenn ich über die Konsole arbeite

von oszi40 (Gast)


Lesenswert?

> C:\...\...\...\...\ sollte unter Windows so aussehen (sagte Herr Gates). Unter 
Unix /.../.../ merkt Ihr was ?

Wäre noch genauer zu prüfen wie laaaang die Namen sind. In Ungünstigen 
Fällen wird wieder klammheimlich irgendwo ein Limit erreicht oder ein 
exotisches Zeichen sorgt Abbruch. Viele Verschachtelte Ordner mit 
Straßennamen hätte ich da als abschreckendes praktisches Beispiel.

Deshalb ist es nie schädlich, hinterher Datenmenge auf Plausibilität zu 
prüfen und die letzte Datei zu suchen!!

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.