WordPress バックアップ 【バックアップ用 シェルスクリプト】
シェルスクリプトを利用して、WordPressをバックアップする
WordPress のバックアップ用のスクリプトを作成
cronで登録すれば日次処理でバックアップ可能
処理概要としては以下の通り
- WordPress のデータベースをダンプしてTAR圧縮
- WordPress のコンテンツの保存先ををTAR圧縮
- 古いバックアップファイルは、設定された日数後に削除
以下が、実際に作成したスクリプトです。
設定ではスクリプトが実行された14日までのバックアップファイルを残す設定になっています
#!/bin/sh # backup date KeepDay=14 # backup directory Backup_Dir="/mnt/samba/backup/wordpress" # tmp directory Tmp_Dir="/var/tmp" # MySQL User DB_User="cms" # MySQL Passwd DB_Pass="passwd" # MySQL database DB_Name="cms" # MySQL tmp backup file DB_TmpFile=${DB_Name}"Mysql" # CMS_directory CMS_Dir=/var/www/html/cms # CMS tmp file CMS_TmpFile=${DB_Name}"www" export LANG=C timestamp=`date +%Y%m%d` DB_BakFile=${DB_TmpFile}_${timestamp} CMS_BakFile=${CMS_TmpFile}_${timestamp} if [ ! -d ${Backup_Dir} ] ; then mkdir -p ${Backup_Dir} fi #---------------------------------------- # mysql databaes #---------------------------------------- # mysqldump /usr/bin/mysqldump -u ${DB_User} -p${DB_Pass} --opt --all-databases > ${Tmp_Dir}/${DB_BakFile}.sql # backup directory cd ${Tmp_Dir} tar czf ${DB_BakFile}.tar.gz ${DB_BakFile}.sql cp ${DB_BakFile}.tar.gz ${Backup_Dir}/${DB_BakFile}.tar.gz #---------------------------------------- #cms contens #---------------------------------------- if [ ! -d ${CMS_Dir} ] ; then echo "${CMS_Dir} ... none" echo "cms contens fail" exit 1 fi cd ${CMS_Dir} tar czf ${Tmp_Dir}/${CMS_BakFile}.tar.gz ./* cp ${Tmp_Dir}/${CMS_BakFile}.tar.gz ${Backup_Dir}/${CMS_BakFile}.tar.gz # old file(backup Dir) olddb_file=`find ${Backup_Dir} -mtime +${KeepDay} |grep .*.tar.gz` for list in ${olddb_file} do echo "delete old backup file .... ${list}" rm -f ${list} done olddb_file="" # old file(tmp Dir for cms) olddb_file=`find ${Tmp_Dir} -mtime +${KeepDay} |grep ${CMS_TmpFile}` for list in ${olddb_file} do rm -f ${list} done olddb_file="" # old file(tmp Dir for mysql) olddb_file=`find ${Tmp_Dir} -mtime +${KeepDay} |grep ${DB_TmpFile}` for list in ${olddb_file} do rm -f ${list} done if [ -f ${Backup_Dir}/${CMS_BakFile}.tar.gz ] ; then echo "cms backup file ${Backup_Dir}/${CMS_BakFile}.tar.gz ... successful" fi
環境によって変更箇所を説明
# backup date
KeepDay=14
バックアップを保持する日数(この場合は14日は保管する)
# backup directory
Backup_Dir="/mnt/samba/backup/wordpress"
バックアップを出力する日数
# tmp directory
Tmp_Dir="/var/tmp"
バックアップ作業用の一時ディレクトリ
# MySQL User
DB_User="cms"
Wordpress用にMySQLのユーザー名
# MySQL Passwd
DB_Pass="passwd"
Wordpress用にMySQLのユーザー名のパスワード
# MySQL database DB_Name="cms"
Wordpress用のデータベース名
# MySQL tmp backup file DB_TmpFile=${DB_Name}"Mysql"
データベースのバックファイルの作業用ファイル名
# CMS_directory CMS_Dir=/var/www/html/cms
コンテンツの保存先
# CMS tmp file CMS_TmpFile=${DB_Name}"www"
コンテンツのバックファイル作業用ファイル名
ディスカッション
コメント一覧
まだ、コメントがありません