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

Знімок екрана

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


1
Якого користувача ви використовуєте для rsync? Я бачив цю помилку, коли поточний користувач не має дозволу на доступ до структури каталогу.
Sobrique

1
Або коли домашній каталог користувача не існує на сервері.
Jenny D

Поточний користувач прочитав дозвіл на ці журнали, і домашній каталог існує.
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
У мене сьогодні була дуже схожа проблема, коли налаштовували синхронізацію між двома папками та отримували це повідомлення. Папки джерела та місця призначення явно існували. Я перевірив, чи не був у видаленій папці, але це не проблема. Але я був у папці призначення (яка була на Google Drive, встановленому на rclone). Я змінив свій робочий каталог на щось інше, і синхронізація працювала ідеально, не допускаючи помилок.
інкамація
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.