rsync: falha ao definir horários em "<caminho do diretório>"

20

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

rsync: falha ao definir horários em "/ dept / intranet / dept / atest /.": Operação não permitida (1)

Alguém pode me ajudar por que?

Eu acho que é algum problema de permissão.

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     
TheVillageIdiot
fonte
você poderia nos dar mais informações? * seu comando rsync * local + usuário remoto * permissões de arquivo
Brian Clozel
editou a pergunta.

Respostas:

26

Só assim estamos na mesma página:

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

Então duas coisas:

É apenas um sistema de arquivos

Se a pasta de destino for uma montagem NFS, ou algum sistema de arquivos que não lida bem com os tempos de modificação, ela será interrompida.

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

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

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

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

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

  • o usuário executando o script possui 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 acima

Execute seu comando com a -vopção, para detalhado.

Brian Clozel
fonte
11
Obrigado pela --omit-dir-timesdica. Realmente ajuda.
JakeGould
1

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

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

Matías
fonte