莫让这世间的庸俗扰了清修,尽管三观已被腐蚀,但未来总是光明的。
2016/03/04/ - - 0 条评论 - 浏览量 : 1008

把下面的代码保存为backup.sh 保存到/opt/backup/backup.sh

chmod +x backup.sh

# /bin/bash

DB_USER="XXXXXXXXX"
DB_PASS="XXXXXXXXX"
BIN_DIR="/usr/bin"
BACK_DIR="/opt/backup/sql"
LogFile="$BACK_DIR"/dbbakup.log #日志记录保存的目


DB_NAME="db1"
DATE="$DB_NAME-`date +'%Y%m%d-%H%M%S'`"
BackNewFile=$DATE.sql
$BIN_DIR/mysqldump --opt --force -u$DB_USER -p$DB_PASS $DB_NAME > $BACK_DIR/$DATE.sql
echo  createFile:"$BackNewFile" >> $LogFile

DB_NAME="db2"
DATE="$DB_NAME-`date +'%Y%m%d-%H%M%S'`"
BackNewFile=$DATE.sql
$BIN_DIR/mysqldump --opt --force -u$DB_USER -p$DB_PASS $DB_NAME > $BACK_DIR/$DATE.sql
echo  createFile:"$BackNewFile" >> $LogFile



#-ctime表示创建时间,这里表示删除创建时间为多少天之前的文件,也就是结果只保留多少天的数据
find "/opt/backup/sql/" -ctime +14 -type f -name "*.sql" -print > deleted.txt
echo -e "deleteFiles:\n" >> $LogFile
#循环删除匹配到的文件
cat deleted.txt | while read LINE
do
    rm -rf $LINE
    echo $LINE>> $LogFile
done
echo "---------------------------------------------------"$(date +"%y-%m-%d %H%M%S")"---" >> $LogFile

修改/etc/crontab

#vi /etc/crontab, 添加下面代码

0  04 *  *  * root /opt/backup/backup.sh   #backup databases,每天凌晨4点备份