zoukankan      html  css  js  c++  java
  • linux下的cron定时任务知识梳理

    1 cron定时任务

    1.1 cron介绍

      为什么需要cron定时任务?

      1)cron服务在安装完Linux系统后就默认就存在,主要用来定期执行命令或定期执行指定的应用程序;

      2)cron服务默认情况下每分钟会检查系统中是否有需要执行的定时任务,如果有,就会根据事先执行好的规则来执行这个任务;

      3)cron的守护进程服务:crond服务.注意的是,cron不擅长秒级的任务,如果要用秒级的任务,最好使用while语句的shell脚本.

    [root@localhost ~]# crontab --help	#<==cron的语法及主要的参数如下
    Usage:
     crontab [options] file
     crontab [options]
     crontab -n [hostname]
    Options:
     -u <user>  define user          #<==指定用户,不指定默认就是当前用户
     -e         edit user's crontab		#<==编辑用户自己的定时任务文件
     -l         list user's crontab		#<==列出用户自己的定义的定时任务
     -r         delete user's crontab	#<==删除清空用户的定时任务计划(很少使用)
    [root@localhost ~]# systemctl status crond.service	#<==centos7查看定时任务对应的服务是否开启
    [root@test ~]# /etc/init.d/crond status			#<==centos6
    crond (pid  1052) is running...
    #注意的是,在命令行执行 crontab {l|e} 实质上就是在操作 /var/spool/cron/$USER 下对应用户自定义的定时任务配置文件
    [root@localhost ~]# ll /var/spool/cron/$USER
    -rw------- 1 root root 9 12月 9 21:38 /var/spool/cron/root
    [root@localhost ~]# ll /var/spool/cron/
    总用量 8
    -rw------- 1 root root 9 12月 9 21:38 root
    -rw------- 1 root root 9 12月 9 21:45 test
    

    1.2 cron定时任务书写格式及各项含义

      定时任务记忆方法示意图(简要记忆方法就是"分时日月周"):

      定时任务中各个*号代表的含义(从左往右):   

    自左往右的星号 含义 取值范围
    第1个星号 * 分钟 00-59 , 0可以用单个0代替
    第2个星号 * 小时 00-23
    第3个星号 * 日/天 01-31
    第4个星号 * 月份 01-12
    第5个星号 * 星期几 0-7 ,0和7都是代表星期天

      cron语法格式中用到的特殊符号的含义:

    特殊符号 含义
       *

    *代表任意时间,即每个时间位上的"每"的意思,如:

    00 12 * * * cmd 的意思是每天的12点整都执行cmd任务

       -

    减号-代表分隔符,用来表示一个时间范围和区间段,如:

    00 12-13 * * * cmd 代表每天的12,13的整点之间都执行cmd

       ,

    逗号,代表分隔时间段,用来写不连续的时间段,如:

    00 1,13,23 * * * cmd 代表每天的1,13,23点整都执行cmd

    注意,逗号,和减号-可以混用,如:

    00 1-3, 22-23 * * * cmd 代表1,2,3,22,23的5个整点都执行cmd

       /n

    n代表的是数字,即"每隔n个单位时间"的意思,如:

    */30 * * * * cmd 代表每隔30分钟都执行cmd

    注意/n参数的位置,代表不同的分时日月周的每n个单位时间

    1.3 定义任务cron小结

      书写定时任务时,注意以下几个方面:

      1)要为定时任务添加必要的注释,和写脚本或者代码都是一样.

      2)shell脚本和sh程序,须写全路径,如/bin/sh /server/scripts/a.sh .如果sh程序不写全路径,则须给脚本加 x 期限.

      3)定时任务后面须加 &>/dev/null ,防止邮件目录小文件过多.

      4)如果定时任务脚本是Tomcat环境下的,须在脚本中加入Tomcat的环境变量. 

  • 相关阅读:
    php函数、php定义数组和数组遍历
    php语句
    php基础
    phpcms 标题设置
    上传头像预览
    简单的轮播样式
    ajax 小练习
    生成地图
    php注释规范
    thinkphp 实现分页
  • 原文地址:https://www.cnblogs.com/blog-tim/p/12014023.html
Copyright © 2011-2022 走看看