每天在歐洲中部時間 13 點安排一個 shell 腳本,無需 crontab

每天在歐洲中部時間 13 點安排一個 shell 腳本,無需 crontab

我正在 AIX 伺服器中開發一個 ksh shell 腳本,該腳本必須在每天 13:00 準確運行。我沒有權限使用 CRONTAB、AT、WATCH、inotify、date -d 等。

while [ $(date +%H%M) != 1300 ]
do
actions
sleep 60
done

我嘗試了上面的程式碼,但我不希望while在條件成立之前在後台連續運行。建議我使用任何其他方式sleepwhile循環或任何僅運行一次而不是連續運行的方式。

答案1

我只在 中完成過它perl,並且從未使用過ksh,但我不明白為什麼它不應該是可能的,但我所做的有點像(可能在任何語言中都不是有效的代碼):

while(true)
    starttime=`date +%s`
    actions
    sleep starttime+24*60*60-`date +%s`
end

這只會使操作每 24 小時啟動一次。我的想法是讓它在 13:00 運行,只需在開始時添加一個循環,等待 13:00。想想還是換成starttime+24*60*60類似的東西比較好date -d "13:00 tomorrow" +%s

相關內容