我正在创建一个 cron 作业以保持两个目录同步。我正在使用rsync。我正在运行一个 rsync守护进程。我读了手册,上面写着:
RSYNC_PASSWORD
Setting RSYNC_PASSWORD to the required password allows you to
run authenticated rsync connections to an rsync daemon without
user intervention. Note that this does not supply a password to
a shell transport such as ssh.
USER or LOGNAME
The USER or LOGNAME environment variables are used to determine
the default username sent to an rsync daemon. If neither is
set, the username defaults to 'nobody'
我有类似的东西:
#!/bin/bash
USER=name
RSYNC_PASSWORD=pass
DEST="myhost::mymodule"
/usr/bin/rsync -rltvvv . $DEST
我还尝试导出(危险,我知道)USER 和 RSYNC_PASSWORD。我也尝试过使用 LOGNAME。没有任何效果。我这样做正确吗?
编辑(澄清)
我在 linux 下使用 rsync 版本 2.6.9。
此命令有效:
/usr/bin/rsync -rltvvv . myuser@myhost::mymodule
系统提示我输入密码,当我输入密码时,传输开始。
这是我通过脚本尝试时遇到的错误:
opening tcp connection to myhost port 873
opening connection using --server -vvvltr . mymodule
@ERROR: auth failed on module mymodule
rsync error: error starting client-server protocol (code 5) at main.c(1383) [sender=2.6.9]
_exit_cleanup(code=5, file=main.c, line=1383): about to call exit(5)
您是否尝试过类似的方法:
使用
export RSYNC_PASSWORD=pass
而不是RSYNC_PASSWORD=pass
.试试这个它有效
最后改变端口