定时任务crontab介绍
原创 linux crontab 定时任务 2020-08-25 10:15:41
3 收藏 1 浏览4951 评论0
琴朗
已发34篇
有侵犯版权请及时联系我们,我们将在24小时内删除文章。
投诉举报


1.介绍

crontab  是cron table的缩写,可以理解为作业列表或者定时任务列表。


/var/spool/cron/ 目录下存放的是每个用户设置的crontab任务,每个任务以创建者的名字命名,包括root。假如你是root用户,crontab -e 编辑的内容就是vim /var/spool/cron/root的内容。


crontab在/etc目录下面有cron.hourly、cron.daily、cron.weekly、cron.monthly、cron.d5个目录和crontab、cron.deny2个文件

Image 2.png


cron.hourly  每小时执行一次的任务

cron.daily 每天执行一次的任务

cron.weekly 每周执行一次的任务

cron.monthly 每月执行一次的任务

cron.d 这个目录用来存放任何要执行的crontab文件或脚本


crontab 是负责调度各种管理和维护任务

cron.deny文件用户设置哪些用户禁用Crontab的功能



2.安装


检查是否安装了

rpm -qa | grep crontab

Image 1.png


如果没有安装,则进行安装,采用yum安装

yum install vixie-cron
yum install crontabs


检查crontab服务状态

systemctl status crond.service

Image 3.png


3.启动和设置开机启动等

systemctl restart crond.service #启动服务
 
systemctl reload crond.service #重新载入配置
 
systemctl status crond.service #查看crontab服务状态
 
systemctl enable crond.service #开机自启动


4.相关参数说明


   *              *            *          *              *            command
  分             时         日         月            周            命令

minute      hour      day     month     week       command



第1列表示:分钟1~59    每分钟用*或者 */1表示,每2分钟就是*/2  

第2列表示:小时1~23   8,16代表每天8点和16点。9-10,15-16代表每天9点到10点和每天15点到16点 

第3列表示:日期   1~31  

第4列表示:月份   1~12  

第5列表示:星期   0~6(0表示星期天)  

第6列要运行的命令


5.特殊符号



星号(*) 表示每的意思,例如分的一列写成*/2则表示每2分钟执行任务。

 

逗号(,)  表示指定,例如时的一列写成9,12,18则表示每天9点、12点18点执行任务。

 

中杠(-):表示范围,例如时的一列写成9-12,14-18则表示每天9点到12点和每天14点到18点执行任务。

 

正斜线(/):指定时间的间隔频率, 例如分的一列写成*/2则表示每2分钟执行任务。



6.示例说明

输入下面命令进行任务编辑

crontab -e


  1.每2分钟执行一次任务

*/2 * * * * /bin/sh hassend.sh


  2.每1分钟访问一次链接

*/1 * * * * curl www.yusan.cn


  3.每天1点执行一次(例如数据库定时备份)

0 1 * * * /bin/sh backup.sh


  4.每天6点和18点执行一次

0 6,18 * * * /bin/sh backup.sh


  5.每天9点到12点和下午14点到18点(例如正常上班时间执行)

0 9-12,14-18 * * * /bin/sh backup.sh


  6.每周一9点执行

0 9 * * 1 /bin/sh backup.sh


  7.每周一上午9点到12点的第10分钟和第25分钟执行

10,25 9-12 * * 1 test.sh

 

  8.每隔3天上午9点到12点的第10分钟和第25分钟执行

10,25 9-12 */3  *  * test.sh


  9.每月的1号、10号、20号的6点30执行

30 6 1,10,20 * * test.sh


  10.每2个小时执行一次

0 */2 *  *  * test.sh


评论(0) 我要评论