如何使用正常運作時間觸發操作?

如何使用正常運作時間觸發操作?

我想寫 shell 或 perl 程式碼,它會在 x 天後給我通知。基本上在SUSE Linux伺服器上,208天後需要重新啟動,否則系統會當機。這是已知錯誤。因此,為了避免這種情況,我希望在 8 天之前收到類似的通知郵件......只是一個警報......

腳本必須檢查目前的正常運作時間,然後計算總共 208 天所需的剩餘天數。希望這是有道理的。

答案1

您可以使用 awk 輕鬆確定正常運作時間(以天為單位):

# Print days of uptime, or zero if less than 1 day.
uptime | awk '/days?/ {print $3; next}; {print 0}'

您可以將其與命令替換結合使用,根據結果執行您喜歡的任何操作。例如:

#!/bin/bash
days () { uptime | awk '/days?/ {print $3; next}; {print 0}'; }
UPTIME_THRESHOLD=200
if [ $(days) -ge $UPTIME_THRESHOLD ]; then
    : # Take some action.
fi

顯然,您採取的行動取決於您。您可以給自己發送訊息,使用以下命令安排重新啟動命令或您認為有必要執行的任何其他操作。

您可能還想將此腳本設定為每日 cron 作業,以便在超出正常運行時間閾值時觸發您定義的操作。如果您具有 root 存取權限,您可以簡單地將腳本放入/etc/cron.daily/,或者您可以設定您的個人 crontab 每天呼叫此腳本一次。

答案2

受 CodeGnome 答案的啟發,為 mac 製作了一個小腳本,在電腦開啟 8:30 後顯示一則通知。也必須配置 cron 每分鐘運行一次。

#!/bin/bash
timeup () { uptime | awk  '{print $3}'; }
UPTIME="8:30,"
if [ $(timeup) == $UPTIME ]; then
    osascript -e 'tell app "Finder" to display dialog "8:30 uptime! Go Home!"' &
    osascript -e 'display notification "8:30 uptime! Go Home!" with title "Go Home!!"' &
fi

相關內容