5

I'm trying to do an rsync backup from dreamhost to another host, here's the command i'd like to use:

nohup rsync -e "/usr/bin/ssh" --bwlimit=2000 -av username@server.dreamhost.com:remote_directory local_directory&

I'd like the process to keep running in the background and even when I disconnect. Problem is, I don't know how to put in the password when it's a background process. How do I do this?

4

2 回答 2

8

通常这是通过根本不需要密码来完成的。相反,请考虑将 SSH 配置为使用公钥。有几种在线资源(例如来自 dreamhost的资源)可以帮助您做到这一点。

于 2013-07-31T03:45:15.457 回答
7

我会用钥匙。如果您需要使用密码保护密钥,或者由于任何原因无法使用密钥,请使用 expect 来传递密码:

rsync_auto.sh:

#/bin/bash

expect <<<EOF
spawn nohup rsync -e "/usr/bin/ssh" --bwlimit=2000 -av username@server.dreamhost.com:remote_directory
expect "password:"
send "your_password\r"
expect eof
EOF

!!!确保除了你之外没有人可以访问该文件!!!:

chmod 500 rsync_auto.sh

更详细的方法可能是将密码存储在密钥环应用程序中,例如 gnome-keyring,而不是将它们存储在普通文件中。如果你有兴趣,我已经找到了这篇文章。

于 2013-07-31T03:46:17.757 回答