2010/01/13
カテゴリ : Tech
lsyncdでファイルを同期してみよう
こんにちは、熊谷です。
最近、複数のサーバでファイルを同期しなければいけないということがありました。出来るだけ手軽で簡単にそれを行いたいということで、何か良い方法がないものか、聞いたり調べたりしたところ、lsyncdなるものがあるのでそれを使用してみるのも良いのではないかと、アドバイスを受けました。
そんなことで、こちらのサイトを参考に実際に使ってみました。
例として、同期元は192.168.1.10、同期先は192.168.1.20とします。
まずは、同期元(192.168.1.10)にてlsyncdをダウンロードしてきてインストールです。makeするなりパッケージを作るなりしてインストールします。
設定ファイルは/etc/lsyncd.conf.xmlとしてこんな感じで記述しました。
同期先(192.168.1.20)ではrsyncをデーモンとして起動させます。
rsyncの設定ファイルは/etc/rsyncd.confとしてこんな感じで記述しました。
で、同期元である192.168.1.10にてlsyncdを起動すると、その同期元の指定されたディレクトリ内でファイルの書き込みがあるたび192.168.1.20の指定されたディレクトリにファイルがrsyncされていきます。素晴らしい!
ちなみに、lsyncdの起動スクリプトはこんな感じに
このように、lsyncdを使用すると実に簡単手軽にファイルの同期をすることが出来るようになります。是非試してみてはいかがでしょうか。
最近、複数のサーバでファイルを同期しなければいけないということがありました。出来るだけ手軽で簡単にそれを行いたいということで、何か良い方法がないものか、聞いたり調べたりしたところ、lsyncdなるものがあるのでそれを使用してみるのも良いのではないかと、アドバイスを受けました。
そんなことで、こちらのサイトを参考に実際に使ってみました。
例として、同期元は192.168.1.10、同期先は192.168.1.20とします。
まずは、同期元(192.168.1.10)にてlsyncdをダウンロードしてきてインストールです。makeするなりパッケージを作るなりしてインストールします。
設定ファイルは/etc/lsyncd.conf.xmlとしてこんな感じで記述しました。
- <lsyncd
version="1"> <settings> <logfile filename="/var/log/lsyncd.log"/> <binary filename="/usr/bin/rsync"/> <pidfile filename="/var/run/lsyncd.pid"/> <callopts> <option text="-lt%r"/> <exclude-file/> <source/> <destination/> </callopts> </settings> <directory> <source path="/var/www/project/data"/> <target path="192.168.1.20::backup"/> </directory> - </lsyncd>
同期先(192.168.1.20)ではrsyncをデーモンとして起動させます。
rsyncの設定ファイルは/etc/rsyncd.confとしてこんな感じで記述しました。
- uid
= hoge - gid
= developer - log
file = /var/log/rsyncd.log - pid
file = /var/log/rsyncd.pid - [backup]
comment = rsync backup server path = /var/rsync/backup/ hosts allow = 192.168.1.10 read only = false
で、同期元である192.168.1.10にてlsyncdを起動すると、その同期元の指定されたディレクトリ内でファイルの書き込みがあるたび192.168.1.20の指定されたディレクトリにファイルがrsyncされていきます。素晴らしい!
ちなみに、lsyncdの起動スクリプトはこんな感じに
- #!/bin/bash
- DAEMON=/usr/bin/lsyncd
- USER=root
- NAME=lsyncd
- CONF=/etc/lsyncd.conf.xml
- PID=/var/run/lsyncd.pid
- case
"$1" in start) echo -n "Starting lsyncd: " start-stop-daemon --start --quiet --pidfile $PID --user $USER --name $NAME --startas $DAEMON -- --conf=$CONF --pidfile $PID echo "" ;; stop) echo -n "Stopping lsyncd: " start-stop-daemon --stop --quiet --pidfile $PID --user $USER --name $NAME echo "" ;; restart) echo -n "Restarting lsyncd: " start-stop-daemon --stop --quiet --pidfile $PID --user $USER --name $NAME start-stop-daemon --start --quiet --pidfile $PID --user $USER --name $NAME --startas $DAEMON -- --conf=$CONF --pidfile $PID echo "" ;; *) echo "Usage: lsyncd [ start | stop | restart ]" exit 1 - esac
- exit
$?
- #!/bin/bash
- DAEMON=/usr/bin/rsync
- USER=root
- NAME=rsyncd
- PID=/var/log/rsyncd.pid
- case
"$1" in start) echo -n "Starting rsync daemon: " start-stop-daemon --start --quiet --pidfile $PID --user $USER --name $NAME --startas $DAEMON -- --daemon echo "" ;; stop) echo -n "Stopping rsync daemon: " kill -9 `cat $PID` rm -f $PID echo "" ;; restart) echo -n "Restarting rsync daemon: " #start-stop-daemon --stop --quiet --pidfile $PID --user $USER --name $NAME kill -9 `cat $PID` rm -f $PID start-stop-daemon --start --quiet --pidfile $PID --user $USER --name $NAME --startas $DAEMON -- --daemon echo "" ;; *) echo "Usage: rsync [ start | stop | restart ]" exit 1 - esac
- exit
$?
このように、lsyncdを使用すると実に簡単手軽にファイルの同期をすることが出来るようになります。是非試してみてはいかがでしょうか。
トラックバックURI
最近の記事
システム開発エンジニア募集! [2012年02月03日 : 小林有佳]
OpenVPNで細々便利な設定 [2012年01月31日 : 門脇優児]
【iOS】Viewの開発・デバッグに役立つ色々 [2012年01月23日 : 中川善樹]
PHPDocumentorの利用方法まとめ [2012年01月19日 : 笹亀弘]
Google Chart Toolsを使ってサイトマップを描こう! [2011年12月21日 : 志田仁美]
stumpwm設定v2 [2011年12月19日 : 門脇優児]
Mashup Awards 7の授賞式が行われました [2011年12月16日 : 中川善樹]
社員旅行に行きました [2011年12月12日 : 大橋寛子]
iCloud風のアイコンを作成する(Fireworks) [2011年12月07日 : 和田記光]
iScroll4でネイティブに近いスマホ向けHTMLページを作成する [2011年12月02日 : 松田惇]













コメントフォーム