【Linux】定时任务调度——crond任务调度

89 阅读2分钟

1 crond任务调度

crontab 进行定时任务的设置

1.1 概述

任务调度:是指系统在某个时间执行的特定的命令或程序。

任务调度分类:

  1. 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
  2. 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。

示意图

在这里插入图片描述

1.2 基本语法

crontab [选项]

1.3 常用选项

在这里插入图片描述

1.4 快速入门

设置任务调度文件:/etc/crontab

设置个人任务调度。执行crontab -e命令。

在这里插入图片描述

接着输入任务到调度文件

如:*/1 * * * * ls -l /etc/ > /tmp/to.txt

在这里插入图片描述

意思说每小时的每分钟执行ls -l /etc/ >/tmp/to.txt命令

从下图中也可以看到,/temp文件下也已经有了to.txt文件

在这里插入图片描述 通过more命令,查看 to.txt 文件里的内容

在这里插入图片描述

我们可以看到,已经成功地将/etc目录下的文件信息都打印到了 to.txt 中

参数细节说明

5个占位符的说明

在这里插入图片描述 特殊符号的说明

在这里插入图片描述

特殊时间执行案例

在这里插入图片描述

1.5 应用实例

案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中

*/1 * * * * date >>/tmp/mydate

案例2:每隔1分钟,将当前日期和日历都追加到/home/mycal 文件中

步骤:

  1. vim /home/my.sh  写入内容 date>> /home/mycal 和 cal >> /home/mycal

在这里插入图片描述 在这里插入图片描述

  1. 给 my.sh增加执行权限,chmod u+x /home/my.sh

在这里插入图片描述

因为通过ll可以看到,my.sh对任何用户都是没有执行权限的,但只有执行该脚本,才能执行里面的内容,也就是将日期和日历打印到my.sh中,所以需要增加执行的权限。

  1. crontab -e 然后在里面写入*/1 * * * * /home/my.sh

最后看一下结果,很神奇! 在这里插入图片描述

案例3:每天凌晨2:00将mysql数据库testdb ,备份到文件中。提示:指令为mysqldump -u root -p密码数据库> /home/db.bak

  1. crontab -e
  2. 0 2 * * * mysqldump -u root -proot testdb > /home/db.bak

1.6 crond相关指令

conrtab -r:终止任务调度。

crontab -l:列出当前有那些任务调度

在这里插入图片描述

service crond restart [重启任务调度]