yasusshとrsyncを使ってWordPressサーバーの同期ラズパイでサーバーを運営していると、データのバックアップは必須です。不慮の事故でマイクロSDが壊れることは十分に想定できます。いうことは、ある日突然やってくるものです。今まで作成したコンテンツを全て失ってしまうことになります・・・悲劇です・・・立ち直れません。いうことで、そのような事態を避けるために、2台のWordPressサーバーを使って、データの同期をとるやり方を紹介します。WordPressデータの同期には、以下の2つの同期が必要です。今回は、「ssh+rsync」を使うことで、安全かつ高速にWordpress同期をとります。サーバー(メイン側)が稼働中のサーバで、障害発生時に置き換わるサーバーをサーバー(サブ側)として説明します。以降の説明では、サーバー(メイン側)をメイン側、サーバー(サブ側)をサブ側と呼びます。WordPressディレクトリ全体の同期を行います。サーバー(サブ側)でssh接続用の鍵を生成サーバー(メイン側)で公開鍵を設定syncコマンドで同期では、さっそく設定してみましょう。1.サーバー(サブ側)でssh接続用の鍵を生成サブ側からメイン側にsshで接続するための鍵を生成します。サブ側で秘密鍵と公開鍵を生成して、メイン側に公開鍵を転送します。ここはサブ側での作業です。ssh-keygenコマンドで鍵を生成します。スクリプト処理を行うため、秘密鍵にアクセスするためのパスフレーズはなし(空白)で生成します。※パスフレーズとは秘密鍵にアクセスするためのパスワードです。鍵を生成するコマンドは以下です。again:空白でEnter実行すると、ホームの.sshディレクトリ配下に、秘密鍵「id_rsa」と公開鍵「id_rsa.pub」が生成されます。生成した公開鍵「id_rsa.pub」を、scpコマンドでメイン側に転送します。以下のコマンドで転送します。[メイン側のユーザー名]@[メイン側のホスト名]:[メイン側の保存先パス]2.サーバー(メイン側)で公開鍵を設定ここからはメイン側での作業です。サブ側から転送した公開鍵を登録します。以下は、サブ側から転送した公開鍵が「~/.ssh/id_rsa.pub」の場合の例です。登録する公開鍵:id_rsa.pub公開鍵を登録するファイル:authorized_keys次に、公開鍵が正しく登録されていることを確認します。サブ側からメイン側にsshコマンドを使って接続します。[秘密鍵]無事に接続できることが確認できればOKです。3.rsyncコマンドで同期ssh接続する準備が整ったので、rsyncコマンドを使ってWordpressデーターの同期を行います。以下のコマンドを実行します。※事前に–dry-runオプションをつけて確認してから実行した方が良いです。–deleteオプションを間違うと意図しないファイルが削除されていまうのでご注意ください。/var/www/wordpress/<rsyncコマンドのオプション指定>-aタイプスタンプや、パーミッションを保持してコピー-vコピーの進捗状況を表示してくれる。rsyncコマンドを実行すると、WordPressディレクトリ全体の同期が行われます。rsyncコマンドで実行している点です。しないと、パーミッションの引継ぎがうまくいかないケースがありました。1回目は全てコピーするので時間がかかりますが、2回目以降は差分コピーなのでそんなに時間はかからないと思います。以上でWordPressディレクトリ全体の同期は完了です。ssh接続の設定ができている場合は、「3.rsyncコマンドで同期」を実行すれば大丈夫だと思います。次は、WordPressデータベース(MySQL)の同期です。設定ここはメイン側での作業です。サブ側からsshでメイン側に接続して、mysqldumpコマンドを実行します。事前にメイン側でmysqldumpコマンドを実行して確認しときます。コマンドで、wordpressのデータベースがバックアップできることを確認します。データベース名:wordpressの場合のコマンド例です。~/bk/wordpress.sqlデータベースのバックアップデータが正しく生成されていればOKです。2.WordPressデータベースのバックアップここはサブ側での作業です。SSHでメイン側に接続して、mysqlのユーザで、mysqldumpコマンドを実行してデータベースをバックアップを行います。(事前に確認したmysqldumpコマンドの情報を使います)コマンドは以下です。/home/user/bk/wordpress.sql事前にmysqldumpコマンドを確認しているので、ssh接続ができれば大丈夫だと思います。以上で、メイン側のWordpressデータベースを、サブ側にバックアップ完了です。3.WordPressデータベースの復元ここはサブ側での作業です。最後にバックアップしたメイン側のWordpressデータベースを、サブ側に復元します。データベース名:wordpressの場合のコマンド例です。「/home/user/bk/wordpress.sql」は、バックアップしたファイルを指定してください。シェルスクリプトを作成して、crontabに登録すれば自動化できますね。以下は、シェルスクリプトの記載例です。home/user/bk/wordpress.sql今回やりたかった、WordPressサーバーのデータ同期を自動化することができました。これで少しは安心できますね。コメントをキャンセルメールアドレスが公開されることはありません。※サイト上に表示された文字を入力してください。