rsync: getcwd (): нет такого файла или каталога (2)

11

Я хочу синхронизировать 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

Скриншот

введите описание изображения здесь

WoooHaaaa
источник
1
Какой пользователь вы используете для rsync? Я видел эту ошибку, когда текущий пользователь не имеет прав доступа к структуре каталогов.
Sobrique
1
Или когда домашний каталог пользователя не существует на сервере.
Дженни Д
Текущий пользователь имеет права на чтение этих журналов, и домашний каталог существует.
WoooHaaaa
Вручную SSH на server2 как пользователь . Это работает без каких-либо ошибок? Если да, то ls -R /usr/local/serversработает ли без ошибок?
Sciurus
1
Да, работает без ошибок!
WoooHaaaa

Ответы:

29

У меня была точно такая же проблема, и мое решение было тем, о чем я никогда не думал. В моем случае rsyncвсе время работало нормально, пока не остановилось во время некоторых тестов после внесения изменений в один из моих сценариев. Виновным было то, что мой в настоящее время зарегистрированный пользователь UNIX находился в несуществующей папке, которая уже была удалена сценарием.

getcwd(): No such file or directory (2)Сообщение об ошибке было связано $PWD, а не источник, а не пункт назначения.

Просто измените папку на существующую (например, cd ~) и перезапустите скрипт. Не забудьте изменить rsyncпути, если они еще не абсолютны.

Рафаэль Бугаевский
источник
2
У меня была очень похожая проблема сегодня при настройке синхронизации между двумя папками и получении этого сообщения. Исходная и целевая папки явно существовали. Я проверил, был ли я в удаленной папке, но это не проблема. Но я был в папке назначения (которая была смонтирована на rclone Google Drive). Я изменил свой рабочий каталог на что-то другое, и синхронизация работала без ошибок.
Inquam