エックスサーバーの無料VPS(仮想専用サーバー)を利用する際、最も気をつけたいのがデータの安全管理です。万が一のサーバー障害や、更新忘れ、無料プランの予期せぬ停止に備え、データを自動で外部(Googleドライブ)にバックアップする仕組みを構築しましょう。
本記事では、Linuxサーバーで定番のストレージ同期ツール「rclone」を使い、安全・確実に自動バックアップを行う手順を解説します。
1. バックアップ全体の流れ
以下の4つのステップで設定を行います。作業時間は約15〜20分です。
- rcloneのインストール:VPSに同期ツールを導入します。
- Googleドライブの連携設定:API接続に必要な認証(トークン)を通します。
- バックアップスクリプトの作成:データを圧縮し、Googleドライブへ転送するシェルスクリプトを書きます。
- cronによる自動実行:毎日・毎週など、決まった時間にスクリプトを自動実行させます。
2. 事前準備
設定にあたり、以下の環境が整っていることを確認してください。
- Linux VPS(Ubuntu 22.04 / 24.04 等)へのSSHアクセス権限
- バックアップ先となるGoogleアカウント(Googleドライブの空き容量)
- ローカルPC(Windows/Mac:rcloneの認証トークンを一時的に取得するために使用します)
3. 設定手順
ステップ 1:rclone のインストール
VPSにSSHで接続し、以下のコマンドを実行して最新版のrcloneをインストールします。
sudo apt update
sudo apt install -y rcloneステップ 2:Googleドライブとの連携設定
rcloneの初期設定コマンドを実行します。対話式のメニューが表示されるので、指示に従って進めます。
rclone config設定中の主な選択肢は以下の通りです:
- No remotes found, make a new one? n) New remote を選択(新しい接続先を作る)
- Enter name for new remote. 名前を「gdrive」などに設定
- ストレージタイプの一覧から Google Drive(通常は「drive」)の番号を選択
- client_id / client_secret は空欄のままエンター(デフォルトを使用する場合)
- scope で 1 (Full access to all files) を選択
- service_account_file は空欄のままエンター
- Edit advanced config は n (No)
- Use auto config? は n (No) ※VPS上にブラウザがないため
- 表示されたrclone authorize “drive” “xxxxxxxxxxxx”を控えておきます
ここからローカルPCで作業します。
- ブラウザでhttps://rclone.org/downloads/にアクセス。自分はWindows11のIntel/AMD – 64 Bitをダウンロードします。
- ダウンロードしたzipファイルを解凍します。
- 全て展開してフォルダを開き、エクスプローラーの何もない部分を右クリックしてターミナルで開くを選択(これでそのフォルダを開いた状態でコマンドプロンプトが起動します)
- コマンドプロンプトに先ほどVPSで取得したトークンを含む rclone authorize “drive” “xxxxxxxxxxxx” を入力します。
- 自動的にブラウザが開いて認証画面になるので許可します。
- ターミナルに戻り、表示された Paste the following into your remote machine —> の先の部分をコピーします。
ここからもう一度VPSのターミナルに戻ります。
- config_token>に先ほどローカルで取得したトークンをペーストします。
- Configure this as a Shared Drive (Team Drive)? no
- Keep this “gdrive” remote? y
- q) Quit configを選択して終了します。
🚀 疎通テストをしてみましょう
通常の画面に戻ったら、本当にGoogleドライブと繋がっているか、以下のコマンドをVPSで叩いてテストしてみてください。
rclone lsd gdrive:もしGoogleドライブのマイドライブ内にあるフォルダ一覧がずらっと表示されれば、設定は成功しています。
ステップ 3:バックアップスクリプトの作成
指定したディレクトリを圧縮(tar.gz形式)し、Googleドライブにアップロードするスクリプトを作成します。ここでは /home/user/wp-backup.sh として作成します。
mkdir -p /home/user/backup/files
sudo nano /home/user/backup/wp-backup.sh以下の内容のバックアップ作成スクリプトを書きます。
パスワードやユーザー名などは適宜変更してください。
#!/bin/bash
# --- 設定エリア ---
SAVE_DIR="/home/user/backup/files" # 一時保存先
GDRIVE_DIR="gdrive:Backup_WordPress" # Googleドライブ上のフォルダ名
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7 # 7日分保持
RCLONE_CONF="/home/user/.config/rclone/rclone.conf" # ユーザーの設定ファイルを指定
# 一時保存フォルダがなければ作成
mkdir -p $SAVE_DIR
echo "--- バックアップ開始: $DATE ---"
# 1. MySQLのデータベースバックアップ (Docker経由) your-passwordをパスワードとしています
docker exec wordpress_db mysqldump -u root -pyour-password wordpress > $SAVE_DIR/wp_db_$DATE.sql
# 2. WordPressデータディレクトリの圧縮 (コンテナ内から直接吸い出し)
docker exec wordpress_app tar -czf - -C /var/www/html . > $SAVE_DIR/wp_files_$DATE.tar.gz
# 3. Googleドライブへ同期(転送) ※設定ファイルを明示的に指定
rclone --config $RCLONE_CONF copy $SAVE_DIR $GDRIVE_DIR
# 4. VPS内の一時ファイルを削除
rm -f $SAVE_DIR/*
# 5. Googleドライブ内の古いバックアップを自動削除 ※設定ファイルを明示的に指定
rclone --config $RCLONE_CONF delete --min-age ${RETENTION_DAYS}d $GDRIVE_DIR
echo "--- バックアップ完了 ---"作成後、スクリプトに実行権限を付与します。
sudo chmod +x /home/user/backup/wp-backup.sh手動でスクリプトをテストしてみます
sudo /home/user/backup/wp-backup.shバックアップ完了が出力されて実際のgoogle driveに新しくバックアップフォルダが生成されていればOKです。
ステップ 4:cronによる自動実行設定
毎日深夜3時にこのスクリプトを自動実行するように設定します。
sudo crontab -eファイルの末尾に以下の1行を追加して保存します。
0 3 * * * /home/user/backup/wp-backup.sh > /dev/null 2>&1毎日深夜3時0分に、このバックアップスクリプトを自動的に実行します。後ろの > /dev/null 2>&1 は、実行時のログ(警告メッセージなど)でサーバー内のメールボックスがあふれないようにする設定です。
4. 注意点と運用アドバイス
| 項目 | 注意すべきポイント |
|---|---|
| 容量制限 | Googleドライブの無料枠(15GB)を超えないよう、スクリプト内の世代管理(–min-age)で不要な古いファイルを削除するように設定してください。 |
| セキュリティ | バックアップデータに個人情報や機密データが含まれる場合は、tar圧縮時に暗号化(gpgやopenssl等)を挟むことを推奨します。 |
| データベース | MySQL/PostgreSQL等のデータベースをバックアップする場合は、直接ファイルを圧縮するのではなく、事前に mysqldump 等でSQLを書き出してから圧縮するようにしてください。 |
この手順を設定しておけば、VPS側で予期せぬトラブルが発生しても、大切なデータをいつでも安全にGoogleドライブから復元できます。まずは手動でスクリプトを実行し、Googleドライブにファイルが正しくアップロードされるかテストしてみてください。

コメント