技術ブログ
【WP-CLI】ファイルやデータベースのバックアップ方法
WP-CLIを使えば、WordPressのデータベースやファイルのバックアップをコマンド一発で実行できます。
管理画面にログインする必要もなく、SSH接続さえできれば即座にバックアップが取れるため、サーバー移行や緊急時の対応に非常に有効です。
1. データベースのバックアップ
1-1. データベースをエクスポート(SQLダンプ)
たった1行のコマンドで、WordPressのデータベース全体をSQLファイルに書き出せます。
→ Success: Exported to ‘backup.sql’.
1-2. ファイル名に日付を付ける
運用では日付を付けて管理するのが定石です。
→ Success: Exported to ‘backup_20260302_143000.sql’.
1-3. 特定のテーブルだけバックアップ
投稿データだけ、ユーザーだけなど、テーブルを絞ることもできます。
wp db export –tables=wp_posts posts_backup.sql
wp db export –tables=wp_posts,wp_postmeta,wp_options partial_backup.sql
1-4. データベースの復元(インポート)
バックアップからの復元もコマンド一発です。
→ Success: Imported from ‘backup.sql’.
本番環境で実行する前に、現在のDBをバックアップしてから行ってください。
2. ファイルのバックアップ
WP-CLI自体にはファイルバックアップの専用コマンドはありませんが、WP-CLIと組み合わせてシェルコマンドで効率的にバックアップできます。
2-1. WordPress全体をtar.gzに圧縮
tar -czf wordpress_backup_$(date +%Y%m%d).tar.gz /var/www/html/
2-2. wp-contentだけバックアップ(推奨)
WordPress本体(コア)はいつでも再インストールできるので、通常は wp-content だけバックアップすれば十分です。
tar -czf wp-content_backup_$(date +%Y%m%d).tar.gz wp-content/
| フォルダ | 内容 |
|---|---|
themes/ |
テーマファイル |
plugins/ |
プラグイン |
uploads/ |
アップロードした画像・PDF等 |
2-3. アップロード画像だけバックアップ
画像ファイルは容量が大きいので、別途バックアップすることもあります。
3. DB + ファイルをセットでバックアップ(実務パターン)
実務では、DBとファイルをセットで取るのが基本です。以下のように1つのスクリプトにまとめておくと便利です。
# WordPress 一括バックアップスクリプト
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR=“./backups”
mkdir -p $BACKUP_DIR
# 1. データベースバックアップ
wp db export $BACKUP_DIR/db_$DATE.sql
echo “DB backup done: db_$DATE.sql”
# 2. ファイルバックアップ(wp-content)
tar -czf $BACKUP_DIR/files_$DATE.tar.gz wp-content/
echo “File backup done: files_$DATE.tar.gz”
echo “=== Backup complete ===”
ls -lh $BACKUP_DIR/*$DATE*
4. Docker環境でのバックアップ
Docker環境では docker exec 経由でWP-CLIを実行します。
4-1. Docker内のDBをエクスポート
--allow-root オプションが必要です。4-2. Docker内からホストにコピー
docker cp コンテナ名:/var/www/html/backup.sql ./backup.sql
4-3. Docker環境での一括バックアップ例
# DBバックアップ
docker exec コンテナ名 wp db export /var/www/html/backup_$DATE.sql –allow-root
docker cp コンテナ名:/var/www/html/backup_$DATE.sql ./backups/
# ファイルバックアップ(wp-content)
docker cp コンテナ名:/var/www/html/wp-content ./backups/wp-content_$DATE
5. WP-CLIのDB関連コマンド一覧
| コマンド | 説明 |
|---|---|
wp db export ファイル名.sql |
DBをSQLファイルにエクスポート |
wp db import ファイル名.sql |
SQLファイルからDBを復元 |
wp db optimize |
DBの最適化(断片化解消) |
wp db repair |
DBの修復 |
wp db size |
DB全体のサイズ確認 |
wp db size --tables |
テーブルごとのサイズ確認 |
wp db query "SQL文" |
任意のSQLを実行 |
wp db search "検索文字" |
DB内のテキスト検索 |
6. バックアップに関連する便利コマンド
6-1. サイトのURL確認(移行前に控える)
wp option get home
6-2. 全プラグイン・テーマの一覧を保存
wp plugin list –format=csv > plugins_list.csv
# テーマ一覧
wp theme list –format=csv > themes_list.csv
6-3. 復元後のURL置換(サーバー移行時)
旧URLを新URLに一括置換できます。まず --dry-run で変更箇所を確認:
問題なければ、--dry-run を外して実行:
【重要】バックアップの注意点
公開ディレクトリ(ドキュメントルート直下)に置くと、URLでアクセスできてしまいます。
バックアップファイルは公開ディレクトリの外か、
.htaccessでアクセス制限をかけること。cronジョブと組み合わせれば、毎日自動バックアップも可能です。
0 3 * * * cd /var/www/html && wp db export /backup/db_$(date +\%Y\%m\%d).sql
UpdraftPlus等のバックアッププラグインはGUI操作で便利です。
WP-CLIはSSH接続できる環境向け。管理画面にログインできない障害時にも使える利点があります。
まとめ
| やりたいこと | コマンド |
|---|---|
| DB全体バックアップ | wp db export backup.sql |
| DB復元 | wp db import backup.sql |
| ファイルバックアップ | tar -czf backup.tar.gz wp-content/ |
| Docker環境でDB | docker exec コンテナ名 wp db export backup.sql --allow-root |
| URL置換(移行時) | wp search-replace '旧URL' '新URL' |
WP-CLIを使えば、バックアップも復元もコマンド一発。
特に 管理画面が開けないトラブル時 にもSSH経由で操作できるのが最大の強みです。
参考リンク
作成: Seeds Brains(ジェイノーム業務支援AI)