mikrocontroller.net

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


Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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:
rsync.exe -av --exclude=\"*/Backup/\" ../../ /cygdrive/D/ 
rsync spuckt darauf hin folgenden Fehler aus:
sending incremental file list
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?

Autor: Icke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum überhaupt der weg über cygwin und rsync?

Unter Windows kann man doch auch robocopy nehmen.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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
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.

Autor: min (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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:
\\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.

Autor: min (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: min (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer's einfacher haben will - dieses Javaprogramm ist ultimativ-
Capivara:

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

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.