Rsync Server

更新日2012-08-22 (水) 15:36:38

サーバ側の設定

サーバマシン側で (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/

php & shellで自動転送

エラーを判断し、メールも検討

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 $?");

?>

クライアントをQNAPに設定

qnap_rsync1.png

qnap_rsync2.png

qnap_rsync3.png

qnap_rsync4.png

qnap_rsync5.png


元ページ

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS