###WordPressサイトを自動でバックアップするシェルスクリプト
WordPressサイトのバックアップと保守のための3つのスクリプトになります。ファイルとデータベースの定期バックアップ、アクセス権とクリーンアップの管理を自動化しサーバーの保守効率化を実現します。
##使い方
1.各ファイルのパスの設定
同梱内容
- cron_backup_xsrv.sh...サーバーのファイルとWordPressデータベースの定期バックアップを管理.- cron_chmod_xsrv.sh...ファイルのアクセス権を定期的に設定するためのもの.
- cron_clean_xsrv.sh...定期的に不要な一時ファイルと隠しファイルをクリーンアップ.
##cron_backup_xsrv.sh:TDIR,BDIR,RSYNC,EXの設定
→ TDIR(ターゲットディレクトリ), BDIR(バックアップディレクトリ), RSYNC(同期設定), EX(除外設定)を設定##cron_chmod_xsrv.shとcron_clean_xsrv.sh:DIRの設定
→ cron_chmod_xsrv.shとcron_clean_xsrv.shでは処理を行うDIR(ディレクトリ)の設定をします。2."$HOME/Archive"を作成/アップロード
ホームディレクトリに"Archive"というディレクトリを作成
"Archive"に3つのファイル(cron_backup_xsrv.sh,cron_chmod_xsrv.sh,cron_clean_xsrv.sh)をアップロード。
"Archive"に3つのファイル(cron_backup_xsrv.sh,cron_chmod_xsrv.sh,cron_clean_xsrv.sh)をアップロード。
3.サーバにcronの設定
crontab -e
0 2 * * * /path/to/backup_script.sh >> /path/to/backup.log 2>&1
3 3 * * * /bin/bash $HOME/Archive/cron_backup_xsrv.sh
2 2 * * 1 /bin/sh /var/www/html/cgi-bin/cron_clean.sh
0 2 * * * /path/to/backup_script.sh >> /path/to/backup.log 2>&1
3 3 * * * /bin/bash $HOME/Archive/cron_backup_xsrv.sh
2 2 * * 1 /bin/sh /var/www/html/cgi-bin/cron_clean.sh
4.その他
##cron_backup_xsrv.sh
スクリプトはBashで記述されたバックアップスクリプトで、ファイルを同期し、古いバックアップを削除し、WordPressのデータベースをエクスポートします。 このBashスクリプトはシステムの定期的なバックアップ処理を自動化するために使用されます。
詳細説明:
RSYNCコマンドを使用して、ホームディレクトリからArchiveディレクトリへファイルを同期し、指定した無視リストに基づいて特定のファイルやディレクトリを除外します。 7日以上古い.webと.sqlバックアップディレクトリを削除することで、バックアップをローテーション(古いものを削除して新しいものを保持すること)します。 wp-config.phpファイルを検索してWordPressインスタンスのパスを見つけ、関連するデータベース名を抽出し、それらのデータベースを.sqlファイルとしてエクスポートします。 月初めに、WebディレクトリとSQLバックアップディレクトリを圧縮し、50日以上古い.tar.gzアーカイブを削除します。 バックアップの開始と終了時に日付とホスト名を含むログメッセージを出力します。##cron_chmod_xsrv.sh
このスクリプトはディレクトリとファイルのパーミッションを再帰的に設定する定期実行のためのものです。
詳細説明:
ユーザーのホームディレクトリ内の全ディレクトリに対してパーミッションを0705(オーナーの全権限、グループとその他には読み取りと実行権限)に設定。 特定のファイルタイプ(.css, .gif, .html, .ico, .js, .jpg, .php, .sh, .csv, .db)に対してパーミッションを0644(オーナーの読み書き権限、グループとその他には読み取り権限)に設定。 .logと.datファイルにはより厳格な0600(オーナーのみ読み書き権限)に設定。 作業の開始と終了をログに記録し、エラーがなければ終了ステータス0(成功)で終了。##cron_clean_xsrv.sh
スクリプトは不要な一時ファイルや隠しファイルを定期的に削除するためのものです。