サーバマシン側で (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 $?"); ?>