1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#!/usr/local/bin/bash DBUSER='*****' DBPASS='*****' DBHOST='mysql***.db.sakura.ne.jp' BK_DIR='/home/*****/backup/dbbackup' DBLIST=`/usr/local/bin/mysql -u${DBUSER} -p${DBPASS} -h${DBHOST} -e 'show databases;' ` DBLIST=`echo "${DBLIST}" | egrep -v ^Database$ | egrep -v ^information_schema$ | egrep -v ^innodb$ | egrep -v ^mysql$ | egrep -v ^performance_schema$ | egrep -v ^tmp$` if [ ! -d /***-dbbackup ]; then mkdir -p ./dbbackup fi ( IFS=$'\n'; for LINE in `echo "${DBLIST}"` do d=`date +'%Y%m%d'` #当日の日付があれば削除 RMFILE=${BK_DIR}/${LINE}-$d.sql.gz #削除 rm -f ${RMFILE} echo "`date` mysql-backup start" >> ${BK_DIR}/backup.log /usr/local/bin/mysqldump -u${DBUSER} -p${DBPASS} -h${DBHOST} ${LINE} > ${BK_DIR}/${LINE}-$d.sql gzip -9 ${BK_DIR}/${LINE}-$d.sql echo "`date` mysql-backup end" >> ${BK_DIR}/backup.log #過去ファイル削除 KEEPDAY=7 #削除するファイル名 RMFILE=${BK_DIR}/${LINE}-`date -v -"$KEEPDAY"d +%Y%m%d`.sql.gz rm -f ${RMFILE} done ) echo "バックアップ完了" |
Cron実行コマンド/home/*****/backup/dbbackup.sh
お世話になったサイト
データベース毎にmysqldumpを実行するスクリプト
この記事は361回見られています