2つのディレクトリを同期させるcronジョブを作成しています。私はrsyncを使用しています。私はrsync daemonを実行しています。私はマニュアルを読み、それは言う:
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も試してみました。何も機能しません。私はこれを正しく行っていますか?
[〜#〜] edit [〜#〜](説明のため)
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
。