Я хочу синхронизировать Server1
и Server2
логи LogServer
.
Для Server1
:
rsync -avz -e 'ssh -p 2188' user@server1:/usr/local/servers/logs/* /usr/local/logs/
Этот работает, но для Server2
:
rsync -avz -e 'ssh -p 2188' user@server2:/usr/local/servers/logs/* /usr/local/logs/
Не удается:
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]
Оба Server1
и Server2
размещены на Amazon с одинаковой версией rsync
.
Я совершенно уверен, что каждый каталог в команде существует. Как я могу решить эту проблему?
ОБНОВЛЕНИЕ: я попытался ssh -p 2188 user@server2 pwd
, и это не работает:
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
работает ли без ошибок?Ответы:
У меня была точно такая же проблема, и мое решение было тем, о чем я никогда не думал. В моем случае
rsync
все время работало нормально, пока не остановилось во время некоторых тестов после внесения изменений в один из моих сценариев. Виновным было то, что мой в настоящее время зарегистрированный пользователь UNIX находился в несуществующей папке, которая уже была удалена сценарием.getcwd(): No such file or directory (2)
Сообщение об ошибке было связано$PWD
, а не источник, а не пункт назначения.Просто измените папку на существующую (например,
cd ~
) и перезапустите скрипт. Не забудьте изменитьrsync
пути, если они еще не абсолютны.источник