zoukankan      html  css  js  c++  java
  • 2018/03/27 每日一个Linux命令 之 cron

    Cron 用于配置定时任务。

    --

    环境为 Ubuntu16-04 

    --

    先说说怎么配置一个简单的定时任务。直观的可以看到效果。

    之前在网上查找资料,对Shell编程不熟悉的实在是很头疼,走了不少弯路,但是这个又是是比较重要的命令。

    先明白Cron的结构,Cron是一个[守护程序]用于在指定的时间内执行行程类的任务,每一个用户都有一个Crontab文件,执行计划。相同的,系统也有一个 Crontab.

    --

    创建一个定时任务
    crontab -e
    

    当你输入指令时,会出现下面的界面,我们直接向下看最后一行

    我们的定时任务,就是写在这下面的

    写一个定时任务,先不用明白它是什么意思
    
    # m h  dom mon dow   command
    * * * * * date >> /home/vagrant/time.log
    
    重启Cron服务
    sudo service cron restart
    

      之后在你的家目录下会发现多了一个time.log文件,里面会每隔一分钟新增一条当前时间,也就是这个计划任务的含义

    vagrant@lims2:~$ tail -f time.log
    Tue Mar 27 05:57:01 UTC 2018
    Tue Mar 27 05:58:01 UTC 2018
    Tue Mar 27 05:59:01 UTC 2018
    Tue Mar 27 06:00:01 UTC 2018
    Tue Mar 27 06:01:01 UTC 2018
    Tue Mar 27 06:02:01 UTC 2018
    Tue Mar 27 06:03:01 UTC 2018
    Tue Mar 27 06:04:01 UTC 2018
    Tue Mar 27 06:05:01 UTC 2018
    Tue Mar 27 06:06:01 UTC 2018
    

    --

    现在来详解下这个计划任务

    # m h  dom mon dow   command
    * * * * * date >> /home/vagrant/time.log
    

    在你成功设置好了自己的计划任务时候,也就会理解它的作用

    仔细看其中的参数

    # m h  dom mon dow  command

      m 分钟 0-59

      h 小时 0-23

      dow 天1-31

      mon 月 1-12

      dow  星期 1-6  0表示星期天

      command 就是要执行的命令

    --

    直接看可能太不容易理解了。

    举几个例子就会明白

      1: 每1分钟执行一次command

         命令:* * * * * command

      2:每小时的第3和第15分钟执行

           命令:3,15 * * * * command

          3:在上午8点到11点的第3和第15分钟执行

         命令:3,15 8-11 * * * command

        4:每隔两天的上午8点到11点的第3和第15分钟执行

         命令:3,15 8-11 */2 * * command

       5:每个星期一的上午8点到11点的第3和第15分钟执行

         命令:3,15 8-11 * * 1 command

       6:每晚的21:30重启smb

         命令:30 21 * * * /etc/init.d/smb restart

       7:每月1、10、22日的4 : 45重启smb 

         命令:45 4 1,10,22 * * /etc/init.d/smb restart

       8:每周六、周日的1 : 10重启smb

         命令:10 1 * * 6,0 /etc/init.d/smb restart

       9:每天18 : 00至23 : 00之间每隔30分钟重启smb 

         命令:0,30 18-23 * * * /etc/init.d/smb restart

       10:每星期六的晚上11 : 00 pm重启smb 

         命令:0 23 * * 6 /etc/init.d/smb restart

       11:每一小时重启smb 

         命令:* */1 * * * /etc/init.d/smb restart

       12:晚上11点到早上7点之间,每隔一小时重启smb 

         命令:* 23-7/1 * * * /etc/init.d/smb restart

       13:每月的4号与每周一到周三的11点重启smb 

         命令:0 11 4 * mon-wed /etc/init.d/smb restart

      14:一月一号的4点重启smb 

         命令:0 4 1 jan * /etc/init.d/smb restart

      15:每小时执行/etc/cron.hourly目录内的脚本

         命令:01   *   *   *   *     root run-parts /etc/cron.hourly

    --

    里面包含了很多常用的Cron,需要时在回来补充。

    关于Cron,还有许多的用法,在之后学习和工作中有理解的话在回来补充。

    --

    参考:

      https://www.cnblogs.com/shuaiqing/p/7742382.html

      https://www.linuxidc.com/Linux/2013-05/84770.htm

    --

  • 相关阅读:
    Maven 项目管理工具基础入门系列(二)
    Python OJ 从入门到入门基础练习 10 题
    Maven 项目管理工具基础知识系列(一)
    Markdown 编辑器使用指南
    解决:GitHub 远程端添加了 README.md 文件后,本地 push 代码时出现错误
    CentOS7.4搭建基于用户认证的MongoDB4.0三节点副本集集群详细文档
    Redhat 6.7 x64升级SSH到OpenSSH_7.4p1完整文档
    RHEL6.7 x64双节点安装Oracle 11g R2 RAC
    局域网下通过代理实现服务器的互联网访问
    RedHat 6.7 Enterprise x64环境下使用RHCS部署Oracle 11g R2双机双实例HA
  • 原文地址:https://www.cnblogs.com/25-lH/p/8657311.html
Copyright © 2011-2022 走看看