Rsync-Fehler bei Anwendung mit curlftpfs

Ich versuche zur Zeit ein ftp-Ordner mit einem Ordner auf der Festplatte zu synchronisieren (ohne Unterordner).

Dabei habe ich gelesen, dass man den ftp-Ordner zunächst mit curlftpfs mounten soll und dann mit rsync daten synchronisieren könne.

curlftpfs ich:[email protected] seite.de ~/ftp-Ordner/

rsync -uit --delay-updates --temp-dir=/var/tmp/rsync ~/ftp-Ordner/* /media/sda1/ftp/

Ergibt aber leider den Fehler:

rsync: failed to set times on „/media/sda1/ftp/.~tmp~/test.txt“: Operation not permitted (1)

Mit sudo scheint es auch nicht zu funktionieren, da dann das Verzeichnis nicht gewechselt werden kann (keine Berechtigung für cd).
Lasse ich -t weg, werden immer alle Dateien kopiert, auch wenn schon identisch vorhanden.

Ich benutze dafür Kubuntu 11.10 und ein NTFS-System auf sda1.

Könnt ihr mir sagen, wie ich den Fehler behebe oder habt ihr einen anderen Vorschlag für mich?

Hallo Heinz,

Ich versuche zur Zeit ein ftp-Ordner mit einem Ordner auf der
Festplatte zu synchronisieren (ohne Unterordner).

Dabei habe ich gelesen, dass man den ftp-Ordner zunächst mit
curlftpfs mounten soll und dann mit rsync daten
synchronisieren könne.

Ich kenne „curlftpfs“ nicht persönlich. Aber vielleicht helfen Dir die Ergebnisse der folgenden Untersuchungen weiter, selbst die Problemursache zu verstehen:

Kannst Du denn die Dateien (mit „cp -p“) manuell auf das Ziel kopieren?
Was sagt „ls -l“ danach über die Dateien (Zeitstempel!?) aus (Quelle und Ziel!)?

Sorry, mehr kann ich Dir derzeit nicht helfen,
Martin

Danke für die schnelle Antwort!

Es ergeben sich Fehler beim Versuch, die Datei zu kopieren:
kopiere ich die datei auf den eingehängten ftp-Ordner, erscheint die Fehlermeldung, dass „Datei oder Verzeichnis“ nicht gefunden wurden und die Datei daher nicht angelegt werden kann.
Sie wird aber angelegt! lediglich der Inhalt fehlt.
Hat die Ursprungsdatei die Rechte a=rwx, so hat die „kopierte“-Datei nur noch u=rwx, aber go=r.

Versuche ich es anders herum, wird zwar die Berechtigung und der Inhalt kopiert, jedoch mit der Warnung, dass der Zeitstempel verloren ging.
Dabei erzeuge ich die neue Datei im ftp-Ordner, wieder mit der Fehlermeldung, dass die Datei nicht angelegt werden konnte, obwohl sie es wurde. sie hat Rechte u=rwx, og=r, kopiere ich sie aber auf den Home-Ordner, dann plötzlich wieder a=rwx…

Gibt es eine andere Möglichkeit, die Ordner zu synchronisieren? unison etc. hat leider auch nicht funktioniert (mit ähnlichen Fehlern)…
Oder mache ich dabei irgenetwas falsch?

Hallo Heinz,

Deine Beobachtungen lassen auf Zugriffs-Probleme über die FTP-Verbindung schließen - beispielsweise scheint auf dem FTP-Server eine andere UMASK gesetzt zu sein
(eventuell hängt auch auf der einen Seite win Windows und auf der Anderen ein Unix-System?)

Gibt es eine andere Möglichkeit, die Ordner zu
synchronisieren?

Ich hatte mir mal (damals, unter OS/2) ein Script zusammengebastelt, welches per FTP ein fernes Verzeichnis (sogar rekursiv) mit allen neuen Dateien in einem lokalen Verzeichnis-Baum ausstattet.

Wenn Du von „synchronisieren“ spricht: möchtest Du auch (fern) gelöschte Dateien lokal löschen?
Wenn Du immer nur alles in eine Richtung *zusätzlich* übertragen willst, geht das auch ohne riesen Tools relativ einfach:
(0) Manualles ftp mit „mput *“ bzw. „mget *“
dann jeweils ein „dir“ bzw. „ldir“ in versteckte Datei „.remote.dir“ und „.local.dir“ schreiben
(1) zum Synchronisieren erneut eine ftp-Verbindung aufbauen und „dir“ / „ldir“ nach „.remote.neu“ bzw. „.local.neu“.
(2) per diff (sdiff, cmp,) die unterschiede zwischen „*.dir“ und „*.neu“ finden (ggf. die Listen vorher sortieren). Aus dem Diff-Ergebnis bastelst Du Dir mit sed, awk und co ein Input-script für ftp mit den entsprechenden get- bzw. put-Befehlen für die jeweils neuen bzw. geänderten Dateien. Je nach Wunsch auch „del“ für die zu löschenden Dateien. (Hierbei auf die „richtung“ achten, was nach wo synchronisiert wird: Die Datei „X“ bei Remote hinzugekommen, oder lokal gelöscht worden?)
Beachte, dass bei nicht-neuen dateien das Datum über „get“ oder „put“ entscheidet, wenn Du in Beide Richtungen synchronisieren willst.
(3) Zuletzt das Input-SCript an FTP schicken und mit einem neuen „dir“ den nun aktuellen Stand wieder in „*.dir“ speichern.

Viel Erfolg,
Martin

Hi,
mit welchem user hast du den ftp-order angelegt,
es sollte einer sein, der auf diesem pc die entspr. rechte hat.
und vor allem sollte er „bekannt“ sein