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