1. 程式人生 > >mysql自動備份

mysql自動備份

done character one cron ip地址 mysql bash lob rac

配置crontab實現自動備份

crontab -e root
* * 6 * * sh /data/backup/mysql_backup.sh >>/data/backup/backup.log 2>&1
#!/bin/bash
DBusername=root         #數據庫用戶名
DBpasswd=123             #數據庫密碼
DBname=test                #數據庫名
Host=192.168.1.2         #ip地址,本地可用localhost
Port=3306                     #數據庫端口
BKdir=/data/backup      #備份存放的目錄
 BKtime=`date +%Y%m%d`    #系統當前時間

#開始備份
mysqldump -h ${Host} -P${Port} -u${DBusername} -p${DBpasswd} ${DBname} --default-character-set=utf8 --hex-blob -r ${BKdir}/${DBname}-${BKtime}.sql

#截取所有備份文件的時間
time1=`ls $BKdir/${DBname}*.sql |awk -F- ‘{print $2}‘|awk -F. ‘{print $1}‘`
#刪除30天以前的備份文件
for time in ${time1}
do
time2=$(($(date +%s) - $(date +%s -d ${time})));
day=$((time2/60/60/24))
if [[ ${day} > 30 ]]
then
    rm -f ${BKdir}/${DBname}-${time}.sql
fi
done

mysql自動備份