linux_MYSQL 数据库自动备份并压缩和删除历史备份

1. 建立shell脚本mysql

#! /bin/bash
# MySQL用户
user="root"
# MySQL密码
userPWD="123456789"
# 须要定时备份的数据表列表
dbName=uco_wms_test
# 每次的备份数据以日期建立文件夹存放,同时删除过时备份
# 此处以保留7天的备份数据为例
DATE=`date -d "now" +%Y%m%d_%H%M%S`
ODATE=`date -d "-7 days" +%Y%m%d`
newdir=/home/ttx/app/mysqlbackfile/$DATE
olddir=/home/ttx/app/mysqlbackfile/$ODATE*
# 删除过时备份数据 *号表示模糊匹配
if [ -d $olddir* ];
then
rm -rf $olddir*
fi
# 建立新备份文件夹
mkdir $newdir
# 对备份数据库列表的全部数据库备份
dumpFile=$dbName-$DATE.sql.gzsql

#若是mysql没有部署在容器里,如下脚本可自行变动[mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFile]
mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFileshell

2. 给shell脚本添加执行权限数据库

chmod +x backupdb.shbash

安装Mysql客户端app

命令行执行命令:sudo apt-get install mysql-clientspa

3. 给脚本添加定时任务命令行

 sudo 权限code

vi /etc/crontabcrontab

00 01 * * *  root /bin/sh /usr/local/mysql/backupdb.sh

添加计划任务保存便可

时间配置格式说明 https://tool.lu/crontab/

或者用下面的处理

crontab -e
输入上一行命名进行编辑定时任务,最后添加以下内容
00 01 * * * /bin/sh /usr/ local /mysql/backupdb.sh
上面的定时任务意思是天天凌晨1点会执行自动备份脚,进行MySQL数据库的定时备份.
 
crontab文件的说明:

用户建立的crontab文件中,每一行都表明一项定时任务,每行的每一个字段表明一项设置,它的格式每行共分为六个字段,前五段是时间设定字段,第六段是要执行的命令字段。

 格式以下:minute hour day month week command

参数说明:

minute: 表示分钟,能够是从0到59之间的任何整数。hour:表示小时,能够是从0到23之间的任何整数。day:表示日期,能够是从1到31之间的任何整数。month:表示月份,能够是从1到12之间的任何整数。week:表示星期几,能够是从0到7之间的任何整数,这里的0或7表明星期日。command:要执行的命令,能够是Linux系统命令,也能够是本身编写的脚本文件。

相关文章
相关标签/搜索