mysql备份脚本:shell脚本每天定时备份mysql数据库

发布时间:2020-01-18编辑:脚本学堂
一例mysql备份脚本,用linux shell脚本实现mysql数据库备份,结合crontab实现mysql数据库的定时备份,linux shell实现每天定时备份mysql数据库的代码。

linux shell实现每天定时备份mysql/ target=_blank class=infotextkey>mysql数据库

每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据;

需求:
 
1,每天4点备份mysql数据;
 
2,为节省空间,删除超过3个月的所有备份数据;
 
3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据;

shell脚本
 

复制代码 代码示例:
#创建shell文件
vim backup_mysql.sh
 
mysqldump -uroot -p123456 --all-databases > /data/dbdata/mysqlbak/`date +%Y%m%d`.sql
find /data/dbdata/mysqlbak/ -mtime +7 -name '*[1-9].sql' -exec rm -rf {} ;
find /data/dbdata/mysqlbak/ -mtime +92 -name '*.sql' -exec rm -rf {} ;
 
#创建定时任务
crontab –e
0 4 * * * /data/dbdata/backup_mysql.sh

二、linux中mysql备份shell脚本代码

一段mysql定时备份的脚本代码

第一步:在你的linux服务器中定义备份目录:
 

mkdir /var/lib/mysqlbackup
cd /var/lib/mysqlbackup
 

第二步:下面是最重要的一步了,就是写定时备份脚本。

shell脚本:dbbackup.sh
 

复制代码 代码示例:
#!/bin/sh
# mysql data backup script
#
# use mysqldump --help,get more detail.
#
BakDir=/root/back/ysqlbackup
LogFile=/root/back/mysql/mysqlbak.log
DATE=`date +%Y%m%d%H%M%S`
echo " " >> $LogFile
echo " " >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
cd $BakDir
DumpFile=$DATE.sql
GZDumpFile=$DATE.sql.tar.gz
/usr/local/bin/mysqldump -u user -pname  --database -h 127.0.0.1 db> $DumpFile
echo "Dump Done" >> $LogFile
tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1
echo "[$GZDumpFile]Backup Success!" >> $LogFile
rm -f $DumpFile
#cd $BakDir/daily
cd $BakDir  
echo "Backup Done!"
echo "please Check $BakDir Directory!"
echo "copy it to your local disk or ftp to somewhere !!!"
find $BakDir -ctime +30 -exec rm {} ;
echo "delete file over 30 days"

提示:其中user,name和db请根据自己的情况修改
保存退出,然后把这个文件赋予可执行的权限:
 

#chmod 777 mysqlautobackup.sh

用crontab定时执行备份脚本代码:
 

crontab -e
 

若每天下午3点20备份,代码:
 

20 15 * * * /var/lib/mysqlbackup/dbbackup.sh

如此,就可以每天定时备份mysql数据库了。