首页 > 技术文章 > mysql日常备份脚本

qiuxiao 2022-05-31 17:54 原文

mysql 日常备份脚本

使用linxu的crontab做定时任务,每天执行备份脚本。

# mkdir /home/mysql_backup
# cat > /home/mysql_backup/mysql_backup.sh << EOF
#!/bin/sh
###每天运行一次
###定义用户 密码 备份目录等信息
user=root
user=127.0.1.1
psd=123456
backup_base
=/home/sdb/mysql_backup
date=`date +%Y%m%d`
old_date
=`date +%Y%m%d -d -30days` ###保存的天数
###获取库名,排除不需要备份的库

for db in `mysql -u$user -p$psd -h$host -s -N -e "show databases"|grep -v -E "(zabbix|test|percona|information_schema|performance_schema|mysql|sys)"`
do
###创建备份目录
if [ ! -d $backup_base/$db ];
then mkdir $backup_base/$db
fi
cd $backup_base
/$db
chattr -R -i ./*
rm -f $old_date.sql* &>/dev/null #删除30天以前的
mysqldump -u$user -p$psd
-h$host --events --routines $db |gzip > $date.sql.gz ###备份&压缩
chattr -R +i ./* ###这里加了个防误删的属性
done
EOF

将备份脚本添加到crontab的定时任务中,每天凌晨02:00执行备份脚本。

# crontab -e
00 02 * * * /home/mysql_backup/mysql_backup.sh

临时备份

在升级时临时将mysql中的所有库都备份到同一个文件中。

#mysqldump -u root –p’passwd’ -h$host --all-databases  > /home/all_mysql_backup_20200408.sql

 

推荐阅读