rsync: getcwd (): Esse arquivo ou diretório não existe (2)

11

Eu quero sincronizar Server1e Server2registrar LogServer.

Para Server1:

rsync -avz -e 'ssh -p 2188' user@server1:/usr/local/servers/logs/* /usr/local/logs/

Este funciona, mas para Server2:

rsync -avz -e 'ssh -p 2188' user@server2:/usr/local/servers/logs/* /usr/local/logs/

Falha:

shell-init: error retrieving current directory: getcwd: cannot access parent directories: no such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: no such file or directory
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: no such file or directory
rsync: getcwd(): No such file or directory (2)
rsync error: errors selecting input/output files, dirs (code 3) at util.c(992) [sender=3.0.6]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [receiver=3.0.6]

Ambos Server1e Server2está hospedado na Amazon com a mesma versão do rsync.

Tenho certeza de que todos os diretórios do comando existem. Como posso resolver este problema?

UPDATE: Eu tentei ssh -p 2188 user@server2 pwde não funciona:

shell-init: error retrieving current directory: getcwd: cannot access parent directories: no such file or directory

job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: no such file or directory

Captura de tela

insira a descrição da imagem aqui

MrROY
fonte
1
Qual usuário você está usando para o rsync? Eu vi esse erro quando o usuário atual não tem permissões para acessar a estrutura de diretórios.
Sobrique 28/04
1
Ou quando o diretório inicial do usuário não existe no servidor.
Jenny D
O usuário atual tem permissão de leitura para esses logs e o diretório inicial existe.
MrROY
SSH manualmente no servidor2 como usuário . Isso funciona sem erros? Em caso afirmativo, ls -R /usr/local/serversfunciona sem erros?
sciurus
1
Sim, funciona sem erros!
MrROY

Respostas:

29

Eu tinha exatamente o mesmo problema e minha solução era algo em que nunca havia pensado. No meu caso, rsyncfuncionou bem o tempo todo, até que parou durante alguns testes após alterações em um dos meus scripts. O culpado foi que meu usuário UNIX atualmente conectado estava em uma pasta inexistente que já havia sido excluída por um script.

A getcwd(): No such file or directory (2)mensagem de erro estava relacionada $PWD, não à origem e não ao destino.

Apenas mude a pasta para uma existente (por exemplo, cd ~) e execute novamente o script. Não se esqueça de alterar os rsynccaminhos se eles ainda não forem absolutos.

Rafael Bugajewski
fonte
2
Hoje tive um problema muito semelhante ao configurar a sincronização entre duas pastas e receber esta mensagem. As pastas de origem e destino existiam claramente. Verifiquei se poderia estar em uma pasta excluída, mas esse não foi o problema. Mas eu estava na pasta de destino (que era um Google Drive montado no rclone). Mudei meu diretório de trabalho para outra coisa e a sincronização funcionou perfeitamente sem dar erro.
21718