zoukankan      html  css  js  c++  java
  • Ubuntu下用crontab 部署定时任务

    crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通俗来讲就是执行定时任务的一个命令。

    1.crontab的安装以及服务的开启

    第一步:检查你得服务器上是否安装了crontab

    rpm -qa | grep crontab

    若没有,首先就在服务器上安装

     apt-get install cron

    第二步:开启定时任务

    运行:crontab –e
    然后进入一个可编辑的文件,编写定时任务:
    */1 * * * * /usr/bin/python /python/asch-check.py

    以上代码的寓意为:表示1分钟执行一次asch-check.py脚本

    第三步:启动服务

    service cron start

    第四步:查看定时任务

    crontab -l #查看定时任务

    2.安装日志服务rsyslog

    第一步:安装 rsyslog

    apt-get install rsyslog

    第二步:启动日志

    service rsyslog start

    第三步:编辑设置

    vi /etc/rsyslog.d/50-default.conf
    
    cron.*              /var/log/cron.log #将cron前面的注释符去掉 

    第四步:重启

    service rsyslog restart

    第五步:查看cron运行任务和日志:

    crontab -l #查看定时任务

    等到时间到了之后,发现定时任务未执行

    tail -f /var/log/cron.log  查看日志

    3.cron常用的命令

    crontab file [-u user]-用指定的文件替代目前的crontab。 
    crontab-[-u user]-用标准输入替代目前的crontab. 
    crontab-1[user]-列出用户目前的crontab. 
    crontab-e[user]-编辑用户目前的crontab. 
    crontab-d[user]-删除用户目前的crontab. 
    crontab-c dir- 指定crontab的目录。
    eg:
    service cron start     //启动服务
    
    service cron stop      //关闭服务
    
    service cron restart   //重启服务
    
    service cron reload    //重新载入配置
    
    service cron status    //查看crontab服务状态
    
    crontab –l  //查看定时任务
     

    4.常用的周期格式

    
    每五分钟执行 */5 * * * *
    
    每小时执行    0 * * * *
    
    每天执行        0 0 * * *
    
    每周执行       0 0 * * 0
    
    每月执行        0 0 1 * *
    
    每年执行       0 0 1 1 *
    
    每分钟执行一次  * * * * * user command
    
    每隔2小时执行一次**/2 ** * user command (/表示频率)
    
    每天8:30分执行一次308 * * * user command
    
    每小时的30和50分各执行一次   30,50 * * * * user command(,表示并列)
    
    每个月的3号到6号的8:30执行一次  30 8 3-6 * * user command (-表示范围)
    
    每个星期一的 8:30 执行一次   30 8 * * 1 user command (周的范围为0-7,0和7代表周日)

    eg:
    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。 
    0 */1 * * * /usr/local/etc/rc.d/lighttpd restart               #每一小时重启apache 
    0 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 

     5.特殊字符的含义

    特殊字符:
    星号(*):代表’‘每’'的意思,例如month字段如果是星号,则表示每月都执行该命令。
    逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
    中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
    正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
  • 相关阅读:
    网络编程基础【day10】:多线程效果演示(二)
    网络编程基础【day10】:进程与线程介绍(一 )
    第四模块:网络编程基础
    第三模块:面向对象(目录)
    网络编程基础【day09】:堡垒机前戏(十一)
    网络编程基础【day09】:socketserver进阶(十)
    网络编程基础【day09】:socketserver使用(九)
    网络编程基础【day09】:socket解决粘包问题之MD5(八)
    网络编程基础【day09】:socket接收大数据(五)
    网络编程基础【day09】:socket实现文件发送(六)
  • 原文地址:https://www.cnblogs.com/lxz123/p/15235005.html
Copyright © 2011-2022 走看看