crontab命令的正确用法

crontab命令的正确用法

先看下用法:

crontab参数

管理cron机制,让系统在指定的时间,去执行指定命令。

    -u:这个参数可以让我们去编辑其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab

    crontab -u 使用者名称

    -l:可以列出crontab的内容

    -r:可以移除crontab

     -e:可以使用系统预设的编辑器,开启crontab

    -i:可以移除crontab,会跳出系统信息让你再次确定是否移除crontab

crontab时间格式说明

五个区域: * * * * *

依次:

  •     minute(分)可以设置0-59分
  •     hour(小时)可以设置0-23小时
  •     day of month(日期)可以设置1-31号
  •     month(月份):可以设置1-12月

    day of week(星期):可以设置0-7星期几,其中0和7都代表星期天,或者我们也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一等等

crontab时间格式范例

    2-5表示2 3 4 5

    1-9/2表示13579,/n表示每n

crontab范例

    每五分钟执行  */5 * * * *

    每小时执行    */60 * * * *

    每天凌晨执行        0 0 * * *

    每周凌晨执行      0 0 * * 0

    每月1号凌晨执行        0 0 1 * *

    每年1月1号凌晨执行      0 0 1 1 *

补充:网上对于每小时执行的命令:

00 *   * * *  #每隔一小时执行一次
00 */1 * * *  #与上面是相同的任务

其真正的含义:每个时间的00点执行,即1:00 2:00等,如果在00:59设置的任务,那么在01:00会执行,所以并非真正意义上的每小时。

以每2小时为例,正确的命令:

#以下代表2:00,4:00等时间点执行
00 */2 * * * 

补充:

设定cron的权限

    /etc/cron.allow

    /etc/cron.deny

    系统首先判断是否有cron.allow这个文件,如果有这个文件的话,系统会判断这个使用者有没有在cron.allow的名单里面,如果在名单里面的话,就可以使用cron机制。如果这个使用者没有在cron.allow名单里面的话,就不能使用cron机制。

     如果系统里面没有cron.allow这个文件的话,系统会再判断是否有cron.deny这个文件,如果有cron.deny这个文件的话,就会判断这个使用者有没有在cron.deny这个名单里面,如果这个使用者在cron.deny名单里面的话,将不能使用cron机制。如果这个使用者没有在cron.deny这个名单里面的话就可以使用cron机制。

    如果系统里这两个文件都没有的话,就可以使用cron机制

介绍crontab文件

    /etc/crontab

    在这个文件里并没有记录系统要执行哪些工作,而是记录了下面四个子目录。

    /etc/cron.hourly

    /etc/cron.daily

    /etc/cron.weekly

    /etc/cron.monthly

    这些子目录里存放了一些脚本,到了crontab所指定的时间点,系统就会去执行这些子目录里的脚本。

发表评论