Bash
腳本中 rsync 的使用者名和密碼
我正在創建一個 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)
您是否嘗試過類似的方法:
rsync -rltvvv --password-file=/root/secret . user@host::dest
使用
export RSYNC_PASSWORD=pass
而不是RSYNC_PASSWORD=pass
.