zoukankan      html  css  js  c++  java
  • linux计划任务

    crontab

    crontab: (cron table)周期性执行任务的工具
    系统服务CROND:每分钟都会从配置文件刷新定时任务

    # 检查crontab工具是否安装
    crontab -l
    
    # 查看crond服务是否启动
    service crond status
    
    # 若未安装,则(centos7最小化安装时,已自带cron)
    yum install vixie-cron
    yum install crontabs
    

    示例:每分钟执行

    # 逻辑计划任务列表
    crontab -e
    # 在最后添加下面一行
    # */1 * * * * date >> /tmp/date.txt
    

    crontab配置格式

    * * * * * command
    分钟 小时 日期 月份 星期(0或7表示星期天) 命令

    * 表示任何时间都匹配
    A,B,C 表示A或B或C时间执行命令
    A-B 表示A到B之间执行命令
    */A 表示每A分钟(小时等)执行一次命令

    # 每晚的21:30重启apahce
    30 21 * * * service httpd restart
    # 每月1、10、22日的4:45重启apache
    45 4 1,10,22 * * service htppd restart
    # 每月1到10日的4:45重启apacche
    45 4 1-10 * * service httpd restart
    
    # 每隔两分钟重启apache
    */2 * * * * service httpd restart
    # 在每奇数分钟重启apache
    1-59/2 * * * * service httpd restart
    
    晚上11点到早上7点这间,每隔一小时重启apache
    0 23-7/1 * * * service httpd restart
    
    # 每天18:00到23:00之间每隔30分钟重启apache
    0,30 18-23 * * * service httpd restart
    0-59/30 18-23 * * * service httpd restart
    

    crontab执行日志

    # 计划任务执行日志文件,会每天自动备份
    ll /var/log/cron*
    # 查看任务执行日志
    tail -f /var/log/cron
    

    实cron际执行任务cat /var/spool/cron/用户名

    crontab 常见错误

    # 1. 环境变量
    # 环境变量在计划任务命令中,是不起作用的
    
    # 2. 第三和第五个域之间执行的是 “或” 操作,即日期或星期
    # 3. 命令行中的 % 需要加上 
    
    # 四月的第一个星期日早晨1:59分运行
    # 错误写法:59 1 1-7 4 0 /root/a.sh
    59 1 1-7 4 * test `date +\%w` -eq 0 && a.sh
    
    # 4. 分钟设置误用  
    # 两个小时运行一次,注意第一个为具体分钟数
    0 */2 * * * date
    

    秒级定时的实现

    crontab中最小只能设置到每分钟执行一个命令
    通过sleep命令的配合,可以实现秒级的计划任务

    crontab -e
    */1 * * * * date >> /tmp/date.log
    */1 * * * * sleep 30s;date >> /tmp/date.log
    
  • 相关阅读:
    android 学习
    android 学习
    阅读笔记《人月神话》1
    android 学习
    android 学习
    android 学习
    android 学习
    android 学习(家庭记账本的开发 6)
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/chencye/p/6235303.html
Copyright © 2011-2022 走看看