zoukankan      html  css  js  c++  java
  • cron Linux下的定时执行工具

    说明:测试平台  Ubuntu 16.04.4 LTS

    cron是一个Linux下的定时执行工具,可以在无需人工干预的情况下运行作业。所以,在Linux中,周期性执行的任务一般由cron这个守护进程来处理。cron会读取一个或多个配置文件,这些配置文件中包含了命令行命令及其执行的时间。cron的配置文件成为“crontab”,是“cron table”的简写。

    crontab命令用于列出、编辑、删除、安装用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中从而获得执行。每个用户都有自己的crontab文件,其该文件名就是用户名。该存放在路径 /var/spool/cron/crontabs 下。但是 1)该路径经只能通过root权限访问,2)不能再该路径下直接编辑crontab文件,必须用 crontab -e 来编辑。

    创建一个周期执行任务的步骤:

    第一步  创建crontab文件,有以下2种方式(推荐第一种)。这两种方式创建的crontab文件都可以通过命令 crontab -l 查看,也都可以通过命令 crontab -e 进行编辑。

                方式一:执行 crontab -e 命令,如果是第一次执行会让你选择文本编辑器,更换编辑器使用 select-editor 命令,见下图选3或者4即可使用vim编辑。打开之后编辑一条命令,见右图,然后保存。

                                 

                 方式二: 1)自己写一个文本文件,名字随便起,但文本内容要遵循crontab的规则。例如新建文件123.txt,在里面写 1 * * * * echo "This is a test" ,然后保存;

                                2)添加定时任务,执行 crontab 123.txt 命令。搞定。

    第二步 启动cron服务,执行命令 sudo service cron start 

    crontab命令的使用及格式

    crontab -l    # 列出当前用户的crontab
    crontab -e    # 编辑当前用户的crontab
    crontab -r    # 删除当前用户的crontab
    crontab -ir # 删除当前用户的crontab时提醒用户

    在crontab文件中需要指定时间和要执行的命令或者脚本,格式如下:

    {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script} 
    第一列 minute 表示分钟: 区间为 0 – 59  每分钟用 * 或者 */1 表示
    第二列 hour 表示小时: 区间为 0 – 23 
    第三列 day-of-month 表示日期: 区间为 1 – 31 
    第四列 month 表示月份: 区间为 1 – 12. 1 是1月. 12是12月. 
    第五列 Day-of-week 表示星期: 区间为 0 – 7. 周日可以是0或7.
    第六列 表示要运行的命令
    除了数字还有几个个特殊的符号:* / - ,
    *:代表所有的取值范围内的数字,即代表所有有效的值
    /:代表每的意思,用来指定间隔频率, */5 表示每5个单位,
    -:代表从某个数字到某个数字,指定一个整数范围,1-4 意味着整数 1 2 3 4
    ,:分开几个离散的数字,
    举例:
    每隔1个小时执行一次 ls
    0 */1 * * * ls
    每隔2个小时执行一次 ls
    0 */2 * * * ls
    每隔3个小时执行一次 ls
    0 */3 * * * ls
    每隔4个小时执行一次 ls
    0 */4 * * * ls
    每隔10天执行一次 ls
    0 0 */10 * * ls
    每天1点执行 ls
    0 1 * * * ls

    cron服务的启动和关闭

    sudo service cron start    # 启动cron服务
    sudo service cron stop     # 关闭cron服务
    sudo service cron restart  # 重新启动cron服务
    sudo service cron reload   # 重新载入状态
    sudo service cron status   # 查看cron服务

    也可以使用如下命令,效果相同

    sudo /etc/init.d/cron start    # 启动cron服务
    sudo /etc/init.d/cron stop     # 关闭cron服务
    sudo /etc/init.d/cron restart  # 重新启动cron服务
    sudo /etc/init.d/cron reload   # 重新载入状态
    sudo /etc/init.d/cron status   # 查看cron服务

    更多信息:

    1)查看cron的manual: $man cron 

    2)查看crontab的manual: $man crontab 

    3)CronHowto:https://help.ubuntu.com/community/CronHowto

  • 相关阅读:
    三、Java基础工具(1)_常用类——用户和程序交互
    二、Java面向对象(18)_枚举
    二、Java面向对象(17)_内部类
    二、Java面向对象(16)_接口
    二、Java面向对象(15)_模板方法设计模式
    【UWP】解析GB2312、GBK编码网页乱码问题
    【WP8.1】类似“IT之家” 自定义消息 的实现
    【WP8.1】HttpClient网络请求、进度以及终止
    【Win10】SplitView控件
    【WIN10】绑定x:Bind
  • 原文地址:https://www.cnblogs.com/0820LL/p/9518512.html
Copyright © 2011-2022 走看看