【Coreserver】サーバー間をrsyncで同期を取る方法

rsyncコマンドを使うとサーバー間の同期を取ることが可能です。Coreserver間でこのrsyncを使って同期をとる方法です.

Initializing...

Coreserverサーバー間コピーメニュー

ValudeDomainのCoreserverは、標準で”サーバー間コピー”という機能で2つのサーバーで同期を取る方法があります。CoreServerは多数のサーバーを用意しており、もし自分のサイトを運営しているサーバーの負荷が高くて遅い場合や、試験的に移設したい場合にも別のサーバーを一時的に借りて、状況を試してみることが可能です。このような場合を想定して、サーバー間コピーという機能を用意しているのでしょう。

サーバー間コピーメニュー

rsyncで同期をとる方法

例えばステージングサーバーから本番用のサーバーに同期を取るような場合には、2つのサイトの同期をとる必要がありますね。そんな時は前述したサーバー間コピーを使う事も可能ですが、より細かな同期方法を指定したい場合に、rsyncコマンドを利用するのがおすすめです。rsyncコマンドは追加や更新したファイルのみを対象にできるのでより高速な処理が可能です。テーマフォルダーのみ同期を取りたい、プラグインのみ同期を取りたい、画像フォルダーのみ同期を取りたい等細かな指定も可能です。

サーバー同期図

サーバー同期図

rsyncコマンドの用法

rsyncはサーバー間でバックアップ同期するコマンドで、追加・更新されたファイルを同期する事が出来ます。オプションを指定することでssh接続指定をすることもでき、用法は次の図にまとめたとおり。

rsync_command

rsyncコマンド用法の解説図

同期の例

ローカルサーバーのユーザをaaa,リモートサーバーのユーザーをbbbとした場合で、Coreserver間の場合は特にsshを指定する必要はありません

プラグインの同期を取る場合のコマンド

Coreserverでrsyncコマンドを使用する例をいくつか示します。

ローカルサーバーのプラグインフォルダーは/(スラッシュ)で終わっているので、プラグインフォルダーの配下を対象としている。

rsync -auvz --delete /virtual/aaa/public_html/example.com/wp/wp-content/plugins/ [email protected]:/virtual/bbb/public_html/target.com/wp/wp-content/plugins

テーマフォルダーの同期をとる場合

rsync -auvz --delete /virtual/aaa/public_html/example.com/wp/wp-content/themes/ [email protected]:/virtual/bbb/public_html/target.com/wp/wp-content/themes

メディアフォルダー(当月)の同期をとる場合

rsync -auvz --delete /virtual/aaa/public_html/example.com/wp/wp-content/uploads/2017/03/ [email protected]:/virtual/bbb/public_html/target.com/wp/wp-content/uploads/2017/03

 

 

公開鍵を使う場合

rsyncでは公開鍵を使用してSSH接続も可能です。SSHポートは-eオプションで”ssh -p 22″のようにポートを指定しましたが、公開鍵ファイルは同様に”ssh -i ~/keyfile”のように指定します。当然sshポートと公開鍵を同時に指定することもでき、この場合は

-e 'ssh -p 22 -i ~/keyile'

のように指定します。

公開鍵の権限エラー

公開鍵を使用する場合、サーバーのどこかにFTPでアップしていると思いますが、以下のように権限エラーが発生する場合があります。

The authenticity of host ‘[svxxxx.xserver.jp]:10022 ([183.xx.xxx.xx]:10022)’ can’t be established.
ECDSA key fingerprint is SHA256:x4ULKZdZrM3Sela3HqfBJCmf8rV18XI6egI1V/CmHVw.
Are you sure you want to continue connecting (yes/no)? y
Please type ‘yes’ or ‘no’: yes
Warning: Permanently added ‘[svxxx.xserver.jp]:10022,[183.xx.xxx.xx]:10022’ (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for ‘/virtual/xxxxxx/keyfile’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key “/virtual/xxxxxx/keyfile”: bad permissions
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]

キーファイルのパーミッションエラー(権限エラー)が発生しています。通常他ユーザでも読み取り可能なようにパーミッションは644に指定しますが、キーファイルのパーミッションは600に指定しなければならないようです。コマンドラインから入力するには以下のとおり。FTPソフトで簡単にちょこちょこと修正した方が早い!

>chmod 600 /vitual/xxxxx/keyfile

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

スポンサーリンク
ページ上部へ戻る