mysql自動備份和刪除舊備份

1、MySQL自動備份腳本

# vi /opt/scritps/db_backup.sh

#!/bin/bash
USER=root
PASSWORD=123456
DATABASE1=test-db1
#DATABASE2=test-db2
BACKUP_DIR="/opt/data_bankup/"
LOGFILE=/opt/data_bankup/data_backup.log
DATE=`date +%Y%m%d-%H%M`
DUMPFILE1=appnest-$DATE.sql
DUMPFILE2=imserver-$DATE.sql
ARCHIVE1=$DUMPFILE1-tar.gz
ARCHIVE2=$DUMPFILE2-tar.gz

#
###  Backup test-db1 Database ###
if [ ! -d $BACKUP_DIR ];then
        mkdir -p "$BACKUP_DIR"
fi

echo -e "\n" >> $LOGFILE   
echo "------------------------------------" >> $LOGFILE
echo "  BACKUP DATE:$DATE" >> $LOGFILE  
echo "------------------------------------" >> $LOGFILE

cd $BACKUP_DIR
/opt/thirdsoft-installed/mysql/mysql/bin/mysqldump -u$USER -p$PASSWORD $DATABASE1 > $DUMPFILE1

if [[ $? == 0 ]];then
    tar -zcf $ARCHIVE1 $DUMPFILE1 >> $LOGFILE 2>&1
    echo "$DATABASE1 DATABASE BACKUP SUCCESSFUL!" >> $LOGFILE
    rm -f $DUMPFILE1
else
    echo “$DATABASE1 Backup Fail!” >> $LOGFILE
fi 

#
###  Backup test-db2 Database ###
/opt/thirdsoft-installed/mysql/mysql/bin/mysqldump -u$USER -p$PASSWORD $DATABASE2 > $DUMPFILE2

if [[ $? == 0 ]];then
    tar -czf $ARCHIVE2 $DUMPFILE2 >> $LOGFILE 2>&1
    echo "$DATABASE2 DATABASE BACKUP SUCCESSFUL!" >> $LOGFILE
    rm -f $DUMPFILE2
else
        echo "$ARCHIVE2 Backup Fail!" >> $LOGFILE
fi

2、批量刪除N天前的舊備份

# vi /opt/scritps/del_oldDB_backup.sh

#!/bin/bash
BACKUPDIR="/opt/data_bankup/"
KEEPTIME=15       //需要刪除的文件距離當前的天數
DELFILE=`find $BACKUPDIR -type f -mtime +$KEEPTIME -exec ls {} \;`

for delfile in ${DELFILE}
rm -f $delfile
done

3、設定計劃任務

# crontab -e
0 2 * * * root /opt/scritps/db_backup.sh /dev/null 2>&1
#定義每天凌晨2點執行備份數據庫腳本 

0 3 * * 0 root /opt/scritps/del_oldDB_backup.sh /dev/null 2>&1
#定義每週日凌晨3點執行刪除數據庫備份文件 

 

                                                                          crontab 時間表示

     項目                             含義                       範圍
第一個"*"            一小時當中的第幾分鐘(minute) 0~59
第二個"*" 一天當中的第幾小時(hour) 0~23
第三個"*" 一個月當中的第幾天(day) 1~31
第四個"*" 一年當中的第幾個月(month) 1~12
第五個"*" 一週當中的星期幾(week) 0~7(0和7都代表星期日)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章