rsync: impossibile impostare i tempi su "<percorso dir>"


20

Sto cercando di risincronizzare i file da un server a un altro ma ottengo questo errore

rsync: impossibile impostare i tempi su "/ dept / intranet / dept / atest /.": Operazione non consentita (1)

Qualcuno può aiutarmi perché?

Immagino che sia un problema di autorizzazioni.

Questo è il mio comando:

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     

potresti darci maggiori informazioni? * il tuo comando rsync * autorizzazioni locali + utente remoto * file
Brian Clozel

ha modificato la domanda.

Risposte:


26

Solo così siamo sulla stessa pagina:

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

Quindi due cose:

È solo un file system

Se la cartella di destinazione è un mount NFS o un filesystem che non gestisce bene i mod-time, si rompe bene.

Prova ad aggiungere il parametro -O(for --omit-dir-times) al tuo comando.

I tempi di modifica verranno conservati, ma omessi per le directory:

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

Questa è la mia ipotesi migliore, poiché la sincronizzazione dei file sembra funzionare e il tuo errore si verifica sulla sincronizzazione del tempo mod. Ad ogni modo, hai davvero bisogno di preservare i tempi di modifica ? L' -copzione salta i file in base al checksum (quindi i tempi delle mod non contano).

O in realtà è un problema di autorizzazione

  • l'utente che esegue lo script dispone dei privilegi sufficienti per modificare / scrivere la cartella di destinazione? (prova ssh -vv test.desktop "touch /dept/intranet/dept/atest/f1/test")
  • l'utente che esegue lo script è "the Right One ™" (prova ssh -vv thegooduser@test.desktop "touch /dept/intranet/dept/atest/f1/test")

Nessuno dei precedenti

Esegui il comando con l' -vopzione, per dettagli.


1
Grazie per il --omit-dir-timessuggerimento. Aiuta davvero.
Jake Gould


1

Nel mio caso ho risolto il problema concedendo autorizzazioni sulla directory principale in cui è stata eseguita la sincronizzazione.

In realtà il proprietario della directory principale era diverso dall'utente che faceva la sincronizzazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.