複数サーバーでデータを同期する方法
January 06, 2014
ウェブサーバーを複数台運用している場合、sitemap.xmlなどのデータを全ウェブサーバーで共有したい場合があります。
解決方法としては
-
rsyncでファイルを定期的に転送
-
NFS
とありますが、ちょっとしたファイル程度ならrsyncでデータを転送してしまうのが簡単です。
指定フォルダをリモートサーバーの特定の場所と同期する
下記を実行するとローカルの/var/www/html/sitemapにあるデータをリモート先(hoge@192.168.xxx.xxx)の/var/www/htmlにデータを再起的にパーミッション、オーナー、タイムスタンプを維持して転送します。また—deleteを指定する事でローカルのsitemap内のファイルが削除された場合、リモート先でも自動的に削除され完全に同期する事が出来ます。
rsync -av —delete /var/www/html/sitemap hoge@192.168.xxx.xxx:/var/www/html
リモート先sshのポート番号を指定して同期する
rsync -av —delete -e “ssh -p 10022” /var/www/html/sitemap hoge@192.168.xxx.xxx:/var/www/html
上記コマンドをシェルスクリプトにし、cronで定期的に実行する事でデータを同期する事が出来ます。