mysql备份最近8天的数据库,老的自动删除方案

本文介绍了一种使用Shell脚本实现MySQL数据库定时备份的方法。通过crontab设置定时任务,利用mysqldump命令完成数据库及指定表的备份,并采用gzip进行压缩存储。该脚本排除了不需要备份的数据库,提高了备份效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器上的处理脚本记录:

[root@mysql01 test]# crontab -l
0 2 * * * /bin/sh /script/sqlbackup.sh >/dev/null 2>&1
[root@mysql01 test]# cd /script/
[root@mysql01 script]# cat sqlbackup.sh
#!/bin/sh
#MySQL library database backup
. /etc/init.d/functions
soure /etc/profile

Prog_path="/application/mysql/bin"
Mysql_user="root"
Mysql_pwd="Hn11cgo111@2016"
Socket="/data/mysql.sock"
Backup_dir=/backup
Time=$(date "+%F")

[ -d ${Backup_dir} ] || mkdir -p ${Backup_dir}
mkdir ${Backup_dir}/${Time} -p

a=(` ${Prog_path}/mysql -u$Mysql_user -p$Mysql_pwd -S $Socket -e 'show databases;'|egrep -v "information_schema|bate_bbc|demo_bbc|demo_oms|mysql|performance_schema|zentao" ` )   ------------把不用备份的排除

for db in ${a[@]}
do
b=(`${Prog_path}/mysql -u$Mysql_user -p$Mysql_pwd -S $Socket -e "show tables from $db;"`)

for table in ${b[@]}
do
[ -d ${Backup_dir}/${Time}/${db} ]|| mkdir -p ${Backup_dir}/${Time}/${db}

${Prog_path}/mysqldump -u$Mysql_user -p$Mysql_pwd -S $Socket -x -E $db $table |gzip>${Backup_dir}/${Time}/${db}/${table}_${Time}.sql.gz
#${Prog_path}/mysqldump -u$Mysql_user -p$Mysql_pwd -S $Socket -x -E -B $db |gzip>${Backup_dir}/${db}_$(date +%F).sql.gz
done
done
[root@mysql01 script]#

转载于:https://www.cnblogs.com/sung/p/8025376.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值