是否可以在rsync命令中提供服务器密码?
rsync -zvr source destination password
我正在使用rsync协议在Django中开发一个Web应用程序。我使用表单从用户输入密码。我想在rsync命令本身中使用这样的密码?我该怎么做?我确信有一种方法可以使用stdin,pipe或类似的东西。谢谢
答案 0 :(得分:0)
来自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)。