zoukankan      html  css  js  c++  java
  • ubuntu下使用crontab定时器

    crontab 定时工具(周期性执行的任务列表称为Cron Table),其中每一个任务,被称为Cron Job。

    可以,每分钟执行,每小时执行,每天执行,每周执行,每月执行。

    检查服务

    1.查看任务

    jiqing@ubuntu:~/桌面$ sudo crontab -l
    no crontab for root
    

    2.查看服务

    jiqing@ubuntu:~/桌面$ sudo service cron status
    cron start/running, process 1163
    jiqing@ubuntu:~/桌面$ sudo service cron restart  
    cron stop/waiting
    cron start/running, process 20296
    
    

    安装服务

    jiqing@ubuntu:~/桌面$ sudo apt-get install cron
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    下列软件包是自动安装的并且现在不需要了:
      gstreamer0.10-plugins-ugly liba52-0.7.4 libdvdnav4 libdvdread4 libmad0
      libmp3lame0 libmpeg2-4 libopencore-amrnb0 libopencore-amrwb0 libsidplay1
      libtwolame0 libx264-142 linux-image-extra-4.4.0-31-generic
    Use 'apt-get autoremove' to remove them.
    建议安装的软件包:
      checksecurity exim4 postfix mail-transport-agent
    下列【新】软件包将被安装:
      cron
    升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 7 个软件包未被升级。
    需要下载 81.0 kB 的软件包。
    解压缩后会消耗掉 301 kB 的额外空间。
    获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty/main cron i386 3.0pl1-124ubuntu2 [81.0 kB]
    下载 81.0 kB,耗时 1秒 (40.5 kB/s)
    正在选中未选择的软件包 cron。
    (正在读取数据库 ... 系统当前共安装有 269953 个文件和目录。)
    正准备解包 .../cron_3.0pl1-124ubuntu2_i386.deb  ...
    正在解包 cron (3.0pl1-124ubuntu2) ...
    正在处理用于 man-db (2.6.7.1-1ubuntu1) 的触发器 ...
    正在处理用于 ureadahead (0.100.0-16) 的触发器 ...
    正在设置 cron (3.0pl1-124ubuntu2) ...
    cron start/running, process 22657
    

    设置任务

    >   
    是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节);
    
    >>
    这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
    
     crontab -e
    
    # m h  dom mon dow   command
    */1 *  *   *   *     date >> ~/time.log
    

    每分钟,将执行一次。将日期写入log中。

    jiqing@ubuntu:~$ cat time.log
    2018年 04月 17日 星期二 17:13:01 CST
    2018年 04月 17日 星期二 17:14:01 CST
    2018年 04月 17日 星期二 17:15:01 CST
    2018年 04月 17日 星期二 17:16:01 CST
    2018年 04月 17日 星期二 17:17:01 CST
    

    前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:

    分钟          0 - 59
    小时          0 - 23
    天            1 - 31
    月            1 - 12
    星期           0 - 6       0表示星期天
    
    除了这些固定值外,还可以配合星号(*),逗号(,),和斜线(/)来表示一些其他的含义:
    星号          表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
    逗号          可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
    斜线          一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 */2 代表每隔两分钟。所以 */1 和 * 没有区别,*/2 可以看成是能被2整除的任意值。
    

    以下是一些例子(省略了命令部分):

    * * * * *                  # 每隔一分钟执行一次任务  
    0 * * * *                  # 每小时的0点执行一次任务,比如6:00,10:00  
    6,10 * 2 * *               # 每个月2号,每小时的6分和10分执行一次任务  
    */3,*/5 * * * *            # 每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06  
    
    jiqing@ubuntu:~$ tail -f time.log 
    2018年 04月 17日 星期二 17:18:01 CST
    2018年 04月 17日 星期二 17:19:01 CST
    2018年 04月 17日 星期二 17:20:01 CST
    2018年 04月 17日 星期二 17:21:01 CST
    2018年 04月 17日 星期二 17:22:01 CST
    2018年 04月 17日 星期二 17:23:01 CST
    2018年 04月 17日 星期二 17:24:01 CST
    2018年 04月 17日 星期二 17:25:01 CST
    2018年 04月 17日 星期二 17:26:01 CST
    2018年 04月 17日 星期二 17:27:01 CST
    2018年 04月 17日 星期二 17:28:01 CST
    

    可以通过tail -f实时监控文本日志。

    若在crontab中写了如下的一个任务:
    0 6 * * * echo “Good morning.“//注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了
    可以把这个输出重定向到另外一个标准输出文件中,比如说重定向输出到一个txt文件中
    0 6 * * * echo “Good morning.” >> /tmp/test.txt 
    

    新建一个php任务。

    */1 *  *   *   *     php /home/wwwroot/default/test/test.php >> ~/phptime.log
    

    php中的代码,

    <?php
    echo date('Y-m-d H:i:s')."
    ";
    ?>
    
    jiqing@ubuntu:/home/wwwroot/default/test$ tail -f ~/phptime.log
    2018-04-17 17:39:01
    2018-04-17 17:40:01
    2018-04-17 17:41:01
    2018-04-17 17:42:01
    

    有反应哦。

  • 相关阅读:
    linux ramdisk
    linux系统灵活运用灯[android课程3]
    linux编译注解
    Linux内核3.0移植并基于Initramfs根文件系统启动
    linux0.11文件分析
    2.2linux内核移植简介
    sudo: ./sd_fusing.sh:找不到命令
    Tiny4412之C语言实现流水灯,Tiny4412裸机程序[3]
    Exynos 4412的启动过程分析[2]
    POJ 3009 Curling 2.0 {深度优先搜索}
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/8869548.html
Copyright © 2011-2022 走看看