zoukankan      html  css  js  c++  java
  • Openwrt_Linux_crontab任务_顺序执行脚本

    Openwrt_Linux_crontab任务_顺序执行脚本

    转载注明来源: 本文链接 来自osnosn的博客,写于 2020-12-21.

    Linux (openwrt,debian,centos...) 中 crontab 的任务太多,不想挤在一起同时执行

    • 可以考虑放到一个shell脚本中顺序执行。这样,机器的负荷就不会在那些特定的时间点暴增。
      crontab 中 只需要加入一行*/5 * * * * /path.../runTaskInSequence.sh,每5分钟执行一次即可。
    #!/bin/sh
    # filename: runTaskInSequence.sh
    
    # current dir
    MYTK=$(dirname $(readlink -f -- $0))
    cd $MYTK
    
    MIN="$(date '+%M')"       #min
    MIN1="$(expr $MIN % 10)"  #min%10
    #MIN2="$(expr $MIN / 10)"  #min/10
    #HOUR="$(date '+%H')"      #hour
    
    ## run every hour
    if [ "$MIN" -eq 10 ]; then
       ./mytask11.sh
       ./mytask12.sh
    fi
    
    ## run every half hour
    if [ "$MIN" -eq 10 -o "$MIN" -eq 40 ]; then
       ./mytask21.sh
       ./mytask22.sh
    fi
    
    ## run */10 min
    if [ "$MIN1" -eq 0 ]; then
       ./mytask31.sh
       ./mytask32.sh
    fi
    
    ## run */5 min
    ./mytask01.sh
    
    • 如果使用 bash,可以用下面这个
    #!/bin/bash
    
    #当前目录
    MYTK=$(/usr/bin/dirname $(/bin/readlink -f -- $0))
    cd $MYTK
    
    MIN="$(date '+%M')"     # 获取当前分钟数
    MIN2="$((10#$MIN/10))"  # 取十位, (这个操作仅bash支持)
    #MIN1="$((10#$MIN%10))"  # 取个位
    #HOUR="$(date '+%H')"    # 获取当前小时数
    ...
    

    ---end---


    转载注明来源: 本文链接 来自osnosn的博客.

  • 相关阅读:
    C++结构体中sizeof
    sizeof()的用法
    XStream和Json
    省市联动
    ajax
    配置文件的读取
    JSP标签库
    字符串函数参数传入传出(去空格)
    字符串函数参数传入传出(字符串反转)
    opendir,readdir,closedir
  • 原文地址:https://www.cnblogs.com/osnosn/p/14168336.html
Copyright © 2011-2022 走看看