• Linux crontab 定时任务命令详解


    一、简介

    crontab 命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于 crontab 文件中,以供之后读取和执行。通常,crontab 储存的指令被守护进程激活, cron 常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为 cron jobs。crontab 文件包含送交 cron 守护进程的一系列作业和指令。每个用户可以拥有自己的 crontab 文件;同时,操作系统保存一个针对整个系统的 crontab 文件,该文件通常存放于 /etc 或者 /etc 之下的子目录中,而这个文件只能由系统管理员来修改。crontab 文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。

    二、安装&启动

    cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务,或者可以在/etc/rc.d/rc.local这个脚本的末尾加上:/sbin/service cron start 

    1. 启动 cron
      user@ae01:~$ sudo service cron start
      cron start/running, process 32379
      user@ae01:~$
      user@ae01:~$ lsof | grep cron
      cron      32379       root  cwd   unknown                         /proc/32379/cwd (readlink: Permission denied)
      cron      32379       root  rtd   unknown                         /proc/32379/root (readlink: Permission denied)
      cron      32379       root  txt   unknown                         /proc/32379/exe (readlink: Permission denied)
      cron      32379       root NOFD                                   /proc/32379/fd (opendir: Permission denied)
      user@ae01:~$
    2. 重新载入配置
      user@ae01:~$ sudo service cron reload
      user@ae01:~$
    3. 停止 cron
      user@ae01:~$ sudo service cron stop
      cron stop/waiting
      user@ae01:~$
      user@ae01:~$ lsof | grep cron
      user@ae01:~$

    三、语法&参数

    usage:  crontab [-u user] file
            crontab [ -u user ] [ -i ] { -e | -l | -r }
                    (default operation is replace, per 1003.2)
            -e      (edit user's crontab)
            -l      (list user's crontab)
            -r      (delete user's crontab)
            -i      (prompt before deleting user's crontab)
    user@ae01:~$

    Note:每个用户都有自己的 crontab 文件,如果你操作其他用户的的 crontab 需要使用 -u 参数

    1. 查看 root 的crontab 列表
      user@ae01:~$ sudo crontab -u root -l
      no crontab for root
    2. 配置 当前用户的 定时任务
      user@ae01:~$ crontab -e
      # For example, you can run a backup of all your user accounts
      # at 5 a.m every week with:
      # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

      Note:crontab 的配置的格式说明:
      #MIN     HOUR     DAY     MONTH     DAYOFWEEK     COMMAND 
      进入编辑模式之后,编辑的内容一定要符合下面的格式:格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下: 
      分钟 (0-59) 
      小時 (0-23) 
      日期 (1-31) 
      月份 (1-12) 
      星期 (0-6)//0代表星期天
      除了数字还有几个个特殊的符号就是"*"、"/"、"-"和",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字

     四、练习

    1. 每天早上6点 
      0 6 * * * command line 
    2. 每两个小时 
      0 */2 * * * command line 
    3. 晚上11点到早上8点之间每两个小时,早上八点 
      0 23-7/28 * * * command line 
    4. 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 
      0 11 4 * 1-3 command line 
    5. 1月1日早上4点
      0 4 1 1 * command line 
  • 相关阅读:
    git常用命令
    springcloud 心得记录
    Spring Boot整合RabbitMQ
    docker安装rabbitmq
    Linux按顺序启动多个jar的shell脚本
    idea连接docker实现一键部署
    docker安装mysql
    阿里云CentOS服务器挂载数据盘
    【selenium学习中级篇 -26】HTMLTestRunner生成测试报告
    【selenium学习中级篇 -25】Unittest框架
  • 原文地址:https://www.cnblogs.com/tannerBG/p/4062652.html
Copyright © 2020-2023  润新知