Openwrt_Linux_crontab任務_順序執行指令碼
阿新 • • 發佈:2020-12-21
Openwrt_Linux_crontab任務_順序執行指令碼
轉載註明來源: 本文連結 來自osnosn的部落格,寫於 2020-12-21.
Linux (openwrt,debian,centos...) 中 crontab 的任務太多,不想擠在一起同時執行
- 可以考慮放到一個shell指令碼中順序執行。這樣,機器的負荷就不會在那些特定的時間點暴增。
crontab 中 只需要加入一行*/5 * * * * /path.../my_tasks.sh
,每5分鐘執行一次即可。
#!/bin/sh # filename: my_tasks.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 */10 min if [ "$MIN1" -eq 0 ]; then ./mytask01.sh ./mytask02.sh fi ## run */5 min if [ "$MIN1" -eq 0 -o "$MIN1" -eq 5 ]; then ./mytask05.sh fi
- 如果使用 bash,可以用下面這個
#!/bin/bash
#當前目錄
MYTK=$(/usr/bin/dirname $(/bin/readlink -f -- $0))
MIN="$(date '+%M')" # 獲取當前分鐘數
MIN2="$((10#$MIN/10))" # 取十位, (這個操作僅bash支援)
MIN1="$((10#$MIN%10))" # 取個位
HOUR="$(date '+%H')" # 獲取當前小時數
...
---end---
轉載註明來源: 本文連結 來自osnosn的部落格.