rsync: Fehler beim Festlegen der Zeiten für "<Verzeichnispfad>"

20

Ich versuche, Dateien von einem Server auf einen anderen zu synchronisieren, erhalte jedoch diesen Fehler

rsync: Fehler beim Festlegen der Zeiten für "/ dept / intranet / dept / atest /.": Vorgang nicht zulässig (1)

Kann mir jemand warum so helfen?

Ich denke, es ist ein Problem mit den Berechtigungen.

Das ist mein Befehl:

RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh
REMOTE_HOST=test.desktop

${RSYNC} -crlt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}

LOCAL_DIR = workplace1/f1/
permissions drwxr-xr-x   11 root     root         4096 Mar 19  2009 f1

REMOTE_DIR=/dept/intranet/dept/atest/f1/
permissions :drwxr-xr-x 14 dbld   a1     4096 Mar 19  2009 f1     
TheVillageIdiot
quelle
Könnten Sie uns mehr Informationen geben? * Ihr rsync-Befehl * lokaler + entfernter Benutzer * Dateiberechtigungen
Brian Clozel
hat die Frage bearbeitet.

Antworten:

26

Nur damit wir auf der gleichen Seite sind:

-r recursive
-l preserve links
-c sync based on file checksum
-t preserve modification times

Dann zwei Dinge:

Es ist nur ein Dateisystem-Ding

Wenn der Zielordner ein NFS-Mount ist oder ein Dateisystem, das mit Mod-Zeiten nicht gut zurechtkommt, funktioniert es nicht mehr.

Fügen Sie Ihrem Befehl den Parameter -O(for --omit-dir-times) hinzu .

Änderungszeiten werden beibehalten, bei Verzeichnissen jedoch weggelassen:

${RSYNC} -crlOt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}

Dies ist meine beste Vermutung, da die Dateisynchronisierung zu funktionieren scheint und Ihr Fehler bei der Mod-Zeitsynchronisierung auftritt. Müssen Sie die Änderungszeiten wirklich einhalten ? Die -cOption "Dateien basierend auf Prüfsumme überspringen" (so dass die Mod-Zeiten keine Rolle spielen).

Oder es ist tatsächlich ein Berechtigungsproblem

  • Hat der Benutzer, der das Skript ausführt, genügend Berechtigungen, um den Zielordner zu bearbeiten / zu schreiben? (versuchen ssh -vv test.desktop "touch /dept/intranet/dept/atest/f1/test")
  • Ist der Benutzer, der das Skript ausführt, "der Richtige" (Versuch ssh -vv [email protected] "touch /dept/intranet/dept/atest/f1/test") ?

Nichts des oben Genannten

Führen Sie Ihren Befehl mit der -vOption für ausführlich aus.

Brian Clozel
quelle
1
Danke für den --omit-dir-timesTipp. Hilft wirklich.
JakeGould
1

In meinem Fall habe ich das Problem gelöst, indem ich Berechtigungen für das übergeordnete Verzeichnis erteilt habe, in dem die Synchronisierung durchgeführt wurde.

Tatsächlich war der Besitzer des übergeordneten Verzeichnisses nicht der Benutzer, der die Synchronisierung durchgeführt hat.

Matías
quelle