rsync: getcwd (): Aucun fichier ou répertoire de ce type (2)

11

Je veux synchroniser Server1et Server2les journaux de LogServer.

Pour Server1:

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

Celui-ci fonctionne, mais pour Server2:

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

Il échoue:

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]

Les deux Server1et Server2est hébergé sur Amazon avec la même version de rsync.

Je suis sûr que chaque répertoire de la commande existe. Comment puis-je résoudre ce problème?

MISE À JOUR: J'ai essayé ssh -p 2188 user@server2 pwd, et cela ne fonctionne pas:

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

Capture d'écran

entrez la description de l'image ici

WoooHaaaa
la source
1
Quel utilisateur utilisez-vous pour rsync? J'ai vu cette erreur lorsque l'utilisateur actuel n'a pas l'autorisation d'accéder à la structure du répertoire.
Sobrique
1
Ou lorsque le répertoire personnel de l'utilisateur n'existe pas sur le serveur.
Jenny D
L'utilisateur actuel a une autorisation de lecture sur ces journaux et le répertoire de base existe.
WoooHaaaa
SSH manuellement dans server2 en tant qu'utilisateur . Est-ce que cela fonctionne sans erreur? Si oui, ls -R /usr/local/serversfonctionne sans erreur?
sciurus
1
Oui, cela fonctionne sans aucune erreur!
WoooHaaaa

Réponses:

29

J'avais exactement le même problème, et ma solution était quelque chose à laquelle je n'avais jamais pensé. Dans mon cas, cela rsynca bien fonctionné tout le temps jusqu'à ce qu'il s'arrête pendant certains tests après des modifications apportées à l'un de mes scripts. Le coupable était que mon utilisateur UNIX actuellement connecté se trouvait dans un dossier inexistant déjà supprimé par un script.

Le getcwd(): No such file or directory (2)message d'erreur est liée à $PWD, non la source, et non la destination.

Remplacez simplement le dossier par un dossier existant (par exemple cd ~) et réexécutez le script. N'oubliez pas de modifier les rsyncchemins s'ils ne sont pas déjà absolus.

Rafael Bugajewski
la source
2
J'ai eu un problème très similaire aujourd'hui lors de la configuration de la synchronisation entre deux dossiers et de l'obtention de ce message. Les dossiers source et de destination existaient clairement. J'ai vérifié si je pouvais être dans un dossier supprimé mais ce n'était pas le problème. Mais j'étais dans le dossier de destination (qui était un Google Drive monté sur rclone). J'ai changé mon répertoire de travail en quelque chose d'autre et la synchronisation a parfaitement fonctionné sans donner d'erreur.
enquête