Bash
指定執行某個腳本的時間間隔
我有這個 bash 腳本:
while [[ 1 ]] ; do sleep 3600 ; ./notify.sh --text "ricordati di bere" && play /mnt/musica/login.wav && zenity --info --text="<span size=\"xx-large\">Time is $(date +%Hh%M).</span>\n\nricordati di <b>bere</b>." --title="drink time" ; done
我想執行這個腳本(從 8:00 點開始,不太重要)到 19:00(最重要);這是可能的?
我見過
at
命令,但我沒有找到如何設置“直到”或“之前”。這個問題和這個不同
您將使用 cron 進行調度。時間表看起來像
0 8-19 * * * /path/to/script
或者
0 8,9,10,11,12,13,14,15,16,17,18,19 * * * /path/to/script
腳本看起來像
#!/bin/sh ./notify.sh --text "ricordati di bere" && play /mnt/musica/login.wav && zenity --info \ --text="<span size=\"xx-large\">Time is $(date +%Hh%M)</span>\n\nricordati di <b>bere</b>." \ --title="drink time"
另請參閱“如何通過 shell 腳本每 10 分鐘發送一封郵件? ”
假設您使用 Linux,超時是最簡單的方法。08:00 到 19:00 是 11 小時,所以我們告訴 timeout 執行腳本 11 小時。
timeout 11h /home/username/script
在 08:00 使用 cron 啟動作業(或在您願意時手動啟動),並在 19:00 自動終止並使用另一個 cron 條目
kill -9 /home/username/script