zoukankan      html  css  js  c++  java
  • Linux定时任务系统cron

    在Linux系统中,计划任务一般是由cron承担,我们可以把cron设置为开机时自动启动。cron启动后,它会读取它的所有配置文件(全局性配置文件/etc/crontab,每个用户的配置文件),然后cron会根据命令和执行时间按时来调用度工作任务。

     

    /etc/crontab文件格式的说明请参看另外一篇文章《crontab文件》。

    全局性配置文件/etc/crontab可以通过诸如vi、gedit等文字编辑器直接修改,而每个用户的配置文件则只能通过crontab命令来修改。

    crontab命令的基本用法:

    • crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    • crontab -l //列出某个用户cron服务的详细内容
    • crontab -r //删除没个用户的cron服务
    • crontab -e //编辑某个用户的cron服务

    例如,root查看自己的cron设置:

    crontab -u root -l

    再例如,root想删除fred的cron设置:

    crontab -u fred -r

    我的操作系统是Ubuntu 12.04,我们可以打开/ets/crontab看看其内容:

    # /etc/crontab: system-wide crontab
    # Unlike any other crontab you don't have to run the `crontab'
    # command to install the new version when you edit this file
    # and files in /etc/cron.d. These files also have username fields,
    # that none of the other crontabs do.
    
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # m h dom mon dow user    command
    17 *    * * *    root    cd / && run-parts --report /etc/cron.hourly
    25 6    * * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
    47 6    * * 7    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
    52 6    1 * *    root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

     

    前两行是用来配置cron任务运行环境的变量。SHELL 变量的值告诉系统要使用哪个 shell 环境(在这个例子里是 bash shell),PATH 变量定义用来执行命令的路径。

     

    后面的四行使用run-parts脚本来执行/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly和/etc/cron.monthly目录中的脚本,这些脚本被相应地每小时、每日、每周、或每月执行。这些目录中的文件应该是shell脚本。

     

    在/etc目录下还有一个cron.d的子目录,这个目录是干什么的呢?当我们要增加全局性的计划任务时,一种方式是直接修改/etc/crontab。但是,一般不建议这样做,/etc/cron.d目录就是为了解决这种问题而创建的。例如,增加一项定时的备份任务,我们可以这样处理:在/etc/cron.d目录下新建文件python-backup,内容如下:

    # m h dom mon dow user command
    26 16 * * * root tar zcvf /var/backups/home.tar.gz /home/amonest/python

    cron进程执行时,就会自动扫描该目录下的所有文件,按照文件中的时间设定执行后面的命令。

    总结成一句话:cron执行时,要读取三个地方的配置文件:一是/etc/crontab,二是/etc/cron.d目录下的所有文件,三是每个用户的配置文件. 

    /etc/cron.d目录的更多信息可以参考文档《Fine-grained task scheduling with cron.d

  • 相关阅读:
    用Eclipse+MyEclipse开发struts的一个经典的实例(转)
    TOMCAT配置虚拟目录
    翻动100万级的数据(自定义的MSSQL分页查询过程)
    MyEclipse Hibernate 快速入门中文版
    微软提供的数据访问组件SqlHelper
    Java内存管理(一、内存分配)
    使用commonlogging与log4j打印日志,发现版本冲突
    Java内存管理(二、Java垃圾回收)
    初探java内存机制_堆和栈
    关于单CPU,多CPU上的原子操作
  • 原文地址:https://www.cnblogs.com/eastson/p/2554502.html
Copyright © 2011-2022 走看看