Chcę zsynchronizować Server1
i Server2
dzienniki 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 Server1
i Server2
jest 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 pwd
i 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
ls -R /usr/local/servers
działa bez żadnych błędów?Odpowiedzi:
Miałem dokładnie ten sam problem, a moje rozwiązanie było czymś, o czym nigdy nie myślałem. W moim przypadku
rsync
dział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.źródło