我搜索了論壇找不到的一個。我們可以定義一個變量,每個cronjob只能增量運行嗎?在shell腳本中定義一個增量變量,每個cronjob增量
例如:
我有一個運行每5分鐘所以我需要的是增量基礎上,cron運行
說,如果運行作業5分鐘幾分鐘變量的腳本。所以6次腳本得到執行的,所以我的計數器變量應該是6現在
林在bash期待/殼
道歉,如果一個重複的問題
嘗試:
((count+1))
我搜索了論壇找不到的一個。我們可以定義一個變量,每個cronjob只能增量運行嗎?在shell腳本中定義一個增量變量,每個cronjob增量
例如:
我有一個運行每5分鐘所以我需要的是增量基礎上,cron運行
說,如果運行作業5分鐘幾分鐘變量的腳本。所以6次腳本得到執行的,所以我的計數器變量應該是6現在
林在bash期待/殼
道歉,如果一個重複的問題
嘗試:
((count+1))
你可以做它這樣:
increment_counter.sh
執行. /path/to/counter.sh
爲/etc/profile
或/etc/bash.bashrc
或wherever you needcounter.sh
declare -i COUNTER
COUNTER=1
export COUNTER
increment_counter.sh
#!/bin/bash
echo "COUNTER=\$COUNTER+1" >> /path/to/counter.sh
外殼你'已經退出運行命令;它設置的任何變量都消失了。你不能爲此使用變量。
你需要的是某種永久數據存儲。這可能是一個數據庫,或一個遠程網絡服務,或各種各樣的東西,但到目前爲止,最簡單的解決方案是將值存儲在磁盤上的某個文件中。在腳本啓動時讀取文件,然後寫出遞增的值。
你應該考慮如果文件丟失怎麼辦,以及如果腳本的多個副本同時運行會發生什麼情況,並決定這些是否是你關心的情況。如果是,則需要分別在腳本中添加適當的錯誤處理和鎖定。
環境變量不起作用。使用文件。 –
如果您不關心計數器的實際值,只需從'date +%s'獲取當前時間戳,然後除以300(5分鐘內的秒數)。這會給你在每次運行中增加一個值。如果你關心實際值,則減去一個常數值。否則,按照@thatotherguy的建議,保存並重新加載每次運行的文件 – twalberg