2026年5月30日
2026年5月30日
WordPressのバックアップ自動化スクリプト(Bash)作成
はじめに
この記事では、WordPressサイトのバックアップを自動的に実行するためのBashスクリプトを作成する方法について解説します。定期的なバックアップは、データ損失やセキュリティ問題からWebサイトを保護し、システムの信頼性を高めるために重要な役割を果たします。
症状・背景
このテーマが必要になる主な場面:
- <場面1>: データベースまたはファイルが破損または消失した場合
- <場面2>: セキュリティ上の問題が発生し、データ復元が必要な場合
- <場面3>: WordPressサイトの移行や更新時に過去の状態へのロールバックが必要な場合
- <場面4>: 既存の手動バックアッププロセスを効率化したい場合
手順・設定方法
ステップ1: WordPressサイトとデータベースへのアクセス権限を取得する
# データベースユーザー名とパスワードを設定します
DB_USER="your_db_user"
DB_PASS="your_db_pass"
# WordPressのインストールディレクトリを指定します
WP_DIR="/var/www/html/wordpress"
# バックアップ先のディレクトリを作成します
BACKUP_DIR="/var/backups/wordpress"
mkdir -p $BACKUP_DIR
# サイトドキュメントルートとデータベースへのアクセス権限を取得します
cd $WP_DIR && wp core verify-checksums --skip-themes --skip-plugins --skip-content --path=$WP_DIR
ステップ2: データベースのバックアップを作成する
# MySQLクライアントを使用してデータベースのダンプを生成します
mysqldump -u $DB_USER -p$DB_PASS wordpress_db > $BACKUP_DIR/wordpress_db.sql
ステップ3: ファイルのバックアップを作成する
# WordPressサイトのファイル構造をtarコマンドでアーカイブ化します
tar czf $BACKUP_DIR/wordpress_files.tar.gz -C /var/www/html/ wordpress
ステップ4: バックアップスクリプトを定期実行するようにcronジョブを設定する
# cronジョブのエディタを開きます
crontab -e
# WordPressのバックアップを毎週月曜日の午前3時に実行します
0 3 * * 1 /path/to/your/backup_script.sh > /var/log/wordpress_backup.log
注意事項
- <実践的な注意点1>: バックアップ先ディレクトリは定期的にチェックし、十分なディスクスペースがあることを確認してください。
- <実践的な注意点2>: データベースのバックアップを暗号化して保存することをお勧めします。これはデータが不正にアクセスされた場合や盗まれた場合でも、情報が保護されるためです。
- <セキュリティ上の注意>: バックアップスクリプトとそのファイルは適切な権限で実行および所有されていることを確認してください。また、バックアップファイルへのアクセスを制限するためのグループやユーザー設定を考慮することも重要です。
- <パフォーマンス/運用上の注意>: バックアッププロセスがサイトのパフォーマンスに影響を与えないように、適切な時間帯(通常は夜間)にバックアップを実行するように計画してください。
まとめ
1. 定期的なバックアップ: WordPressサイトは日々更新され、データは増え続けます。そのため、定期的にバックアップを取り続けることが重要です。
2. セキュリティの確保: バックアップファイルも他の重要なデータと同様に保護する必要があります。アクセス制御や暗号化などの措置を講じてください。
3. 復元プロセスの確認: 一旦バックアップが作成できても、その復元プロセスを事前に試験することが重要です。これにより、災害時や誤操作時の迅速な対応を可能にします。
4. 監視とメンテナンス: バックアップファイルの状態やバックアップスクリプトが正常に動作しているかを定期的に確認し、必要に応じて更新や修正を行ってください。
5. 拡張性への考慮: 多くのサイトでは複数のデータベースや大きなファイルセットを持つことがあります。そういった場合、より効率的なバックアップ戦略を考える必要があります。
関連記事: