xserverをrsyncで同期する方法

xserverをメインとして使っているブロガーはたくさんいると思いますが、少し高価なので筆者はステージングサーバーとして、coreserverも使っています。本記事では、このxserverとcoreserverをrsyncで同期する方法を扱っています。

rsyncでサーバーを同期する
rsyncでサーバーを同期

xserverとcoreserverで同期をする場合の方法を説明


Initializing...

rsyncは、サーバー間で同期するためのLinuxコマンドです。今回のような本番前の直前環境(ステージング環境)を同期するために使いたい。ただxserverやcoreserverの癖のようなもので少々苦労してしまいました。同様の問題を抱えている読者諸氏のためにその方法を記載しました。少しでもお役に立てればと思います.

環境の説明

  • 公開鍵と秘密鍵の準備
  • SSH接続の設定
  • rsync接続

公開鍵と秘密鍵の作成

今回必要な認証方式として、公開鍵方式を使っています。これは公開鍵と秘密鍵のペアを作成して、安全にサーバーに接続するために採用します。

公開鍵は認証するサーバー上に配置し、秘密鍵は接続ユーザー側で使用します。このペアは、Linuxサーバー上でssh-keygenコマンドを使って作成します。

まず、次にようにコマンドを打ち込んでください。

ssh-keygen -t rsa -f id_rsa

実行結果は以下のようになります。ファイル名は、簡易的にtmp_rsaとして作成しました。カレントディレクトリに、tmp_rsaとtmp_rsa.pubのペアが出来ますが、tmp_rsaが秘密鍵でtmp_rsa.pubが公開鍵になります。

画像を拡大表示する

公開鍵方式でもパスワードを入力が必要ですが、上記のように作成中に要求されるパスワードフレーズを何も入力しないと、公開鍵だけで認証が完了します。Cronで実行するような場合は、パスワード入力出来ませんので公開鍵だけの認証の方が良いでしょう。

xserverは、パスワードなしの公開鍵は作れないとの噂がありますが、そんなことはありません。上記の方法でパスワードなしの公開鍵が作れます

SSH接続の設定

公開鍵をサーバーに配置

上記の例で作成した公開鍵”tmp_rsa.pub”は、認証するサーバーのルートにある.sshフォルダーのauthorized_keysにコピーします。もし既にauthorized_keysがある場合は、下記のようにして追加し、既存の設定を上書きしないようにしてください

cat tmp_rsa.pub >> authorized_keys

※たぶん、ほとんどの場合は大丈夫だと思いますが、既存の設定との間に空行を1行設けてください。

ssh接続の確認

無事接続できるかどうかは、sshコマンドで確認することが出来ます。まず、上記の秘密鍵を手元にダウンロードしておいてください。

下記のコマンドを接続する端末に入力してください。

ssh -p 10022 -i rsa_tmp [email protected]

説明)

-p : 使用するsshポートを指定します。xserverのsshポートは10022なのでこのように指定します。
-i : 作成した秘密鍵(公開鍵ではない)を指定します。
userid : ログインするユーザーアカウントを指定します
sv9999.xserver.jp:認証するxserverのサーバー名を指定します。

※サーバー指定は、上記のようにユーザーアカウントとサーバー名を@でつないで指定します。

-iパラメータで指定する秘密鍵ファイルを、公開鍵ファイルとしているブログが見受けられますが、接続する側で使うファイルは、秘密鍵の方です。間違わないように注意してください。

“WARNING: UNPROTECTED PRIVATE KEY FILE!”というエラーが発生する場合

上記のエラーは、秘密鍵ファイルのパーミッションを設定していない場合に発生します。この場合は以下のコマンドで適切なパーミッションを設定してください。

chmod 600 tmp_rsa

rsync接続

ここまで順調であれば、もう既にrsyncコマンドはつかえる状態です。

rsyncコマンド概要は

rsync -auvz -delete -e ‘ssh -p 10022 -i tmp_rsa’ (送信フォルダ) (受信フォルダ)

※送信フォルダ、受信フォルダともローカルでも他サーバーのどちらでも構いません。ただし、間違って指定すると全部ファイルを失う結果にもなりますので、慎重に設定してください。

なお、rsyncコマンドについては以下の記事を参考にされると良いかと思います.

今回紹介したのは、coreserverからxserverへssh接続する場合です。この逆の場合は不可です。それはcoreserverのssh接続は限定した端末からしか接続出来ないからです。ご注意を!

以上

当記事に関心にある人向けの記事は

コメント

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

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

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