定时任务crontab

Posted 关灯吃面

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定时任务crontab相关的知识,希望对你有一定的参考价值。

计划任务分为两类:系统级和用户级

无论是系统级还是用户级的cron计划都是文本文件,系统的计划文件存放在/etc/crontab路径下。用户的计划文件放在/var/spool/cron/用户名,不管是哪一种,都可以满足我们定制计划任务的需求。root用户可以直接对文件进行修改来编写计划任务也可以使用 crontab -e命令,而普通用户只能使用后者。

crontab任务配置基本格式: *  *  *  *  *    command

* * * * *  /usr/bin/sh  /root/check.sh   举例,执行命令/usr/bin/sh最好用绝对路径

tail -f /var/log/cron 查看计划任务的日志

 

1.  键入 crontab  -e 编辑crontab服务文件 

2. 查看该用户下的crontab服务是否创建成功, 用 crontab  -l 命令  

3. 启动crontab服务 

      一般启动服务用  /sbin/service crond start 若是根用户的cron服务可以用 sudo service crond start, 这里还是要注意 下不同版本linux系统启动的服务的命令也不同 ,有的虚拟机里只需用 sudo service cron restart 即可,若是在根用下直接键入service cron start就能启动服务。 

4. 查看服务是否已经运行用 ps -ax | grep cron 

5. crontab命令

      cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

      crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数     

   crontab -l //列出某个用户cron服务的详细内容   

      crontab -r //删除没个用户的cron服务   

      crontab -e //编辑某个用户的cron服务   

root查看自己的cron设置:crontab -u root -l   

root想删除fred的cron设置:crontab -u fred -r   

在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e ,进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

7. cron文件语法:

      分       小时    日       月       星期     命令

      0-59   0-23   1-31   1-12     0-6      command     (取值范围,0表示周日一般一行对应一个任务)

     记住几个特殊符号的含义:

         "*"代表取值范围内的数字,           

   "/"代表”每”,         

        "-"代表从某个数字到某个数字,         

        ","分开几个离散的数字

8. 任务调度设置文件的写法      

可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件     

具体格式如下:      

 Minute Hour Day Month Dayofweek   command      

 分钟     小时   天     月       天每星期       命令      

举例如下:    

5       *       *           *     *     ls             指定每小时的第5分钟执行一次ls命令    

30     5       *           *     *     ls             指定每天的 5:30 执行ls命令    

30     7       8         *     *     ls              指定每月8号的7:30分执行ls命令    

30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令    

30     6       *           *     0     ls            指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1, 以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

30     3     10,20     *     *     ls            每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]

25     8-11 *           *     *     ls            每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]

*/15   *       *           *     *     ls           每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]

30   6     */10         *     *     ls           每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]

每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件

50   7       *             *     *     root     run-parts     /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

 

以上是关于定时任务crontab的主要内容,如果未能解决你的问题,请参考以下文章

linux定时任务(crontab)

Crontab定时任务

centos7 ubuntu crontab定时任务

Celery实现定时任务crontab

定时任务小结

Linux定时任务-crontab