rsync: getcwd (): Keine solche Datei oder kein solches Verzeichnis (2)

11

Ich möchte synchronisieren Server1und seine Server2Protokolle 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 Server1und Server2wird 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 pwdund 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

Bildschirmfoto

Geben Sie hier die Bildbeschreibung ein

MrROY
quelle
1
Welchen Benutzer verwenden Sie für rsync? Ich habe diesen Fehler gesehen, wenn der aktuelle Benutzer keine Berechtigungen zum Zugriff auf die Verzeichnisstruktur hat.
Sobrique
1
Oder wenn das Home-Verzeichnis des Benutzers nicht auf dem Server vorhanden ist.
Jenny D
Der aktuelle Benutzer hat Leseberechtigung für diese Protokolle und das Ausgangsverzeichnis ist vorhanden.
MrROY
Manuelles SSH in Server2 als Benutzer . Funktioniert das fehlerfrei? Wenn ja, funktioniert ls -R /usr/local/serversfehlerfrei?
Sciurus
1
Ja, es funktioniert ohne Fehler!
MrROY

Antworten:

28

Ich hatte genau das gleiche Problem und an meine Lösung hatte ich nie gedacht. In meinem Fall rsynchat 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, rsyncPfade zu ändern, wenn sie nicht bereits absolut sind.

Rafael Bugajewski
quelle
2
Ich hatte heute ein sehr ähnliches Problem beim Einrichten der Synchronisierung zwischen zwei Ordnern und beim Abrufen dieser Nachricht. Die Quell- und Zielordner waren eindeutig vorhanden. Ich habe überprüft, ob ich mich in einem gelöschten Ordner befunden habe, aber das war nicht das Problem. Aber ich war im Zielordner (der ein von einem Klon gemountetes Google Drive war). Ich habe mein Arbeitsverzeichnis in etwas anderes geändert und die Synchronisierung hat einwandfrei funktioniert, ohne dass ein Fehler aufgetreten ist.
Anfrage