linux_MYSQL 数据库自动备份并压缩和删除历史备份
1. 创建shell脚本
#! /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.gz
#如果mysql没有部署在容器里,以下脚本可自行变更[mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFile]
mysqldump -u$user -p$userPWD $dbName | gzip > $newdir/$dumpFile
2. 给shell脚本添加执行权限
chmod +x backupdb.sh
安装Mysql客户端
命令行执行命令:sudo apt-get install mysql-client
3. 给脚本添加定时任务
sudo 权限
vi /etc/crontab
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文件中,每一行都代表一项定时任务,每行的每个字段代表一项设置,它的格式每行共分为六个字段,前五段是时间设定字段,第六段是要执行的命令字段。
格式如下: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系统命令,也可以是自己编写的脚本文件。
最新文章
- windows下使用C#获取特定进程网络流量
- Remoting and web services using Spring[摘自官网]
- vs2010/2013项目的C++所在文件夹越来越大如何解决?
- 剑指Offer:面试题32——从1到n整数中1出现的次数(java实现)
- 那年有关 return ; 的一切
- JVM监测&;工具[转]
- Android MotionEvent事件响应机制
- Git - Tutorial [Lars Vogel]
- MFC中OnDraw()和OnPaint()的区别[转]
- SqlServer数据库设计,纠结的问题,有胆你就来!
- UVA11388 GCD LCM1 2 -1
- android systemUI--Notification 整理
- Java Code Style
- 四、Mysql主从同步
- Permanent Space 和 Heap Space
- laravel中当使用Elquent ORM中的模型作为参数进行传递时的方法:
- WordPress设置地址的问题
- 开源一个最近写的spring与mongodb结合的demo(spring-mongodb-demo)
- 介绍一些有趣的MySQL pager命令
- 对于在Android Studio 的 build.gradle 中的默认applicationId 要不要写呢?