zoukankan      html  css  js  c++  java
  • crontab 入门

    使用前需要了解的:

    1. crontab配置的命令需要crond守护进程的支持,用ps aux | grep crond命令检查crond是否运行,如果没安装就执行:yum install -y crons

    2. crontab的所有编辑、查看、命令的运行信息、都可以在/var/log/cron日志文件中查看到

    3. 用户通过crontab -e 编辑的定时任务,存放在 /var/spool/cron/ 目录下

    4. crond守护进程每分钟去/etc/cron.d里面搜索配置文件,里面有一个0hourly文件,里面写了01 * * * * root run-parts /etc/cron.hourly。是每隔1小时去运行一次/etc/cron.hourly目录,该目录下面有一个0anacron文件,这样0anacron文件就能每小时运行一次。0anacron按照/etc/anacrontab文件里面的配置,将当前时间与/var/spool/anacron目录下面的文件里面的时间戳作对比,如果需要则去运行/etc/anacrontab对应的条目。这也是为什么/etc/anacrontab文件里面只定义了cron.daily、cron.weekly与cron.monthly,而没有定义cron.hourly,因为cron.daily、cron.weekly与cron.monthly其实是由cron.hourly调起来的。

    配置目录结构:

    /etc/cron.d               是系统自动定期需要做的任务,但是又不是按小时,按天,按星期,按月来执行的,那么就放在这个目录下面。如果是按小时,按天,按星期,按月的来执行的话,则可以放到相应的目录下面去。
    /etc/cron.hourly       是每个小时执行一次的任务
    /etc/cron.daily         是每天执行一次的任务
    /etc/cron.weekly      是每个星期执行一次的任务
    /etc/cron.monthly    是每月执行一次的任务

    /etc/crontab            前四行是用来配置crond任务运行的环境变量。

    第一行SHELL变量指定了系统要使用哪个shell,一般是bash。
    第二行PATH变量指定了系统执行 命令的路径。
    第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务 执行信息给用户

    第四行HOME变量如果被忽略,cron 会使用调用者(用户)的家目录替代。

    crontab 程序常用参数:

    crontab file //用指定文件代替目前的crontab
    crontab -l //列出某个用户cron服务的详细内容
    crontab -r //删除某个用户的cron服务(所有服务)
    crontab -e //编辑某个用户的cron服务

    比如查看root的cron设置:crontab -u root -l
    root想删除fred的cron设置: crontab -u fred -r

    如何配置时间操作符:

    星号 (*) : 此操作符为字段指定所有可用的值。举个例子,在小时字段中,一个星号等同于每个小时;在月份字段中,一个星号则等同于每月。
    逗号 (,) : 这个操作符指定了一个包含多个值的列表,例如:1,5,10,15,20,25.
    横杠 (-) : 此操作符指定了一个值的范围,例如:5-15 ,等同于使用逗号操作符键入的 5,6,7,8,9,…,13,14,15。
    分隔符 (/) : 此操作符指定了一个步进值,例如: 0-23/ 可以用于小时字段来指定某个命令每小时被执行一次。步进值也可以跟在星号操作符后边,如果你希望命令行每 2 小时执行一次,则可以使用 */2。

    crontab 配置示例:

    ### 每隔 5 分钟运行一次 backupscript 脚本 ##
    */5 * * * * /root/backupscript.sh

    ### 每天的凌晨 1 点运行 backupscript 脚本 ##
    0 1 * * * /root/backupscript.sh

    ### 每月的第一个凌晨 3:15 运行 backupscript 脚本 ##
    15 3 1 * * /root/backupscript.sh

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    ### 上面的例子表示每晚的21:30重啟lighttpd 。

    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    ### 上面的例子表示每月1、10、22日的4 : 45重啟lighttpd 。

    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    ### 上面的例子表示每周六、周日的1 : 10重啟lighttpd 。

    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    ### 上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟lighttpd 。

    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
    ### 上面的例子表示每星期六的11 : 00 pm重啟lighttpd 。

    * */1 * * * /usr/local/etc/rc.d/lighttpd restart
    ### 每一小時重啟lighttpd

    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    ### 晚上11點到早上7點之間,每隔一小時重啟lighttpd

    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
    ### 每月的4號與每周一到周三的11點重啟lighttpd

    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
    ### 一月一號的4點重啟lighttpd

    使用特殊符号:

    @reboot 在每次启动时运行一次
    @yearly 每年运行一次,等同于 “0 0 1 1 *”.
    @annually (同 @yearly)
    @monthly 每月运行一次, 等同于 “0 0 1 * *”.
    @weekly 每周运行一次, 等同于 “0 0 * * 0”.
    @daily 每天运行一次, 等同于 “0 0 * * *”.
    @midnight (同 @daily)
    @hourly 每小时运行一次, 等同于 “0 * * * *”.

  • 相关阅读:
    DB2—alter追加/删除/重置column操作
    piwik网站访问统计系统
    二、ELKStack集群架构设计
    vnstat 查看服务器带宽统计命令
    JavaScript实现瀑布流
    ansible安装文档
    tornado框架介绍
    运维工程师主要工作是做什么?
    vmware workstation无法打开内核设备问题处理办法
    Python开发之AJAX全套
  • 原文地址:https://www.cnblogs.com/yuyifeiyang/p/9895497.html
Copyright © 2011-2022 走看看