Crontab介绍

一、Crontab是什么

  我总是喜欢将一些特别专业的词汇翻译成比较浅显易懂的词语,可能并不是很准确,但是我觉得更便于理解。

  按照前人的解释,cron是系统主要的调度进程,可以在非人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。简单来说,当我们需要让系统执行一个定时任务时,我们就会用到它,比如定时重启tomcat,或者定时调用一个jar包来执行某项功能等。

  其他详细、专业的介绍,请参考这里

二、Crontab设置

  1、查看当前用户的定时任务

  [root@localhost ~]$ crontab -l

  如果当前用户有定时任务,则会列出该用crontab文件里面的定时任务格式户的定时任务;如果没有,则会显示no crontab for root

  2、编辑当前用户的定时任务

  [root@localhost ~]$ crontab -e

  执行该条命令之后,即可在编辑状态下编写所要执行定时任务的命令。

  如当我编写以下命令并保存之后,30 03 * * * /usr/local/tomcat/apache-tomcat-6.0.26/restart.sh

  成功则出现:crontab: installing new crontab。

  3、删除当前用户的定时任务

  [root@localhost ~]$ crontab -r

  4、cron服务的启动、关闭

  cron不会自动启动,需要通过以下命令来启动、关闭这个服务:

  crond start //启动服务

  crond stop //关闭服务

  crond restart //重启服务

  crond reload //重新载入配置

 

  5、crontab文件里面的定时任务格式

  59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1

  crontab 文件中每个条目中各个域的意义和格式:

  第一列 分钟:1——59

  第二列 小时:1——23(0表示子夜)

  第三列 日 :1——31

  第四列 月 :1——12

  第五列 星期:星期0——6(0表示星期天,1表示星期一、以此类推)

  第六列 要运行的命令

  我们暂且用C1、C2、C3、C4、C5、C6代表这六列,前面五列通过组合方式来决定执行脚本的频率,最小频率为每分钟执行一次,其中Cn可以用*、*/n、T1-T2、a,b,c四种形式来表示:

  当 C1 为 * 时表示每分钟都要执行脚本,C2 为 * 时表示每小时都要执行程式,依次类推..... 

  当 C1 为 T1-T2 时表示从第 T1 分钟到第 T2 分钟这段时间内要执行,C2 为 T1-T2 时表示从第 T1 到第 T2 小时都要执行,依次类推....

  当 C1 为 */n 时表示每 n 分钟的时间间隔执行一次,C2 为 */n 表示每隔n小时的间隔执行一次,依次类推.....

  当 C1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,C2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,依次类推....

  下面列举几个例子供大家参考

  1: 59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1

  表示每天23点59分执行脚本/home/oracle/scripts/alert_log_archive.sh

  2: */5 * * * * /home/oracle/scripts/monitoring_alert_log.sh >/dev/null 2>&1

  表示每5分钟执行一次脚本/home/oracle/scripts/monitoring_alert_log.sh

  3: 0 20 * * 1-5 mail -s "**********" kerry@domain.name < /tmp/maildata

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

posted @ 2016-12-24 22:20  游玩屋  阅读(825)  评论(0编辑  收藏  举报