2

是否可以在 rsync 命令中提供服务器密码?

rsync -zvr source destination password

我正在使用 rsync 协议在 Django 中开发一个 Web 应用程序。我使用表单从用户那里获取密码输入。我想在 rsync 命令本身中使用这样的密码吗?我该怎么做?我确信有一种方法可以使用标准输入、管道或类似的东西。谢谢

4

1 回答 1

1

来自man rsync

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

关于--password-file

此选项允许您在文件中提供密码以访问远程 rsync 守护程序。请注意,此选项仅在使用内置传输访问 rsync 守护程序时有用,而不是在使用远程 shell 作为传输时。该文件不能是世界可读的。它应该只包含密码作为单行。

因此,要么RSYNC_PASSWORD在调用之前设置环境变量rsync,要么使用临时文件并将其传递给命令;第一个选项可能更容易,使用env

env RSYNC_PASSWORD=PASSWORD rsync -zvr source destination

更新:请注意下面的这个小块--password-file

请注意,此选项仅在使用内置传输访问 rsync 守护程序时有用,而不是在使用远程 shell 作为传输时。

如果您不使用rsync内置传输,但可能使用 SSH,则不能使用此方法“自动”进行身份验证。如果您使用 SSH,您应该使用公钥/私钥,或者可能是ASK_SSHPASS技巧(请参阅this)。

于 2012-11-22T10:10:02.377 回答