crontab+shell脚本实现数据库定时备份

在工作场景中我们经常会遇到定时备份数据库的需求,这里写一个案例使用crontab+shell脚本实现。

1. 实现目标

要求每天凌晨12点备份test数据库,并且将备份文件放到/home/mysql_backup目录下,文件名为backup_数据库名.年-月-日.sql.gz

2. 脚本编写

#!/bin/bash# mysql的账户信息
user='root'
password='QAZqaz1234@'# 数据库的服务器地址
mysql_host='192.168.33.131'# 数据库的备份目录
backup_dir='/home/mysql_backup'# 备份文件后缀名
backup_suffix="$(date "+%Y-%m-%d").sql.gz"# 备份哪一个数据库
database='test'function backup_db(){[ -d $backup_dir ] || mkdir -p $backup_dirbackup_file="$backup_dir/backup_$database.$backup_suffix"mysqldump -u$user -p$password -h $mysql_host --single-transaction --routines --triggers --events --add-drop-database --databases $db | gzip > "$backup_file"if [ $? -eq 0 ]thenecho "$(date "+%Y-%m-%d %H:%M:%S") 备份$database数据库成功,备份文件为$backup_file" >> $backup_dir/mysql_backup.logelse echo "$(date "+%Y-%m-%d %H:%M:%S") 备份$database数据库失败" >> $backup_dir/mysql_backup.logfi
}main(){backup_db
}main

3. 测试脚本

创建脚本文件并允许,可以看到已经备份成功,并且查看日志也是正常输出

4. crontab表达式解析

.---------------- 分钟 minute (0 - 59)
|  .------------- 小时 hour (0 - 23)
|  |  .---------- 日 day of month (1 - 31)
|  |  |  .------- 月 month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- 星期 day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|  |  |  |  |    .---- 执行脚本
|  |  |  |  |    |
0  0  *  *  *  command

5. 配置crontab

添加定时任务有两种方式,使用 crontab -e或编辑/etc/crontab文件。

[root@master ~]# crontab -e
0 0 * * * bash /root/backup_db.sh

6. 验证

查看crontab日志

[root@gt-32 ~]# less /var/log/cron

查看脚本日志

[root@gt-32 ~]# cat /home/mysql_backup/mysql_backup.log

7. 删除定时任务

使用crontab -e命令然后删除需要删除的行,或crontab -r将会删除所有定时任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/292985.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux线程

文章目录 线程线程原理页表线程VS进程线程相关函数pthread_create函数pthread_selfpthread_exitpthread_cancelpthread_joinpthread_detach 线程ID 线程 什么是线程?为什么要有线程? 线程本质上就是轻量化的进程,一个进程就是一个执行流&…

WiFi+蓝牙物联网定制方案——五大核心难点

WiFi蓝牙物联网定制方案可以根据具体需求进行定制: 1、设备连接方案:采用WiFi和蓝牙技术,将物联网设备与智能手机、平板电脑等设备进行连接,实现数据传输和远程控制。 2、数据传输方案:通过WiFi和蓝牙技术,…

云上荆楚丨云轴科技ZStack成功实践精选(湖北)

湖北自古以来有九省通衢的美称,地处长江中游,富有荆楚之美誉,灵秀之蕴意。2022年湖北数字经济强省三年行动计划正式印发,计划到“十四五”末,数字经济核心产业增加值力争达到7000亿元,占GDP的比重超过12%。…

重温经典struts1之国际化(I18N)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 拿Google网站来举例,在世界上不同国家和地区,登陆Google网站,网站上都会显示本国家语言,它是怎么做到的,就是…

Android平台RTSP流如何添加动态水印后转推RTMP或轻量级RTSP服务

技术背景 我们在对接外部开发者的时候,遇到这样的技术诉求,客户用于地下管道检测场景,需要把摄像头的数据拉取过来,然后叠加上实时位置、施工单位、施工人员等信息,然后对外输出新的RTSP流,并本地录制一份…

重温经典struts1之自定义类型转换器及注册的两种方式(Servlet,PlugIn)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 Struts的ActionServlet接收用户在浏览器发送的请求,并将用户输入的数据,按照FormBean中定义的数据类型,赋值给FormBean中每个变量&a…

C++的泛型编程—模板

目录 一.什么是泛型编程? ​编辑 ​编辑 二.函数模板 函数模板的实例化 当不同类型形参传参时的处理 使用多个模板参数 三.模板参数的匹配原则 四.类模板 1.定义对象时要显式实例化 2.类模板不支持声明与定义分离 3.非类型模板参数 4.模板的特化 函数模板…

限量25台,川崎亮相Ninja ZX-10RR冬季限量款

最近川崎发布了自家ZX-10RR的超级限量版,官方称之为冬季测试版,之前也有一些车型推出过冬季测试版,通常是在年底推出,因为这个时候北半球都是非常寒冷的冬天。 不过这台ZX-10RR冬季测试版,并不仅仅只是限量那么简单&am…

【已解决】告别CorelDraw打开CDR、复制粘贴图片卡顿问题,原来CDR卡顿是前辈们的错误习惯造成的

多年前我是 CorelDRAW 的小白,从 CDR 9 一直用到 CDR X4 版。在使用 CorelDRAW 过程中最令人诟病的问题就是:卡顿! 打开 CDR 文件卡顿! 复制、粘贴图片卡顿! 区区十几MB的 CDR 文件,凭什么打开它要卡顿几…

如何开发一套家政预约小程序,家政系统有哪些功能?

家政服务小程序保洁上门预约维修 同城师傅入驻抢单派单平台开发 家政保洁预约小程序的功能与特点; 一、功能介绍 1. 小程序与公众号无缝对接,支持员工预约、项目预约两种方式,用户可随时在线预约,享受便捷服务。 2. 商家在预约小程…

CloudPulse:一款针对AWS云环境的SSL证书搜索与分析引擎

关于CloudPulse CloudPulse是一款针对AWS云环境的SSL证书搜索与分析引擎,广大研究人员可以使用该工具简化并增强针对SSL证书数据的检索和分析过程。 在网络侦查阶段,我们往往需要收集与目标相关的信息,并为目标创建一个专用文档&#xff0c…

C++(多态)

目录 前言: 1.多态的概念 2.多态的定义及实现 2.1多态的构成条件 2.2析构函数的重写(基类与派生类析构函数名字不同) 2.3虚函数重写 2.4C override 和final 2.5 重载、覆盖(重写)隐藏(重定义&#…