linux +自动rsync命令

我的目标是从10.10.10.1复制/ tmp / my_file到我的Linux机器没有login名和密码,我设置密码文件与正确的密码 – secret123所以rsync应该工作,请咨询为什么我得到权限被拒绝。

备注 – 10.10.10.1地址是linux机器版 – 红帽5.3

rsync -WavH --password-file=/tmp/passwords --progress [email protected]:/tmp/my_file . Permission denied. rsync: connection unexpectedly closed (0 bytes read so far) rsync error: error in rsync protocol data stream (code 12) at io.c(165) more /tmp/passwords secret123 ls -ltr passwords -rwxr-xr-x 1 root root 10 Sep 12 17:32 passwords 

看起来你可能正在使用SSH连接到根。 SSH通常不允许login到root,许多发行版根本不允许rootlogin。 使用SSH授权密钥可以更好地使您能够以root身份进行连接。

如果可以,最好连接到root以外的帐户。

如果你想在远端使用rsync deamon,我相信在服务器规范之后你需要两个冒号。 Rsync用户标识符与系统用户标识符不一样。 访问由rsyncconfiguration文件控制。

编辑:如果你在10.10.10.1上使用rsyncd deamon,那么这些应该工作。 (注:我改变了用户ID,尽量避免使用root。)我还假设你有一个映射到/tmptmp模块。

 rsync -WavH --password-file=/tmp/passwords --progress [email protected]::tmp/my_file . rsync -WavH --password-file=/tmp/passwords --progress rsyncd://[email protected]:tmp/my_file . 

validation您可以使用命令telnet 10.10.10.1 873连接到守护进程,它应该返回一个RSYNC版本。 你也可以用命令rsync 10.10.10.1::使用rsync进行testing,该命令应该返回一个公共共享列表。 将您的用户标识和密码文件添加到该命令以获得私人共享。

如果,看起来你正在使用ssh,请使用私钥。 你可以使用ssh-agentssh-add来加载密钥,所以你不需要input密码。 除非必须,否则不要使用root。 最好是使用不同的组来访问文件,并设置一个访问该组的用户ID。

你可以用sshtestingssh的访问权限。 如果文件在复制时总是新的,那么scp会比rsync简单。

尝试testing访问没有复制选项。 像这样的东西应该工作:

 rsync -vvv --password-file=/tmp/passwords [email protected]::tmp/my_file 

编辑2:我重新读取您的查询。 看起来你想复制一个单一的文件没有login。 最简单的方法是使用scp和远程系统上的授权密钥文件。 很less的文件只能被root用户读取,所以你应该可以使用不同的用户ID。 试试像这样的命令:

 scp [email protected]:/tmp/my_file . 

使用rsync的唯一好处是避免复制文件,如果它没有被replace。 因为您使用-W选项,所以您将失去仅传输更改的优势。 对于日志文件,– --append选项可以有助于加速传输。

– 密码文件选项只能在连接到rsync服务器时使用。

你必须使用密钥authentication的ssh使用rsync才能正常工作。

-password-file此选项允许您在文件中提供密码以访问rsync守护进程。

来自: rsync手册页

最简单的方法是设置SSH密钥并使用它们build立您的rsync连接。