「mysql」タグアーカイブ

WordPressのバックアップスクリプト

WordPressには自動バックアップのプラグインが存在するんだけど、理解を深める意味でも自分でやってみようと思い立って、シェルスクリプト(Shell Script)にて簡単なものを作ってみた。

毎日自動実行されるようにCronに登録する事で、定期的にWordPressのディレクトリとMySQLのデータベースを一週間分(7世代分)バックアップできるようにしてある。また、作成してから一週間を過ぎたバックアップファイルは、実行時に削除されるようにしてます。

基本的に、変数に代入しているパスを実行環境に合わせてmysql dumpの-pオプションにパスワードを入力しておけば動作します。

————————————————————————————

#!/bin/bash
#
# WordPress Backup ShellScript (by Holden1108/Numaotch)
#
############################################################
# Bugs:
# At Your Own Risk!!!! (:-P
############################################################
#VARIABLE
BACKUP_DIR=”/data/backup/wordpress”
TARGET_DIR=”/var/www/html/wordpress”
LOG=”$BACKUP_DIR/wordpress_backup.log”
NOW_DATE=”date +%Y/%m/%d\ %H:%M:%S%t”
PROG_NAME=`basename $0`

if [ ! -f $LOG ]; then touch $LOG ;fi

echo “==========================================================” >> ${LOG}
echo `eval $NOW_DATE`”START WordPress Backup Script…$PROG_NAME” >> ${LOG}

if [ ! -d $BACKUP_DIR ]; then
echo `eval $NOW_DATE`”PATH:$BACKUP_DIR is not found” >> ${LOG}
mkdir $BACKUP_DIR
fi

if [ ! -d $TARGET_DIR ]; then
echo `eval $NOW_DATE`”PATH:$TARGET_DIR is not found” >> ${LOG}
exit 1
fi

cd $BACKUP_DIR

#DELETE OLD BACKU FILES(-mtime +7)
find . \( -name \*.tar.gz -o -name \*.sql \) -mtime +7 -exec rm -f {} \;

#CREATE BACKUP FILES
tar cfz $BACKUP_DIR/wp_bkup.`date +%Y%m%d`.tar.gz $TARGET_DIR/ > /dev/null 2>&1
if [ $? -eq 0 ];then
echo `eval $NOW_DATE`”PATH:$TARGET_DIR Backup OK” >> ${LOG}
else
echo `eval $NOW_DATE`”PATH:$TARGET_DIR Backup Error” >> ${LOG}
fi

mysqldump -u root -p(MYSQLのパスワード) –all-databases –events –default-character-set=binary > wp_bkup.`date +%Y%m%d`.sql
if [ $? -eq 0 ];then
echo `eval $NOW_DATE`”MYSQL Backup OK” >> ${LOG}
else
echo `eval $NOW_DATE`”MYSQL Backup ERROR” >> ${LOG}
fi
echo `eval $NOW_DATE`”END WordPress Backup Script…$PROG_NAME” >> ${LOG}

exit 0

——————————————————————————–

※環境すっ飛んでも知りません。自己責任でお願いします。