【コンパイルパッケージ】realsync-0.1-11.el6.src.rpm
inotifywait+rsyncリアルタイム同期のスキームを統合し、重複労働を減らし、初心者の構成の難易度を減らすために、標準的なrpmパッケージにパッケージ化しました.
名前realsyncは、まったくでたらめで、real-time rsyncを意味し、同じように、偶然の一致である.CentOS 6プラットフォームでテストを行い、正常に動作した.
単純な2行構成で、/etc/sysconfig/realsyncの構成ファイルである一方向リアルタイム同期を実現
上記の2つの変数が構成されていない場合は、起動に失敗します.
インストールした後に、デフォルトは機械をスタートさせることに参加して、機械をスタートさせる方法を取り消します
Initスクリプトは4つのパラメータをサポートします.
ネット上の他のチュートリアルとの違い:
1、その他のチュートリアルは一般的にコマンドinotifywait+パイプ+whileサイクルです.
参照先:http://lxw66.blog.51cto.com/5547576/1331048
このように柔軟性に欠けており、サービスのようにいつでも停止したり起動したりすることはできず、醜い.
2、本文の方法
a.inotifywaitにバックグラウンドでモニタリング結果をファイルに書き込む
b、whileループでファイルが空かどうかを監視し、空でない場合はrsyncを実行する
c、ロックファイルが存在しない場合は、ループを停止します.
名前realsyncは、まったくでたらめで、real-time rsyncを意味し、同じように、偶然の一致である.CentOS 6プラットフォームでテストを行い、正常に動作した.
単純な2行構成で、/etc/sysconfig/realsyncの構成ファイルである一方向リアルタイム同期を実現
######################################
# local directory to monitor.
# example: local_dir="/etc/"
local_dir=" "
# remote directory to sync,
# which should be a writable rsync server.
# example: remote_dir="192.168.1.2::data/"
remote_dir=" "
######################################
上記の2つの変数が構成されていない場合は、起動に失敗します.
インストールした後に、デフォルトは機械をスタートさせることに参加して、機械をスタートさせる方法を取り消します
chkconfig realsync off
Initスクリプトは4つのパラメータをサポートします.
service realsync start
service realsync stop
service realsync restart
service realsync status
ネット上の他のチュートリアルとの違い:
1、その他のチュートリアルは一般的にコマンドinotifywait+パイプ+whileサイクルです.
参照先:http://lxw66.blog.51cto.com/5547576/1331048
このように柔軟性に欠けており、サービスのようにいつでも停止したり起動したりすることはできず、醜い.
2、本文の方法
a.inotifywaitにバックグラウンドでモニタリング結果をファイルに書き込む
b、whileループでファイルが空かどうかを監視し、空でない場合はrsyncを実行する
c、ロックファイルが存在しない場合は、ループを停止します.
#!/usr/bin/env bash
set -e
. /etc/sysconfig/realsync
logsize=`/usr/bin/stat -c %s $logfile`
/usr/bin/inotifywait \
-mrqsd \
--timefmt '%d/%m/%y %H:%M' \
--format '%T %w%f%e' \
--event close_write,modify,create,attrib \
--outfile $logfile $local_dir
while [ $logsize -gt "0" ];do
[ -e $lockfile ] || break
sleep 1
/usr/bin/rsync -aqu $local_dir $remote_dir
>$logfile
done&