-2

我想将一些文件从远程服务器同步到本地系统。因为文件很大,可能会持续几个小时,所以我想以 nohup 运行它:

nohup rsync -r <user>@<remote>:<dir> <local-dir> &

问题是它提示输入远程服务器的密码,但是在我输入密码后,bash只是说

-bash: mypassword: command not found

我也尝试过 --password-file 选项,但似乎 --password-file 不适用于 SSH 帐户,而是用于 rsync 服务。

有人可以告诉我如何在保留 nohup 的同时自动输入密码。

4

2 回答 2

2

您不想为这种用例输入密码。ssh-keygen -f ~/.ssh/id_rsa_that_key但是您可以使用受密码保护的 ssh 密钥 ( ),并将ssh-add ~/.ssh/id_rsa_that_key该密码保存在缓存中。事实上,它与程序员无关......

于 2012-05-21T10:26:29.563 回答
0

从手册页:

远程守护程序上的某些模块可能需要身份验证。如果是这样,您将在连接时收到密码提示。您可以通过将环境变量 RSYNC_PASSWORD 设置为您要使用的密码或使用 --password-file 选项来避免密码提示。这在编写 rsync 脚本时可能很有用。

警告:在某些系统上,所有用户都可以看到环境变量。建议在那些使用 --password-file 的系统上。

在我看来,您的错误是因为您将密码分配给一个变量,并且它被您的 bash 脚本解释为命令。

尝试设置上述环境变量,从 bash 脚本中删除“mypassword”,然后再试一次!

于 2012-05-21T10:35:04.030 回答