サーバーにログインして rsyncコマンドを使う

年明け早々ですが、今週は勤続〇十年ということで付与されるリフレッシュ休暇というお休みをいただきました。営業日で5日間あり、1/10(月)が祝日だったので、1/8(土)~1/17(月)の10連休。年末年始より長いお休みはうれしいのですが、このご時世では遠出というわけにもいかず、おとなしくゲーム三昧・・でも、さすがに後半は飽きてきたのでサイトリニューアルの続きを再開してみました。

Cocoonの本番利用は まだしばらく先

https://tarmino.com/20211123-production-use-of-cocoon-is-still-a-while-away/

結局、サブドメインは2つ登録して本番環境以外の環境として、

  • テスト環境
  • バックアップ環境

の二つの環境を用意しました。テスト環境は新テーマ、プラグイン導入テストなどいろいろといじるため、バックアップ環境は純粋に本番をバックアップしておくためということで二つ。本番からの移行手順は、

WordPressのテスト環境をつくる

https://tarmino.com/20211112-create-wordpress-test-environment/

こちらで一通り作りましたが、いろいろといじるテスト環境は、いじった後に「WordPress 初期化」というようなことが簡単にできないのか?と思って調べたところ、いつものようにピッタリなプラグインがありました。

Advanced WordPress Reset

https://ja.wordpress.org/plugins/advanced-wp-reset/

WordPressを初期化(リセット)する手順!プラグインを使う簡単な方法を解説

https://www.conoha.jp/lets-wp/wp-reset/

こちらの記事を参考にさせていただきました。ありがとうございます!

これで簡単にぐちゃぐちゃになったらゼロから始めることもできます。ここまではよかったのですが、今回は画像ファイルのコピーでつまづきました・・

Cocoonの本番利用は まだしばらく先

https://tarmino.com/20211123-production-use-of-cocoon-is-still-a-while-away/

ここで利用していた『Xserver のファイルマネージャ』での大量ファイルコピーは、うまくいかないときがあるようです。下記の左はテスト環境、右はバックアップ環境ということで、それぞれ本番環境からコピーしたのですが、画像リンクが壊れているところは、ファイルがコピーされていませんでした。それぞれ結果が異なるので特定のファイルだけがコピーされないというわけでもなく、ブラウザ上で見ていると正常にコピーが終わったように見えるのですが、場合によりコピーされないファイルがあるようです。

Xserver のファイルマネージャで作業した場合
Xserver のファイルマネージャで作業した場合

こうなったら単にファイルをコピーするだけなので、サーバー(Xserver)上で操作したほうが確実そうです。というわけで、

SSH設定

https://www.xserver.ne.jp/manual/man_server_ssh.php

こちらを参考にサーバーにアクセス。使うコマンドは、

rsyncコマンドの使い方〜リモートやローカルを簡単同期〜

https://hara-chan.com/it/infrastructure/rsync/

rsyncコマンドでXサーバーにローカルのファイルを同期する

https://penpen-dev.com/blog/rsync-xserver/

これらを参考にさせていただきました。ありがとうございます!

今までコマンドを使って、Xserver を操作したことはありませんが、昔々 MS-DOS 時代にはコマンド操作もしていましたから同じような感覚で。先の二つの記事を参考にすると書式はこんな感じ。本番環境の画像が保管されているのは、デフォルト設定のフォルダなので仮に下記だとすると、

<コピー元:本番環境>
tarmino.com/●●●/wp-content/uploads

<コピー先:テスト or バックアップ環境>
テスト.tarmino.com/*****/wp-content/uploads
バックアップ.tarmino.com/*****/wp-content/uploads

オプションを付けた書式は、
rsync -auvz <コピー元> <コピー先>

実際に本番環境の uploads の中身を テスト環境の uploads に同期するには、
rsync -auvz tarmino.com/●●●/wp-content/uploads テスト.tarmino.com/*****/wp-content/

本番環境の uploads の中身を バックアップ環境の uploads に同期するには、
rsync -auvz tarmino.com/●●●/wp-content/uploads バックアップ.tarmino.com/*****/wp-content/

コピー元の「uploads」の最後に「/」をつけないのがポイントのようです。

初回だけコピー先の「uploads」フォルダをフォルダごと削除し、全ファイルがコピーされるように実行してみました。約2,500ファイル、サイズ600MBが20秒ほどでコピーできてしまいました。Xserver のファイルマネージャの画面でうまくコピーできるか心配するより断然よいです。次回からは同期を取るようになるので、増えたファイルだけがコピーされるでしょうからあっという間かと。

rsync コマンドで作業した場合
rsync コマンドで作業した場合

今後、本番環境からの複製やテスト環境をいじり倒して元に戻したくなったときは、下記のような手順を実施すればよさそうです。

<本番環境>

<コピー先環境>

<サーバーファイル操作>

  • メディアライブラリフォルダのファイルを同期
    サーバにアクセスし、rsyncコマンドで作業

これでサイトリニューアルが進むかも?いや、休みの最後はゲームか・・

投稿者プロフィール

tarmino
レンタルサーバ+WordPressで、独自ドメインも取得して
ウェブサイト作りに挑戦。さて、できあがるのでしょうか・・
パソコン歴は30年を超えますが。
趣味:たまにパソコンの自作、たまにガンプラ、スパロボ、ジージェネ

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA