rsync: getcwd (): Brak takiego pliku lub katalogu (2)

11

Chcę zsynchronizować Server1i Server2dzienniki LogServer.

Dla Server1:

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

Ten działa, ale dla Server2:

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

To nie wyszło:

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]

Zarówno Server1i Server2jest utrzymywana na Amazon z tej samej wersji rsync.

Jestem całkiem pewien, że każdy katalog w poleceniu istnieje. Jak mogę rozwiązać ten problem?

AKTUALIZACJA: Próbowałem ssh -p 2188 user@server2 pwdi to nie działa:

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

Zrzut ekranu

wprowadź opis zdjęcia tutaj

WoooHaaaa
źródło
1
Jakiego użytkownika używasz do rsync? Widziałem ten błąd, gdy bieżący użytkownik nie ma uprawnień dostępu do struktury katalogów.
Sobrique
1
Lub gdy katalog domowy użytkownika nie istnieje na serwerze.
Jenny D.
Bieżący użytkownik ma uprawnienia do odczytu tych dzienników i istnieje katalog domowy.
WoooHaaaa
Ręcznie SSH na serwerze 2 jako użytkownik . Czy to działa bez żadnych błędów? Jeśli tak, to czy ls -R /usr/local/serversdziała bez żadnych błędów?
sciurus
1
Tak, działa bez żadnych błędów!
WoooHaaaa

Odpowiedzi:

29

Miałem dokładnie ten sam problem, a moje rozwiązanie było czymś, o czym nigdy nie myślałem. W moim przypadku rsyncdziałało dobrze przez cały czas, aż zatrzymało się podczas niektórych testów po zmianach w jednym z moich skryptów. Winowajcą było to, że mój aktualnie zalogowany użytkownik UNIX był w nieistniejącym folderze, który został już usunięty przez skrypt.

getcwd(): No such file or directory (2)Komunikat o błędzie związane $PWD, a nie źródła, a nie miejsca docelowego.

Wystarczy zmienić folder na istniejący (np. cd ~) I ponownie uruchomić skrypt. Nie zapomnij zmienić rsyncścieżek, jeśli nie są one już absolutne.

Rafael Bugajewski
źródło
2
Miałem dzisiaj bardzo podobny problem podczas konfigurowania synchronizacji między dwoma folderami i otrzymywania tej wiadomości. Foldery źródłowy i docelowy wyraźnie istniały. Sprawdziłem, czy mogłem być w usuniętym folderze, ale nie o to chodziło. Ale byłem w folderze docelowym (który był dyskiem Google zamontowanym w rclone). Zmieniłem mój katalog roboczy na coś innego i synchronizacja działała idealnie, nie dając błędu.
zapytanie