rsync: falha ao definir horas em "dir path"

18

Estou tentando rsync arquivos de um servidor para outro, mas recebendo este erro

rsync: failed to set times on "/dept/intranet/dept/atest/.": Operation not permitted (1)

Alguém pode me ajudar por que isso acontece?

Eu acho que é algum problema de permissões.

Este é o meu 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     
    
por TheVillageIdiot 14.10.2010 / 13:34

3 respostas

24

Apenas estamos na mesma página:

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

Depois duas coisas:

É apenas um sistema de arquivos thingy

Se a pasta de destino for uma montagem NFS ou algum sistema de arquivos que não manipule bem os mod-times, ela será interrompida.

Tente adicionar o parâmetro -O (para --omit-dir-times ) ao seu comando.

Os tempos de modificação serão preservados, mas serão omitidos para os diretórios:

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

Este é o meu melhor palpite, já que a sincronização de arquivos parece funcionar, e seu erro ocorre na sincronização de horários mod. De qualquer forma, você realmente precisa preservar os tempos de modificação ? A opção -c ignora os arquivos com base na soma de verificação (portanto, tempos de modificação não importam).

Ou é, na verdade, um problema de permissão

  • o usuário que está executando o script tem privilégios suficientes para editar / gravar a pasta de destino? (tente ssh -vv test.desktop "touch /dept/intranet/dept/atest/f1/test" )
  • o usuário que está executando o script é "o Right One ™" (tente ssh -vv [email protected] "touch /dept/intranet/dept/atest/f1/test" )

Nenhuma das opções acima

Execute seu comando com a opção -v , para verboso.

    
por 14.10.2010 / 23:26
5

Adicione -O ( - omit-dir-times ) à sua linha de comando para evitar que ele tente definir tempos de modificação nos diretórios.

Além disso, leia isto: link

    
por 15.09.2011 / 21:47
1

No meu caso, resolvi o problema concedendo permissões no diretório pai em que a sincronização foi realizada.

Na verdade, o proprietário do diretório pai era diferente do usuário que fazia a sincronização.

    
por 11.12.2014 / 17:14

Tags