linux的计划任务crontab

时间:2021-01-21 14:08:36

crontab(全称cron table计划任务列表)是一个用于周期性被执行的任的工具。

相关指令:

usage:    

 crontab [-u user] file
   crontab [ -u user ] [ -i ] { -e | -l | -r }    #可以指定编辑哪个用户的crontab,不指定则默认当前用户

   crontab -e    (edit user's crontab)
   crontab -l    (list user's crontab)
   crontab -r    (delete user's crontab)
   crontab -i    (prompt before deleting user's crontab)  

 service crond status  #检查服务是否启动(tips:有d的一般都是服务,例如httpd)

 yum vixie-cron&&yum install crontabs   #安装corntab

crontab的配置文件格式:

       * * * * * COMMAND

   五个*号从左到右依次代表:0~59分钟,0~23小时,1~31日期,1~12月份,0~7星期(0和7都表示周日)

case:每月1、10、22号4:45重启apache

   45 4 1,10,22 * * service httpd restart

   每月1到10和12到17号4:45重启apache

   45 4 1-10,12-17 * * service httpd restart

   每隔两分钟重启apache   

   */2 * * * * service httpd restart

   1-59/2 * * * * service httpd restart(每到奇数分钟重启apache)

小结:

   *表示任何时候都匹配

   可以用A,B,C表示A或者B或者C时执行命令

   可以用A-B表示A到B之间时执行命令

   可以用*/A表示每A分钟(小时等)执行一次命令 

   

crontab的全局配置文件在/etc/crontab

            日志文件在/var/log/cron

             用户配置文件在/var/spool/cron/用户

 

tips:利用shell的sleep命令让crontab精确到秒:*/1 * * * * sleep 30s;date >>/temp/date.log

  在COMMEND引号中使用%时,一定要加反斜线\   例如:59 1 1-7 -4 * test `date +\%w` = 0 &&echo hello

eg:     */1 * * * * root ntpdate time.nuri.net