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文件的说明:

用户创建的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系统命令,也可以是自己编写的脚本文件。

linux_MYSQL 数据库自动备份并压缩和删除历史备份的更多相关文章

  1. 【测试】通过RMAN联机全库备份,包括控制文件,归档日志文件,备份成功后,删除已备份的归档日志。

    RMAN是一个很方便很好用的备份,恢复,还原的一个工具,做这个小测试其实只有一个RMAN语句就完全解决了这么大的需求: RMAN> backup as backupset full databa ...

  2. oracle_自动备份用户数据,删除N天前的旧数据(非rman,bat+vbs)

    有时数据没有实时备份恢复那么高的安全性需求,但每天 ,或者定期备份表结构 和数据依旧是很有必要的,介绍一种方法 在归档和非归档模式均可使用的自动备份方法. 预期效果是备份用户下的数据含表结构,备份文件 ...

  3. linux下定时网站文件备份和数据备份以及删除旧备份标准代码

    直切正题: 文件备份:web.sh 数据备份:db.sh 删除旧备份:clear.sh vi web.sh文件内容为: #!/bin/bash        解释:shell脚本标准头 cd  网站文 ...

  4. 数据库自动备份压缩脚本(备份最近七天,七天之前自动删除,只保留rar文件)

    把下面脚本添加到服务器计划任务中去,设置为每天执行即可,文件备份路径即为脚本所在路径,必须安装压缩文件 @echo offrem 计算指定天数之前的日期,用于后面删除指定天数的数据set DaysAg ...

  5. backup4:数据库自动备份,自动删除备份文件

    一:手写TSQL 脚本 1,自动备份 每周进行一次Database 的 Full Backup,设置 Schedule Interval 为Weekly use master go ) )+N'.ba ...

  6. shell脚本实现数据库自动备份和删除备份

    为了安全起见,我们每天都需要备份数据库,但是备份数据库的时间往往是在凌晨左右,大家都休息,没人使用的时候,这样我们就需要linux系统实现自动备份,即定时自动执行脚本.但是我们又不能让所有的备份一直保 ...

  7. winform程序,备份数据库+并压缩+并删除以前的备份

    说明:为了定时备份服务器上的数据库并压缩到指定目录,方便下载到本地而写本程序.配合windows的任务计划,可以达到定时备份数据库的目的. 程序需引用SQLDMO.DLL,如电脑上已安装sqlserv ...

  8. ORACLE数据库自动备份压缩的批处理脚本 rar 7z

    使用7z的版本: @echo offset filename="d:\backup\dbname_%date:~0,10%"set zipfile="d:\backup\ ...

  9. 好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)

    转载:http://www.cnblogs.com/lyhabc/p/3322437.html 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 这个工具主要就是 ...

随机推荐

  1. rabbitmq学习二

    rabbitmq的六种工作模式: 这里简单介绍下六种工作模式的主要特点: 简单模式:一个生产者,一个消费者 work模式:一个生产者,多个消费者,每个消费者获取到的消息唯一. 订阅模式:一个生产者发送 ...

  2. kubernetes实战-交付dubbo服务到k8s集群(六)使用blue ocean流水线构建dubbo-consumer服务

    我们这里的dubbo-consumer是dubbo-demo-service的消费者: 我们之前已经在jenkins配置好了流水线,只需要填写参数就行了. 由于dubbo-consumer用的gite ...

  3. mybaits(十)mybatis常见面试

      面试题总结 1.MyBatis 解决了什么问题? 或:为什么要用 MyBatis? 或:MyBatis 的核心特性? 1)资源管理(底层对象封装和支持数据源) 2)结果集自动映射 3)SQL 与代 ...

  4. 强网杯 2019]随便注(堆叠注入,Prepare、execute、deallocate)

    然后就是今天学的新东西了,堆叠注入. 1';show databases; # 1';show tables; # 发现两个表1919810931114514.words 依次查询两张表的字段 1'; ...

  5. linux 基础正则表达式练习

    感谢鸟哥!!! 如果Linux能够直接连网络,使用以下命令还获取文件吧 wget http://linux.vbird.org/linux_basic/0330regularex/regular_ex ...

  6. Dockfile搭建极简LNMP环境

    最近才发现ThinkPHP6.0和CI4.x都要求php版本为7.1以上了,本机的php版本还停留在7.0.3x,又懒得升级,于是考虑使用Docker来运行一个lnmp环境. 常规环境搭建的方式有两种 ...

  7. SwiftUI All In One

    SwiftUI All In One SwiftUI SwiftUI is an innovative, exceptionally simple way to build user interfac ...

  8. vscode & javascript & react & "editor.foldingStrategy": "indentation"

    vscode & javascript & react & "editor.foldingStrategy": "indentation" ...

  9. 微信公众号 webfullstack

    微信公众号 webfullstack weixin refs https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_C ...

  10. 一个最简单 node.js 命令行工具

    一个最简单 node.js 命令行工具 node.js cli $ node cli.js xyz # OR $ node cli xyz 接受参数 process.argv js "use ...