16
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

rsyncとlsyncdでEC2サーバーを同期する

Last updated at Posted at 2015-02-13

ELBでEC2の冗長構成をとるときに、サーバー1→サーバー2に変更が自動反映されるようになります。

実行ユーザー作成

同期先サーバー

rsyncを実行するためのユーザーを作成して、書き込みを許可するためにwwwグループに追加する

# useradd rsync
# usermod -G www rsync 

sudo ができるように/etc/sudoersファイルを変更

# sudo visudo

↓これをrootの同じ設定の下に追加

rsync   ALL=(ALL)   ALL

SSHの設定

同期元サーバ

鍵の作成

ルートで

# ssh-keygen -t rsa

公開鍵の取得(あとで同期先に登録するのでコピっておく)

# cat .ssh/id_rsa.pub

同期先サーバ

さきほど取得した鍵をauthorized_keysに登録(末尾に改行して貼り付け)

# cd /home/rsync
# mkdir .ssh
# cd .ssh
# touch authorized_keys
# vi authorized_keys ←ここで貼り付け 

権限の変更

# chmod 600 authorized_keys
# cd ../
# chmod 700 .ssh

SSHの設定変更。

PubkeyAuthentication yes

SSHの再起動

# /etc/rc.d/init.d/sshd restart

同期元サーバー

接続できるか確認する

# ssh rsync@xxx.xxx.xxx.xxx 

lsyncdの設定

同期元サーバー

lsyncdのインストール

$ sudo yum install --enablerepo=epel lsyncd

lsyncdの設定ファイル

target のとこは同期先のサーバーとディレクトリ

/etc/lsyncd.conf
settings{
        insist = true,
        statusFile = "/tmp/lsyncd.stat",
        logfile = "/var/log/lsyncd/lsyncd.log",
        statusInterval = 1,
}

sync {
   default.rsync,
   source = "/var/www/",
   target = "rsync@xxx.xxx.xxx.xxx:/var/www/",
   rsync = {
      archive = true
   }
}

lsyncdを再起動

# /etc/rc.d/init.d/lsyncd restart

確認

同期元サーバー

$ tail /var/log/lsyncd/lsyncd.log

これで同期元の/var/www以下に変更が生じたら、自動的に同期先に反映されるはず。

16
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?