こんにちは! JQです。
前回は『EC2編~sudo権限~』 ということで、ec2-userのsudo権限を制限してみました。
今回は『EC2編~lsyncdでリアルタイムにファイル同期①~』と題して、lsyncdを利用してフォルダ間の自動同期処理してみたいと思います。
インストール
1.lsyncdのインストール
先ずはインストールを行います。
EPELリポジトリを利用してインストールします。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo yum install --enablerepo=epel lsyncd Loaded plugins: priorities, update-motd, upgrade-helper amzn-main/latest | 2.1 kB 00:00 amzn-updates/latest | 2.3 kB 00:00 epel/x86_64/metalink | 6.6 kB 00:00 epel/x86_64 | 4.2 kB 00:00 epel/x86_64/group_gz | 237 kB 00:00 epel/x86_64/updateinfo | 724 kB 00:00 epel/x86_64/primary_db | 5.7 MB 00:01 epel/x86_64/pkgtags | 745 kB 00:00 643 packages excluded due to repository priority ------ |
2.設定ファイルの編集
先ずはテスト用のディレクトリを作成します。
1 2 |
$ sudo mkdir /test $ sudo mkdir /usr/local/test |
続いて設定ファイルの編集を行います。
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo vim /etc/lsyncd.conf settings{ statusFile = "/tmp/lsyncd.stat", logfile = "/var/log/lsyncd/lsyncd.log", } sync { default.rsync, source = "/usr/local/test/", target = "/test/" } |
サービスを起動します。
1 2 |
$ sudo /etc/rc.d/init.d/lsyncd start $ sudo chkconfig lsyncd on |
3.確認
それでは実際に試してみます。
先ずはフォルダが空なのを確認します。
1 2 |
$ ls /test/ $ ls /usr/local/test/ |
ログも確認してみます。
1 2 3 |
$ tail /var/log/lsyncd/lsyncd.log Wed Dec 18 11:04:07 2013 Normal: recursive startup rsync: /usr/local/test/ -> /test/ Wed Dec 18 11:04:07 2013 Normal: Startup of "/usr/local/test/" finished. |
ファイルを作成してみます。
1 2 3 |
$ sudo touch /usr/local/test/test.txt $ ls /usr/local/test/ test.txt |
同期先を確認してみます。
1 2 |
$ ls /test/ test.txt |
ログを確認してみましょう。
1 2 3 4 5 6 |
$ tail /var/log/lsyncd/lsyncd.log Wed Dec 18 11:04:07 2013 Normal: recursive startup rsync: /usr/local/test/ -> /test/ Wed Dec 18 11:04:07 2013 Normal: Startup of "/usr/local/test/" finished. Wed Dec 18 11:05:04 2013 Normal: Calling rsync with filter-list of new/modified files/dirs /test.txt / |
ファイルが作成された事を検知して同期されています!
いかがでしたでしょうか?
次回は『EC2編~lsyncdでリアルタイムにファイル同期②~』と題しまして、lsyncdを利用して別サーバ間で自動同期処理してみたいと思います。
お楽しみに!