自前でブログデータをバックアップするならrcloneが便利!
ブログデータのバックアップを自前で自動化したいなら、CLIツール「rclone」が便利です。GoogleドライブやS3など多様なクラウドストレージに対応し、記事・画像・設定ファイルを自由に選択して保存可能。cronと連携すれば完全自動化も実現でき、コストを抑えたい運営者におすすめです。
※本記事は広告を含みます
どうも、職業エンジニアです。
ブログを運用している人なら1回は意識したことがあるであろうバックアップ。最近ではレンタルサーバー側で自動バックアップしてくれることも増えていますが、別途バックアップ料金がかかったりするケースもあり、利便さと料金の天秤が我々運営者を悩ませている訳です。
今回は選択肢の1つとして、自前スクリプトでのバックアップに便利なCLIツール「rclone(アールクローン)」を紹介したいと思います。
そもそも「rclone」ってどんなツール?
rclone(アールクローン)は、さまざまなクラウドストレージをコマンドライン(CLI)から一括操作できるオープンソースのツール。
Linuxでよく使われるファイル同期コマンドrsyncのクラウド版みたいなもので、GoogleドライブやDropbox、Amazon S3、Cloudflare R2など、あらゆるクラウドと連携できるのが特徴です。
WordPressだとBackWPupやAll-in-One WP Migrationなどのバックアッププラグインが有名ですが、これと同じようなことができるよ、という感じですね。
ブログのバックアップにrcloneをおすすめする3つの理由
1. バックアップ対象を選択できる
ブログで管理したいデータはざっくり言うと
- 記事データ(データベース)
- 画像などのアセットデータ
- サーバー設定ファイル
となります。特にサーバー設定ファイルなんかは環境によってファイルが変わったりするので、汎用的なプラグイン等では対応できないことがあります。この辺りを自前で組むことで、必要なものは漏れなくバックアップできます。
2. 保存先(クラウド)を自由に選べる
Googleドライブやdropboxはもちろん、保存コストが安いAmazon S3 Glacierや、転送料金が無料のCloudflare R2など、用途や予算に合わせてバックアップ先を自由に選べるのも強みの一つ。
3. cron(定期実行)で完全自動化できる
一度設定してしまえば、Linuxサーバーのcron(タスク自動化機能)を使って「毎週日曜日の深夜3時に画像とデータベースを自動でGoogleドライブへ転送」といった完全自動化が簡単に組めます。
バックアップの基本的な流れ
具体的な手順はこんな感じ!
ステップ1:rcloneをインストール
サーバー(またはローカル環境)にrcloneを導入。
# Linux環境の場合
curl https://rclone.org/install.sh | sudo bash
ステップ2:保存先クラウドの初期設定
対話形式で保存先のクラウド(例: Google Drive)を設定。
rclone config
ステップ3:同期(バックアップ)コマンドを実行
ブログの画像フォルダ(wp-content/uploadsなど)や、ダンプしたデータベースファイルをクラウドへ送る。
# ローカルのバックアップフォルダをクラウドへ同期
rclone sync /path/to/blog-backup my-gdrive:blog-backup-folder
基本的にはシェルスクリプトとセットで使う
rcloneを利用したバックアップ処理を書いたスクリプトを用意し、cronでキックする、みたいなイメージで利用するのが主な使い方です。
Bashとセットで使われる主な理由
-
バックアップの前処理・後処理ができる
-
例:rcloneで送る前に、Bashで
mysqldumpを実行してWordPressのデータベースを1つのファイルにまとめる(ダンプする)。 -
例:古いバックアップファイルを
tarやzipで圧縮・アーカイブ化する。
-
-
cronでの自動化(スケジュール実行)- 「毎日深夜2時にバックアップ実行」というシェルスクリプト(
.sh)を作成し、cronに登録して放置するのが定番運用。
- 「毎日深夜2時にバックアップ実行」というシェルスクリプト(
-
エラーハンドリング・通知
- バックアップが失敗した時だけログを残したり、LINEやDiscord、Slackに「バックアップ完了!」と通知を送る処理をBashで書く。
まとめ
ざっくり要点をまとめました、こんな感じ。
- rcloneを使えば自前バックアップが楽に
- 利用する際はシェルスクリプトで実装する
- スクリプトをcronでスケジューリングする
「自前で組まざるを得なかったとき」に有用かと思います。
最後に
本当はスナップショットの方がGUIからすぐに復旧できて楽なんだけど、まあ基本有料だからね。。
筆者が使ってるConoHa VPSは「手動でのスナップショットは無料、ただし24時間で消える」という制約があるので、サーバー作業する前は手動でスナップショット取る運用にして、日次バックアップはrcloneベースでやる運用にしています。
WordPress含め15年以上はブログ運用してますが、恐らくこれで充分回るはず。。昔はスナップショットから復旧なんてできなかったわけだしね。
コメント