Crontab 每隔整点1小时2小时执行一次任务

    技术2022-07-11  129

    http://www.mamicode.com/info-detail-2143845.html

    下面是crontab的格式: 分  时  日  月  星期  要运行的命令

    第1列分钟1~59 第2列小时1~23(0表示子夜) 第3列日1~31 第4列月1~12 第5列星期0~6(0表示星期天) 第6列要运行的命令

    文件中是通过 5 个“*”来确定命令或任务的执行时间的,这 5 个“*”的具体含义如表 2 所示。

    在时间表示中,还有一些特殊符号需要学习,如表 3 所示。

    当“crontab -e”编辑完成之后,一旦保存退出,那么这个定时任务实际就会写入 /var/spool/cron/ 目录中,每个用户的定时任务用自己的用户名进行区分。而且 crontab 命令只要保存就会生效,只要 crond 服务是启动的。知道了这 5 个时间字段的含义,我们多举几个时间的例子来熟悉一下时间字段,如表 4 所示。

    在运维工作中,经常用到定时任务,无论是shell脚本还是DBM JOB定时任务都是自动化必不可少的任务。之前在一个定时执行文件查找的程序中使用了crontab任务,开始的频率是整点每隔1小时执行一次,后来将其按规律改成2小时执行1次后,发现并不生效,依然是1小时执行一次的结果,参考网上和自己的测试,总算正常,现在将此例子记录一下,并顺便再延伸一些关于定时任务的内容。

    1.脚本整点每1小时执行一次 ———————————————— 版权声明:本文为博主「Echoli114」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_33195791/article/details/88868492

    #每隔1小时即60分钟执行一次 */60 * * * * . /home/jzcj/user/zhf/Ndata1/jzcj1Ndata1.sh 1>/dev/null 2>/dev/null #修改每隔2小时即120分钟执行一次,结果并未生效??? */120 * * * * . /home/jzcj/user/zhf/Ndata1/jzcj1Ndata1.sh 1>/dev/null 2>/dev/null

    每隔一小时执行一次 生效:注意是从整点开始的

    2.整点每隔2小时执行一次

    #每隔2小时执行一次脚本 0 */2 * * * . /home/jzcj/user/zhf/Ndata1/jzcj1Ndata1.sh 1>/dev/null 2>/dev/null

    样例1

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart 上面的样例表示每晚的21:30重新启动apache。

    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 上面的样例表示每月1、10、22日的4 : 45重新启动apache。

    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 上面的样例表示每周六、周日的1 : 10重新启动apache。

    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 上面的样例表示在每天18 : 00至23 : 00之间每隔30分钟重新启动apache。

    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart 上面的样例表示每星期六的11 : 00 pm重新启动apache。

    * */1 * * * /usr/local/etc/rc.d/lighttpd restart 每一小时重新启动apache

    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 晚上11点到早上7点之间,每隔一小时重新启动apache

    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 每月的4号与每周一到周三的11点重新启动apache

    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart 一月一号的4点重新启动apache

    样例2

    #每天早上7点运行一次 /bin/ls :

    0 7 * * * /bin/ls

    在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时运行一次 /usr/bin/backup :

    0 6-12/3 * 12 * /usr/bin/backup

    周一到周五每天下午 5:00 寄一封信给 alex@domain.name :

    0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

    每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....运行 echo "haha"

    20 0-23/2 * * * echo "haha"

    样例3

    #每天早上6点10分

    10 6 * * * date

    #每两个小时

    0 */2 * * * date

    #晚上11点到早上8点之间每两个小时,早上8点

    0 23-7/2,8 * * * date

    #每一个月的4号和每一个礼拜的礼拜一到礼拜三的早上11点

    0 11 4 * mon-wed date

    #1月份日早上4点

    0 4 1 jan * date

    范例$crontab -l 列出用户眼下的crontab.  

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Processed: 0.025, SQL: 9