サーバマシン側で (rsyncというユーザを作成 Linux上のパスワードの設定は不要)
rsyncの権限でサーバを起動
rsyncd.conf ファイルを作成
rsyncというユーザのカレントディレクトリに
rsyncd.confを作成
log file=/home/rsync/rsyncd.log uid=root gid=root [rsync] <=module名 path=/home/rsync/test <=moduleの実際のパス。この場所がクライアント側の/rsyncになる comment=rsync area lock file=/home/rsync/rsyncd.lock read only=no use chroot=no auth users=rsync, okada secrets file=/home/rsync/rsync/rsyncd.secrets strict modes=true list=true [rsync2] path=/home/rsync/test2 comment=rsync2 area lock file=/home/rsync/rsyncd.lock read only=no use chroot=no auth users=rsync, okada <=使用許可ユーザ secrets file=/home/rsync/rsync/rsyncd.secrets strict modes=true list=true
上の例はmoduleが2つ
rsync/rsyncd.secretsファイルを作成 rsyncサーバ用のユーザ名とパスワードを設定する。
rsync:******* okada:******** (1)
必ず以下が必要
$ chmod 600 rsync/rsyncd.secrets
$ su # rsync --daemon --config=/home/rsync/rsyncd.conf --port=873
起動が一般ユーザで可能かは不明
okadaで利用のためokadaのホームディレクトリで
rsync/rsyncd.passファイルを作成
******
サーバ側のrsync/rsyncd.secretsのokadaの(1)のパスワード部のみ記入
転送
$ /usr/bin/rsync --port=873 -a --password-file=rsync/rsyncd.pass ./rsync_test rsync://okada@182.236.42.22/rsync2/
エラーを判断し、メールも検討
rsync.sh
#! /bin/bash
filename=fname`date +%Y%m%d%H%M`
if `/usr/bin/rsync --port=873 -a --password-\
file=/home/okada/rsync/rsyncd.pass /home/okada/rsync_test\
rsync://okada@182.236.42.22/nishii2/$filename/ > /dev/null 2>&1` ; then
echo 0
else
echo 1
fi
rsync.shの実行結果で判断する 0は成功 1は失敗
rsync.php
<?php
$cmd = "/home/okada/script/rsync.sh";
$ret = exec($cmd);
// echo "$ret \n";
if($ret == 0){
echo "メール送信 \n";
}else{
echo "エラーメール送信 \n";
}
// exec("echo $?");
?>