忽略安全问题,我有以下脚本可以将我的音乐库从我的 MacBook Pro(运行 Snow Leopard)同步到我网络上的文件存储(CentOS 4):
rsync -rav --progress --partial -e "ssh" ~/Music/iTunes/* user@scramasax:~/music/iTunes-scissor:~
当我尝试使用命令行 ()、密码文件 ( --password-file
) 或环境变量中提供的密码时RSYNC_PASSWORD
,登录仍然处于交互状态,需要我再次输入密码。
我将在我的网络上转移到预共享密钥,但是在不可能的情况下,例如rsync
将文件发送到网络服务器,能够成功地将密码嵌入脚本将非常有帮助。
答案1
请注意这些部分来自man rsync
不得不说ssh
。您可能必须设置密钥文件。
--password-file
此选项允许您在文件中提供用于访问 rsync 守护进程的密码。该文件不得是所有人可读的。它应该只包含一行密码。
This option does not supply a password to a remote shell trans‐
port such as ssh; to learn how to do that, consult the remote
shell's documentation. When accessing an rsync daemon using a
remote shell as the transport, this option only comes into
effect after the remote shell finishes its authentication (i.e.
if you have also specified a password in the daemon's config
file).
RSYNC_PASSWORD
将 RSYNC_PASSWORD 设置为所需的密码,这样您就可以运行经过身份验证的 rsync 连接到 rsync 守护进程而无需用户干预。请注意,这不会向远程 shell 传输(如 ssh)提供密码;要了解如何做到这一点,请查阅远程 shell 的文档。