Bash

指定執行某個腳本的時間間隔

  • May 7, 2019

我有這個 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

引用自:https://unix.stackexchange.com/questions/517611