Linux下的定时任务【crontab】介绍 + 使用【crontab】进行数据库备份

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

一、设置第一个cron任务

1.设置定时任务

crontab -e

进入到以下画面进行编辑,图中我已经设置了6个定时任务,分成三部分来看:

  • 0 0 * * * 表示每天0点执行
  • /usr/mysql_backup/MySQL_BackUp_Shell_1.sh 表示我要执行的脚本路径
  • ·> /dev/null 2>&1 & 表示执行结果不做记录
    编辑完成后记得保存退出,在这里有可能出现保存失败的情况,这时候就要检查自己的cron表达式即第一部分的内容有没有书写正确,如果写的有问题的话是不准予保存的。
    crontab

二、开启cron任务

  • CentOS:
systemctl start crond.service
  • Ubuntu:
sudo /etc/init.d/cron start
  • 检查开启结果:查看cron状态 若有返回值说明启动成功
pgrep cron

三、【实战】使用crontab做数据库备份

通过上述内容知道crontab可以定时执行脚本命令,那么我们将数据库备份过程集成到脚本文件中,并让crontab按照我们的意愿定时执行。

  • 首先,数据库备份的脚本命令如下所示: -> 友情感谢Mr丶晓安的脚本分享
    重点关注MY_USER、MY_PASS、MY_HOST、MY_PORT、MY_DB、BackUp_DIR这几个变量的配置,分别代表的是数据库的用户名、密码,数据库的远程主机ip地址,数据库连接端口,需要备份的数据库名,本地备份路径地址
#!/bin/sh
#┌──────────────────────────────────────────────────┐
#│             MySQL数据库备份脚本 v2.0             │
#│                                                  │
#│                                   By:Mr丶晓安   │
#│                                 www.linux-me.com │
#└──────────────────────────────────────────────────┘

#操作说明
#1、修改脚本中数据库信息以及备份路径等信息
#2、配置Crontab自动定时任务,自定义配置什么时间执行
#例:
# 分 时 日 月 周 脚本路径
#数字范围0~59 0~23 1~31 1~12 0~7
# 0  0  0  *  * MySQL_BackUp_Shell.sh
#
#数 据 库信息
MY_USER="root"
MY_PASS="root"
MY_HOST="192.168.1.1"
MY_PORT="3306"
MY_CONN="-h $MY_HOST -P $MY_PORT -u $MY_USER -p$MY_PASS" 
MY_DB="linux_me"
#配置备份路径
BackUp_DIR="/usr/mysql_backup/linux_me"
BackUp_CMD="/usr/bin/mysqldump"
BackUp_TIME=`date +%Y%m%d%H%M`
BackUp_NAME="$MY_DB-$BackUp_TIME"
#开始执行备份
cd $BackUp_DIR
$BackUp_CMD $MY_CONN --databases $MY_DB > $BackUp_NAME.sql
/bin/tar cvf $BackUp_NAME.tar.gz $BackUp_NAME.sql --remove $ > /dev/null
#定时清理N天前的备份
cd $BackUp_DIR
find $BackUp_DIR -mtime +30 -name "*.*" -exec rm -Rf {} \;
#脚本结束
  • 在这里我将该脚本命名为MySQL_BackUp_Shell.sh,并放置在/usr/mysql_backup的路径下,随后授予脚本命令权限,随后我们通过cron的定时任务自动执行
chmod +x /usr/mysql_backup/MySQL_BackUp_Shell.sh
  • 通过crontab每天0点自动执行数据库备份,这里我以CentOS系统为例
crontab -e
0 0 * * * /usr/mysql_backup/MySQL_BackUp_Shell.sh > /dev/null 2>&1 &
systemctl start crond.service
pgrep cron

结果查看,有返回值表示启动成功,等待0点的备份结果即可
结果
以上就是关于crontab的简单应用,最后再次感谢一下Mr丶晓安的脚本分享,关于数据库备份还有另一种方式,详情可以参见晓安写的另一篇博客,CentOS下构建MySQL数据库主从复制

参考资料:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值