Ich möchte synchronisieren Server1
und seine Server2
Protokolle mit LogServer
.
Für Server1
:
rsync -avz -e 'ssh -p 2188' user@server1:/usr/local/servers/logs/* /usr/local/logs/
Dieser funktioniert, aber für Server2
:
rsync -avz -e 'ssh -p 2188' user@server2:/usr/local/servers/logs/* /usr/local/logs/
Es schlägt fehl:
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]
Beide Server1
und Server2
wird auf Amazon mit der gleichen Version von gehostet rsync
.
Ich bin mir ziemlich sicher, dass jedes Verzeichnis im Befehl existiert. Wie kann ich dieses Problem lösen?
UPDATE: Ich habe es versucht ssh -p 2188 user@server2 pwd
und es funktioniert nicht:
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
fehlerfrei?Antworten:
Ich hatte genau das gleiche Problem und an meine Lösung hatte ich nie gedacht. In meinem Fall
rsync
hat es die ganze Zeit gut funktioniert, bis es während einiger Tests nach Änderungen an einem meiner Skripte gestoppt wurde. Der Schuldige war, dass sich mein aktuell angemeldeter UNIX-Benutzer in einem nicht vorhandenen Ordner befand, der bereits von einem Skript gelöscht wurde.Die
getcwd(): No such file or directory (2)
Fehlermeldung wurde im Zusammenhang$PWD
, nicht die Quelle, und nicht das Ziel.Ändern Sie einfach den Ordner in einen vorhandenen (z. B.
cd ~
) und führen Sie das Skript erneut aus. Vergessen Sie nicht,rsync
Pfade zu ändern, wenn sie nicht bereits absolut sind.quelle