リアルタイム同期の手順をよく忘れるのでメモ。
同期元でファイルが追加削除された場合は同期先にも追加削除される。
今回は
同期元の
/var/www/html/example.com を
同期先
/var/www/html/vhosts/example.com
に同期することとする
まずは同期先でユーザーを新規作成
# useradd rsync
# usermod -G wheel rsync
# sudo visudo
↓これをrootの同じ設定の下に追加
rsync ALL=(ALL) ALL
同期先
# yum -y install xinetd
# vi /etc/rsyncd.conf
[example.com]
path = /var/www/html/vhosts/example.com # ミラー先ディレクトリ
hosts allow = xxx.xxx.xxx.xxx # 同期元ip
read only = false
# systemctl start xinetd
# systemctl enable xinetd
同期元
# yum install lsyncd
↑epelリポジトリが必要かも
# systemctl enable lsyncd
# vi /etc/lsyncd.conf
settings {
statusFile = "/tmp/lsyncd.stat",
logfile = "/var/log/lsyncd/lsyncd.log",
statusInterval = 1,
}
sync{
default.rsync,
source="/var/www/html/vhosts/example.com/",
target="rsync@同期先ip:/var/www/html/vhosts/example.com/",
exclude={"/local/"},
-- delete=false, 同期先のファイルを削除しない場合、バックアップ的に使う場合はfalseにすると同期先ファイルを削除しても同期先は削除されない
rsync = {
archive = true,
links = true,
update = true,
verbose = false
}
}
同期元で鍵生成
# ssh-keygen -t rsa -N ""
# cat /root/.ssh/id_rsa.pub
表示されたkeyを同期先のauthorized_keysに貼り付ける。
同期先
# cd /home/rsync
# mkdir .ssh
# cd .ssh
# touch authorized_keys
# vi authorized_keys ←ここで貼り付け
# chmod 600 authorized_keys
# cd ../
# chmod 700 .ssh
※作成したユーザーdirの.sshディレクトリ全体の所有者をrsyncにする
# chown -R rsync .ssh
所有者をrsyncにしておかないとsshした時パスワードを聞かれる。
sshdコンフィグの編集
# vi /etc/ssh/sshd_config
PubkeyAuthentication yes #鍵認証を有効にする
sshサーバーを再起動
# systemctl restart sshd
同期先
# vi /etc/hosts.allow
sshd:xxx.xxx.xxx.xxx #同期元追加
ftpd:xxx.xxx.xxx.xxx #同期元追加
同期元
ssh -l rsync 同期先ip
lsyncdを再起動する。
# systemctl restart lsyncd
以上で同期されるはず。