Last active
April 6, 2023 17:26
-
-
Save Ryan4CN/1d08a60bb125a45ec07e1d40ae3c9241 to your computer and use it in GitHub Desktop.
[Mysql 备份脚本] 用于备份数据库 如果是使用 Percona Server 发行版可以使用一个开源软件 surrogate
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#Shell Command For Backup MySQL Database Everyday Automatically By Crontab | |
USER=root | |
PASSWORD="password" | |
HOSTNAME="10.70.49.47" | |
KEEPDATE="15" | |
BACKUP_DIR=/root/dbbackup/db/ #备份文件存储路径 | |
LOGFILE=${BACKUP_DIR}test.log #日记文件路径 | |
DATE=`date '+%Y%m%d-%H%M'` #日期格式(作为文件名) | |
DUMPFILE=$DATE.sql #备份文件名 | |
ARCHIVE=$DATE.sql.tgz #压缩文件名 | |
OPTIONS="-h$HOSTNAME -u$USER -p$PASSWORD --all-databases" | |
#mysqldump -help | |
#判断备份文件存储目录是否存在,否则创建该目录 | |
if [ ! -d $BACKUP_DIR ] ; | |
then | |
mkdir -p "$BACKUP_DIR" | |
fi | |
#开始备份之前,将备份信息头写入日记文件 | |
echo " " >> $LOGFILE | |
echo " " >> $LOGFILE | |
echo "———————————————–" >> $LOGFILE | |
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE | |
echo "———————————————– " >> $LOGFILE | |
#切换至备份目录 | |
cd $BACKUP_DIR | |
#使用mysqldump 命令备份制定数据库,并以格式化的时间戳命名备份文件 | |
mysqldump $OPTIONS > $DUMPFILE | |
#判断数据库备份是否成功 | |
if [[ $? == 0 ]]; then | |
#创建备份文件的压缩包 | |
tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1 | |
#输入备份成功的消息到日记文件 | |
echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE | |
#删除原始备份文件,只需保 留数据库备份文件的压缩包即可 | |
rm -f $DUMPFILE | |
else | |
echo "Database Backup Fail!" >> $LOGFILE | |
fi | |
# 判断删除指定天数的备份 | |
find $BACKUP_DIR* -mtime +$KEEPDATE -exec rm {} \; | |
#输出备份过程结束的提醒消息 | |
echo "Backup Process Done" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment