我想将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
托管在 Amazon 上,且使用相同版本的rsync
。
我确信命令中的每个目录都存在。我该如何解决这个问题?
更新:我已经尝试过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
截屏
答案1
末日审判
我当前登录的 UNIX 用户位于一个不存在的文件夹中。
细节
我遇到了完全相同的问题,而我的解决方案是我从未想过的。在我的案例中,它rsync
一直运行良好,直到在更改我的一个脚本后,在一些测试中停止运行。罪魁祸首是我当前登录的 UNIX 用户位于一个不存在的文件夹中,该文件夹已被脚本删除。
该getcwd(): No such file or directory (2)
错误信息与以下相关$PWD
:不是来源,并不是目的地。
只需将文件夹更改为现有文件夹(例如cd ~
)并重新运行脚本即可。rsync
如果路径还不是绝对路径,请不要忘记更改路径。