美文网首页
如何用crontab设置定时任务

如何用crontab设置定时任务

作者: 萨莉兔 | 来源:发表于2020-02-12 18:09 被阅读0次

最近大家众志成城,全国抗疫。

为了更好的应对疫情,我们采取了每日健康问卷打卡的方式去统计大家的健康状态。但是每天人工提醒非常低效,所以我们想到了机器人。我们办公通讯软件用的是D-chat,原来就自带机器人,所以只要写好一段脚本后放到服务器,在服务器用crontab编辑定时任务即可,非常的方便。

1. 准备好根据机器人接入规则所写的testor.sh 脚本(打码了部分信息):

curl 'https://im-dichat.****.com/api/hooks/incoming/c72be1cb-fc15-45c6-8d32-*******1172d' -H 'Content-Type: application/json' -H 'Content-Type: application/json' -d '

{"text": "@所有人 桔子们,每天中午13:00前记得要健康打卡喔~",

"attachments": [{

"title": "没填戳戳我,填了忽略我",

"url": "https://page.********/ddPage_0CwaIIVJ.html",    // 问券地址

"color": "#ffa500"

}]}'

2. 找一台服务器。

由于我的机器人https://im-dichat.****.com地址是外网地址,所以服务器一定要可以访问外网,不然请求发布出去。可以登录服务器后ping一下看下是否支持。

常用命令:

crontab -l (查看目前有的定时任务)

crontab -e (编辑定时任务列表)

localhost:~ sally$ crontab -l

30 10 * * *  /bin/sh  /Users/sally/Desktop/testor.sh 

基础语法:*  *  *  *  *  command   脚本(用绝对路径)

语法例子可以参照:

实例1:每1分钟执行一次

* * * * * /bin/sh  /Users/sally/Desktop/testor.sh 

实例2:每小时的第3和第15分钟执行一次

3,15 * * * * /bin/sh  /Users/sally/Desktop/testor.sh 

实例3:每天的8点到11点的第3和第15分钟执行一次

3,15 8-11 * * * /bin/sh  /Users/sally/Desktop/testor.sh 

实例4:每隔两天的上午8点到11点的第3和第15分钟执行一次

3,15 8-11 */2 * * /bin/sh  /Users/sally/Desktop/testor.sh 

实例5:每周一上午8点到11点的第3和第15分钟执行一次

3,15 8-11 * * 1 /bin/sh  /Users/sally/Desktop/testor.sh 

实例6:每晚的21:30执行一次

30 21 * * * /bin/sh  /Users/sally/Desktop/testor.sh 

实例7:每月1、10、22日的4 : 45执行一次

45 4 1,10,22 * * /bin/sh  /Users/sally/Desktop/testor.sh 

实例8:每周六、周日的1 : 10执行一次

10 1 * * 6,0 /bin/sh  /Users/sally/Desktop/testor.sh 

实例9:每天18 : 00至23 : 00之间每隔30分钟执行一次

0,30 18-23 * * * /bin/sh  /Users/sally/Desktop/testor.sh 

实例10:每星期六的晚上23: 00 pm执行一次

0 23 * * 6 /bin/sh  /Users/sally/Desktop/testor.sh 

实例11:每一小时执行一次

* */1 * * *  /bin/sh  /Users/sally/Desktop/testor.sh 

实例12:每天晚上23点到第二天7点之间,每隔一小时执行一次

* 23-7/1 * * * /bin/sh  /Users/sally/Desktop/testor.sh 

实例13: 每个星期的第一天执行一次(即每个星期天晚上24:00开始执行).

@weekly /bin/sh  /Users/sally/Desktop/testor.sh 

实例14:每个月的15日执行一次.

0 11 15 * * /bin/sh  /Users/sally/Desktop/testor.sh 

实例15:每个月的第一天执行一次(即每个月的1日凌晨0点开始执行).

@monthly /bin/sh /Users/sally/Desktop/testor.sh 

实例16: 在指定的月份执行一次(在1月,4月和 6月每天晚上0点执行一次).

0 0 * jan,apr,jun * /bin/sh  /Users/sally/Desktop/testor.sh 

实例17: 重启后执行一次.

@reboot  /bin/sh  /Users/sally/Desktop/testor.sh 

效果:

crontab可能出现的问题:

4.2  crontab不执行

脚本中涉及文件路径时写全局路径,当手动执行脚本OK,但是crontab死活不执行时很有可能是环境变量,可尝试在crontab中直接引入环境变量解决问题,例如:

0 * * * * . /etc/profile;/bin/sh  /Users/sally/Desktop/testor.sh 

还有 /bin/sh 路径要写对,文件要写绝对路径!

4.3  crontab无权限执行

只有 root 用户和 crontab 文件的所有者可以在 -e 、-l、-r 和 -v标志后面使用UserName以编辑、列出、除去或验证指定用户的 crontab 文件。

想编辑别的用户的 crontab, 使用root运行下面的命令

 crontab -u username -e

OK。

相关文章

  • crondtab 定时任务

    编辑定时任务 crontab -e 查看定时任务 crontab -l 删除定时任务 crontab -r 如:*...

  • mac 定时任务

    1、使用crontab设置定时任务 crontab -e 或者sudo crontab -e。 00 16 * *...

  • 如何用crontab设置定时任务

    最近大家众志成城,全国抗疫。 为了更好的应对疫情,我们采取了每日健康问卷打卡的方式去统计大家的健康状态。但是每天人...

  • Python-crontab和Django-crontab 实现

    Linux中可以使用crontab设置定时任务,可以通过命令crontab -e编写任务,也可以直接写配置文件设置...

  • crontab定时任务

    使用crontab部署定时任务 什么是Crontab?Crontab命令是Unix系统和类Unix系统中,用来设置...

  • 学习Linux2

    linux 学习2 定时任务管理 crond 任务调度 crontab 进行 定时任务的设置 概述任务调度:是指系...

  • crontab 定时任务

    查看当前用户的定时任务列表 创建(编辑)定时任务列表 定时任务格式 删除定时任务 注意 一定要设置crontab的...

  • linux crontab: 定时任务

    参考 crontab 定时任务 Linux之crontab定时任务

  • 【Python】uwsgi日志切割

    crontab设置定时任务 uwsgi.ini配置 touchforlogrotate.sh配置

  • crond任务调度(定时任务调度)

    基本语法crontab [选项]选项-e : 编辑crontab定时任务-l : 查询crontab定时任务...

网友评论

      本文标题:如何用crontab设置定时任务

      本文链接:https://www.haomeiwen.com/subject/lnucfhtx.html