2026年5月20日
2026年5月20日
WordPressの定期バックアップをGoogle Driveに保存する方法
はじめに
Google Driveへの自動バックアップを設定することで、サーバー障害・マルウェア感染・誤操作があっても安全にデータを復元できます。UpdraftPlusを使えばGUI設定で簡単に実現でき、rcloneを使えばより柔軟な自動化が可能です。
症状・原因
- バックアップをサーバー内にしか保存しておらずサーバー障害時に復元できない
- 手動バックアップを忘れてしまう
- Google Driveに大容量の空き容量があるので活用したい
- バックアッププラグインのクラウド連携設定がわからない
解決手順
ステップ1:UpdraftPlus をインストールして設定する
# UpdraftPlus をインストール・有効化
wp plugin install updraftplus --activate
# プラグインの状態確認
wp plugin status updraftplus
UpdraftPlus 設定手順(ダッシュボードから):
1. 設定 → UpdraftPlus バックアップ
2. 「設定」タブをクリック
3. バックアップスケジュール:
- ファイルバックアップ: 毎日
- データベースバックアップ: 毎日
- 保持する数: 7(7日分)
4. リモートストレージ: 「Google Drive」を選択
5. 「Google Drive で認証」ボタンをクリック
→ Googleアカウントで認証
→ アクセスを許可
6. 「設定を保存」をクリック
7. 「今すぐバックアップ」で動作確認
ステップ2:Google Drive API を手動設定する(上級者向け)
# Google Cloud Console での設定:
# 1. console.cloud.google.com でプロジェクト作成
# 2. APIとサービス → ライブラリ → Google Drive API を有効化
# 3. 認証情報 → OAuth 2.0 クライアントIDを作成
# アプリケーションの種類: ウェブアプリケーション
# 承認済みリダイレクト URI: https://example.com/wp-admin/
# 4. クライアントID・シークレットをメモ
// wp-config.php: UpdraftPlus に Google Drive 認証情報を設定
define('UPDRAFTPLUS_GOOGLEDRIVE_CLIENTID', 'your-client-id.apps.googleusercontent.com');
define('UPDRAFTPLUS_GOOGLEDRIVE_CLIENTSECRET', 'your-client-secret');
ステップ3:rclone で Google Drive に自動同期する
# rclone をインストール
curl https://rclone.org/install.sh | sudo bash
# Google Drive の設定(インタラクティブ設定)
rclone config
# → n (new remote)
# → 名前: gdrive
# → Storage: 18 (Google Drive)
# → client_id: (空白でEnter)
# → client_secret: (空白でEnter)
# → scope: 1 (full access)
# → ブラウザでOAuth認証
# 接続テスト
rclone lsd gdrive:
# WordPress バックアップフォルダを Google Drive に同期
rclone sync /var/backups/wordpress/ gdrive:WordPress-Backups/ \
--include "*.enc" \
--min-age 1h \
--log-file /var/log/rclone-backup.log
#!/bin/bash
# /usr/local/bin/wp-backup-gdrive.sh
# WordPress をバックアップして Google Drive に送信
WP_PATH="/var/www/html"
LOCAL_BACKUP="/var/backups/wordpress"
GDRIVE_FOLDER="gdrive:WordPress-Backups/$(hostname)"
DATE=$(date +%Y%m%d_%H%M%S)
KEEP_DAYS=7
mkdir -p $LOCAL_BACKUP
# データベースバックアップ
wp --path=$WP_PATH db export "${LOCAL_BACKUP}/db-${DATE}.sql"
# ファイルバックアップ(wp-content のみ)
tar -czf "${LOCAL_BACKUP}/files-${DATE}.tar.gz" \
-C $WP_PATH wp-content \
--exclude="wp-content/cache" \
--exclude="wp-content/uploads/backup*"
# Google Drive に同期
rclone copy "${LOCAL_BACKUP}/db-${DATE}.sql" \
"${GDRIVE_FOLDER}/db/" --log-level INFO
rclone copy "${LOCAL_BACKUP}/files-${DATE}.tar.gz" \
"${GDRIVE_FOLDER}/files/" --log-level INFO
# ローカルの古いバックアップを削除
find $LOCAL_BACKUP -name "*.sql" -mtime +${KEEP_DAYS} -delete
find $LOCAL_BACKUP -name "*.tar.gz" -mtime +${KEEP_DAYS} -delete
# Google Drive の古いバックアップを削除(30日以上前)
rclone delete "${GDRIVE_FOLDER}/db/" --min-age 30d
rclone delete "${GDRIVE_FOLDER}/files/" --min-age 30d
echo "バックアップ完了: ${DATE}" >> /var/log/wp-backup.log
ステップ4:cron でバックアップを自動実行する
# crontab に登録
crontab -e
# 毎日午前2時にバックアップ
0 2 * * * /usr/local/bin/wp-backup-gdrive.sh >> /var/log/wp-backup.log 2>&1
# 毎週日曜日に完全バックアップ(ファイル含む)
0 3 * * 0 /usr/local/bin/wp-full-backup-gdrive.sh >> /var/log/wp-backup.log 2>&1
// functions.php: バックアップ完了をWordPressから通知
add_action('updraftplus_backup_complete', function(array $backup_array): void {
$admin_email = get_option('admin_email');
$date = current_time('Y-m-d H:i:s');
$files = implode(', ', array_keys($backup_array));
wp_mail(
$admin_email,
'[WordPress] バックアップ完了 - Google Drive',
"バックアップが正常に完了しました。\n\n"
. "日時: {$date}\n"
. "保存先: Google Drive\n"
. "ファイル: {$files}\n\n"
. "バックアップ管理: " . admin_url('admin.php?page=updraftplus')
);
});
ステップ5:バックアップの世代管理を設定する
# Google Drive 上のバックアップ一覧を確認
rclone ls gdrive:WordPress-Backups/
# バックアップのサイズを確認
rclone size gdrive:WordPress-Backups/
# 特定ファイルを Google Drive からダウンロード(復元時)
rclone copy "gdrive:WordPress-Backups/db/db-20240101_020000.sql" \
/tmp/restore/
# Google Drive のバックアップを世代管理(最新10世代を保持)
GDRIVE_FILES=$(rclone lsf "gdrive:WordPress-Backups/db/" | sort | head -n -10)
for file in $GDRIVE_FILES; do
rclone delete "gdrive:WordPress-Backups/db/${file}"
done
注意事項
- Google Driveの無料プランは15GBの容量制限があります。バックアップが肥大化しないよう、古い世代の自動削除設定を必ず行ってください
- rcloneの設定ファイル(
~/.config/rclone/rclone.conf)にはOAuthトークンが含まれます。このファイルのパーミッションをchmod 600に設定してください - UpdraftPlusの無料版はGoogle Driveへの直接バックアップをサポートしています。スケジュール設定の詳細はPremium版(有料)が必要です
まとめ
Google Driveへのバックアップは①wp plugin install updraftplusでプラグイン設定・Google認証、②Google Drive APIのOAuth認証設定、③rclone configでGoogleDriveを設定後シェルスクリプトでDBとファイルを毎日バックアップ・30日以上前の古いファイルを自動削除、④crontabで毎日午前2時に自動実行、⑤updraftplus_backup_completeフックでバックアップ完了メール通知します。