Rsync Server

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

SSH暗号化でバックアップ

ここでのようのサーバとクライアントにキーを設定する。

その後はサーバではデーモン起動はしないでクライアントから通常ように転送を行う

$ /usr/bin/rsync -avz -e ssh --log-file=/home/okada/script/backup1.log \
/home/okada/rsync_test 49.212.182.196:~/backup1/test/

サーバ側の設定

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

起動が一般ユーザで可能かは不明(rootだけのようだ)

rsyncd.confのuid,gidを一般ユーザにすると、書き込まれたファイルはその権限が与えらえれる

クライアント側

okadaで利用のためokadaのホームディレクトリで

rsync/rsyncd.passファイルを作成

******

サーバ側のrsync/rsyncd.secretsのokadaの(1)のパスワード部のみ記入

rsyncd.passのオーナもrootに変更し、権限もrootだけにする

# chown root.root rsyncd.secrets
# chmod 600 rsyncd.secrets

転送

$ /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は失敗

以下でもOK

`/usr/bin/rsync --port=873 -a --password-\
file=/home/okada/rsync/rsyncd.pass /home/okada/rsync_test\ 
182.236.42.22:nishii2/$filename/

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



添付ファイル: fileqnap_rsync5.png 132件 [詳細] fileqnap_rsync4.png 127件 [詳細] fileqnap_rsync3.png 126件 [詳細] fileqnap_rsync2.png 120件 [詳細] fileqnap_rsync1.png 146件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-08-22 (水) 15:36:38 (2074d)