zoukankan      html  css  js  c++  java
  • 定时任务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参数表示,执行后面目录中的所有可执行文件。 ]

  • 相关阅读:
    Oracle 提示 用户在线,无法删除的清理方法
    拉格朗日乘子法和KKT条件
    主题模型及其在文本情感分析中的应用
    spring-data-elasticsearch整合elasticsearch
    自然数的K次幂的数列求和
    SVM 简要推导过程
    机器学习中导数最优化方法(基础篇)
    漫谈:机器学习中距离和相似性度量方法
    A geometric interpretation of the covariance matrix
    数据挖掘算法之协同过滤算法
  • 原文地址:https://www.cnblogs.com/domestique/p/7895913.html
Copyright © 2011-2022 走看看