rsync: getcwd (): No existe tal archivo o directorio (2)

11

Quiero sincronizar Server1y Server2los registros de LogServer.

Para Server1:

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

Este funciona, pero para Server2:

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

Falla:

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 Server1y Server2está alojado en Amazon con la misma versión de rsync.

Estoy bastante seguro de que cada directorio en el comando existe. ¿Como puedó resolver esté problema?

ACTUALIZACIÓN: Lo he intentado ssh -p 2188 user@server2 pwdy no 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 pantalla

ingrese la descripción de la imagen aquí

WoooHaaaa
fuente
1
¿Qué usuario estás usando para rsync? He visto ese error cuando el usuario actual no tiene permisos para acceder a la estructura del directorio.
Sobrique
1
O cuando el directorio de inicio del usuario no existe en el servidor.
Jenny D
El usuario actual tiene permiso de lectura para esos registros y existe un directorio de inicio.
WoooHaaaa
Manualmente SSH en server2 como usuario . ¿Funciona sin ningún error? Si es así, ¿ ls -R /usr/local/serversfunciona sin ningún error?
sciurus
1
¡Sí, funciona sin ningún error!
WoooHaaaa

Respuestas:

29

Tuve exactamente el mismo problema, y ​​mi solución fue algo en lo que nunca había pensado. En mi caso rsyncfuncionó bien todo el tiempo hasta que se detuvo durante algunas pruebas después de los cambios en uno de mis scripts. El culpable fue que mi usuario de UNIX actualmente conectado estaba en una carpeta inexistente que ya había sido eliminada por un script.

El getcwd(): No such file or directory (2)mensaje de error estaba relacionado $PWD, no con el origen ni con el destino.

Simplemente cambie la carpeta a una existente (p. Ej. cd ~) Y vuelva a ejecutar el script. No olvides alterar los rsynccaminos si aún no son absolutos.

Rafael Bugajewski
fuente
2
Tuve un problema muy similar hoy cuando configuré la sincronización entre dos carpetas y recibí este mensaje. Las carpetas de origen y destino existían claramente. Verifiqué si podría haber estado en una carpeta eliminada, pero ese no era el problema. Pero estaba en la carpeta de destino (que era un Google Drive montado en rclone). Cambié mi directorio de trabajo a otra cosa y la sincronización funcionó perfectamente sin dar un error.
consulta