Quiero sincronizar Server1
y Server2
los 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 Server1
y Server2
está 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 pwd
y 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
ls -R /usr/local/servers
funciona sin ningún error?Respuestas:
Tuve exactamente el mismo problema, y mi solución fue algo en lo que nunca había pensado. En mi caso
rsync
funcionó 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 losrsync
caminos si aún no son absolutos.fuente