• centos7定时任务


    在centos上最常用的定时任务服务是crond。
    任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的。用户自己设置的计划任务则使用crontab命令。crond和crontab是不可分割的。

    1. 安装软件服务

    正常centos7自动安装crond服务及crontab,不用安装。如果找不到该服务,则使用命令安装。

    # 检查crond服务是否安装
    yum list cronie  
    
    # 查看crond服务运行状态
    systemctl status crond
    
    # 安装服务
    yum install -y cronie crontabs
    

    2. crond和crondtab常用命令

    2.1 crond常用命令

    systemctl start   crond      # 启动服务
    systemctl stop    crond      # 停止服务
    systemctl restart crond      # 重启服务
    systemctl reload  crond      # 重载配置文件
    systemctl status  crond      # 查看状态
    

    2.2 crontab常用命令

    crontab -u 		# 设定某个用户的cron服务
    crontab -l		# 显示crontab文件(显示已设置的定时任务)
    crontab -e		# 编辑crontab文件(编辑定时任务)
    crontab -r		# 删除crontab文件(删除定时任务)
    crontab -i		# 删除crontab文件提醒用户(删除定时任务)
    

    3. 定时任务格式

    查看配置文件/etc/crontab

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    
    # For details see man 4 crontabs
    
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name  command to be executed
    

    定时任务基本格式:

    *  *  *  *  *  command
    分  时  日  月  周  命令
    
    第1列表示分钟1~59 每分钟用*或者*/1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令
    
    *:表示任意时间,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分
    -:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令
    ,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令
    /n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次
    

    4. 编辑定时任务的方式

    4.1 直接编辑配置文件

    配置文件路径:/etc/crontab

    在配置文件中,原本6个段的配置,我们需要在命令前面再加一个用户段

    即:分 时 日 月 周 用户 命令

    直接添加到最后一行即可

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    
    # For details see man 4 crontabs
    
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name  command to be executed
     
     */20 *  *  *  *  root  /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1
    

    4.2 使用crontab -e 命令编辑

    使用命令编辑相当于就是编辑当前用户的任务,所以不需要加用户字段,这里就是6段

    */20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1
    

    4.3 直接编辑目标文件

    进入/var/spool/cron/目录,这个目录下的文件都是以用户命名的,文件内容就是用户设置的定时任务。

    使用crontab -e 命令添加的任务,都是编写在该文件下。

    4.4 实例

    (1)每晚的21:30重启apache

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    

    (2)每月1、10、22日的4 : 45重启apache

    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    

    (3)每周六、周日的1 : 10重启apache

    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    

    (4)每天18 : 00至23 : 00之间每隔30分钟重启apache

    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    

    (5)每星期六的23 : 00重启apache

    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
    

    (6)每一小时重启apache

    * */1 * * * /usr/local/etc/rc.d/lighttpd restart
    

    (7)晚上11点到早上7点之间,每隔一小时重启apache

    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    

    (8)每月的4号与每周一到周三的11点重启apache

    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
    

    (9)一月一号的4点重启apache

    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
    

    (10)给任务添加自定义日志输出

    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart >> /var/log/mycron/mylog.log 2>&1
    

    5. 相关文件

    /etc/cron.deny     # 该文件中所列用户不允许使用crontab命令
    /etc/cron.allow    # 该文件中所列用户允许使用crontab命令
    /var/spool/cron/   # 所有用户crontab文件存放的目录,以用户名命名
    /var/log/cron      # crond日志文件
    
  • 相关阅读:
    Zojax.com
    holtwick/pyxer
    深入学习爬虫的三个方向
    阅读gunicorn代码文档¶
    A database of opensource HTTP proxies written in python: htfilter2
    WebDebug: Enhancements
    北京网康科技有限公司关于网康
    用CONNECT方法突破HTTP代理服务器的扩展名封锁(python) [转] MyNewID 博客园
    NAT功能的用途是什么?有没有实例举一下?_百度知道
    wsgiref — WSGI Utilities and Reference Implementation¶
  • 原文地址:https://www.cnblogs.com/Jimc/p/16140335.html
Copyright © 2020-2023  润新知