晓夏

小皇

教育信息化方案砖家

mysql自动备份代码脚本-备份多个数据库

浏览量:1142

把下面的代码保存为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点备份


神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。