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を使用すると実に簡単手軽にファイルの同期をすることが出来るようになります。是非試してみてはいかがでしょうか。
コメントフォーム
トラックバック
最近の記事
- もうすぐ健康診断があるんだ・・・ [2010年09月02日 : 阿部恵]
- Photoshopで壁紙を作りながら、基本的な使い方を覚える [2010年09月01日 : 鴨田健次]
- はじめての共同作業 Canvas編 (node.js + websocket) [2010年09月01日 : 中川善樹]
- 「PHP×Flex(後編)」PHPテクニカルセミナー(無料)第4弾の募集を開始しました!! [2010年08月26日 : 和田記光]
- 【HTML5】Canvasでお絵かきしてみた(前編) [2010年08月25日 : 橋本章史]
- MacにgroongaのMySQL用ストレージエンジン [2010年08月23日 : 笹亀弘]
- Appleのサイトで見たiPhone4をFireworksで描いてみました-1/2 [2010年08月19日 : 和田記光]
- iPad版の会社紹介を作ってみました [2010年08月19日 : 小林有佳]
- iPhoneアプリ開発開始時に気をつけるべきファイルの取り扱い (2) [2010年08月19日 : 亀本大地]
- symfonyセミナー動画無料公開! [2010年08月13日 : 岡本雄樹]



最近のコメント