同期したいServer1
およびServer2
のログをLogServer
に送信します。
ために Server1
:
rsync -avz -e 'ssh -p 2188' user@server1:/usr/local/servers/logs/* /usr/local/logs/
これは機能しますが、Server2
:
rsync -avz -e 'ssh -p 2188' user@server2:/usr/local/servers/logs/* /usr/local/logs/
それは失敗します:
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]
両方とも Server1
およびServer2
は、同じバージョンのrsync
を使用してAmazonでホストされています。
PDATE:試しましたssh -p 2188 user@server2 pwd
、それは動作しません:
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
私はまったく同じ問題を抱えていましたが、私の解決策は私が考えたことのないものでした。私の場合、rsync
は、スクリプトの1つを変更した後、一部のテスト中に停止するまで、常に問題なく動作しました。原因は、現在ログインしているUNIXユーザーが、スクリプトによって既に削除されている存在しないフォルダーにあったことです。
getcwd(): No such file or directory (2)
エラーメッセージは、$PWD
、notソース、and notデスティネーションに関連しています。
フォルダを既存のフォルダ(例:cd ~
)に変更し、スクリプトを再実行してください。絶対パスでない場合は、rsync
パスを変更することを忘れないでください。