指定执行某个脚本的时间间隔

指定执行某个脚本的时间间隔

我有这个 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命令,但我没有找到如何设置“直到”或“之前”。

这个问题不同于

答案1

您可以使用 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分钟发送一封邮件?

答案2

假设你使用 Linux,暂停是最简单的方法。 08:00 到 19:00 是 11 小时,因此我们告诉 timeout 来运行脚本 11 小时。

timeout 11h /home/username/script

在 08:00 使用 cron 启动作业(或者在您愿意的时候手动启动),并在 19:00 整用另一个 cron 条目自动终止它

kill -9 /home/username/script

相关内容