我可以像大爷爷一样在小时之前使用cron来编钟吗?

我迷失在askubuntu阅读问答并尝试推荐的代码片段。 因此,我常常错过在互联网上切换电视新闻频道的时间。 对于允许时移的youtube频道来说,这不是一个大问题,但它对于使用Flash播放器的电video道来说是一个“显示停止”。

可以将cron配置为在每小时的顶部运行一个作业,在那里我提供一个脚本来响铃,就像钟声一样(当然还有微妙的音量!)? 小时钟也可以在小时的底部响起。 我确信我可以在网上找到合适的.ogg.oga文件,我知道我可以使用ogg123来播放它们。 我只是不知道cron是否可以做到这一点。 我知道我可以使用一个睡眠和唤醒的脚本来测试时间,但不喜欢一直在运行的东西(我认为已经足够了)。

如果可以用cron完成,有人可以回答如何设置吗?

谢谢。

是的你可以。

crontab -e打开你的cron表,并添加:

 00 * * * * /path/to/player /path/to/file.ogg 

/path/to/player/path/to/file.ogg替换为您想要的相应值。

以上将播放声音(即运行命令),在00 (第一个开始)分钟的每个小时播放。

如果你想在每小时的第30分钟运行命令:

 00,30 * * * * /path/to/player /path/to/file.ogg 

heemayl提供了正确的答案,让cron在小时和小时的最高点运行。 再次感谢! 但是,正如其他用户发现默认情况下cronjob无法播放声音文件:

  • 如何在播放音乐时使讲话时钟(通过cron和节日tts)工作
  • 帮助使用crontab播放声音

配置cron播放声音

为了让cron播放声音文件,需要export一个环境变量:

 export XDG_RUNTIME_DIR="/run/user/1000" 

在您的脚本中完成此操作后,将播放声音。

配置cron以运行小时和小时的底部

crontab -e setup(仅限最后5行):

 # For more information see the manual pages of crontab(5) and cron(8) # # mh dom mon dow command 00 * * * * /usr/local/bin/top-of-hour-chime >/dev/null 00,30 * * * * /usr/local/bin/bottom-of-hour-chime >/dev/null 

大多数用户设置cron使用nano编辑器。 使用nano这些控制键来保存您的工作:

  • 添加上面的最后两行并使用Ctrl + O编写O ut(保存)文件。
  • 显示了A /tmp...文件名,但不必担心,只需按Enter键即可
  • 现在使用Ctrl + X来编辑nano编辑器。

bottom-of-hour-chime脚本也会在bottom-of-hour-chime运行,但是,这很好,因为它很短且很甜。

如果您没有在行末尾的>/dev/null ,则cron尝试使用命令输出向您发送电子邮件。 如果您没有设置邮件服务器, /var/log/syslog文件中会显示错误消息:

 Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output) 

配置cron以显示弹出通知

该脚本在每小时的顶部显示弹出通知消息。 因此,需要导出另一个变量:

 eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"; 

top-of-hour-chime

 #! /bin/bash # NAME: top-of-hour-chime # PATH: /usr/local/bin # DESC: Play sound called by cron # CALL: Automatically called by /var/spool/cron/crontabs/ # DATE: Created Oct 1, 2016. Modified June 10, 2018. # UPDT: 2016-11-09 - Add notification bubble with time in text. # 2018-06-10 - Switch from `ogg123` to `paplay` in default installation. # exit # uncomment to suppress when watching movies # paplay needs environment variable exported: export XDG_RUNTIME_DIR="/run/user/1000" # needed for notify-send eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"; # get hour in 12 hour format HOUR=$(date +%I) ZHOUR=$(echo $HOUR | sed 's/^0*//') pactl set-sink-volume 0 -25% DISPLAY=:0 notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/appointment-soon.png "It is ""$ZHOUR"" o'clock" paplay '/usr/share/sounds/ubuntu/ringtones/Melody piano.ogg' pactl set-sink-volume 0 +25% 

export XDG_RUNTIME_DIR...是获得声音播放所必需的。 这是因为cron在最小的环境中运行。 如果您使用第三方声音播放器,则应首先省略此行。 然后,如果没有声音把线放回去。 然后如果没有声音,狩猎很开心!

两个主要的电视新闻节目我在网上观看的音量比正常情况更柔和,所以我的电video率高于正常水平。 因此,当ogg123播放声音文件时,它们听起来非常响亮。 因此pactl用于在铃声之前减小音量并在之后增加音量。

低谷时钟的内容

这几乎是top-of-hour-chime重复,在这里可能是多余的,但包括在内以用于完整的文档目的。

 #! /bin/bash # NAME: bottom-of-hour-chime # PATH: /usr/local/bin # DESC: Play sound called by cron # CALL: Automatically called by /var/spool/cron/crontabs/ # DATE: Oct 1, 2016. Modified June 10, 2018. # UPDT: 2018-06-10 Switch from `ogg123` to `paplay` installed by default. # exit # Uncomment to suppress when watching movies. # paplay needs environment variable exported: export XDG_RUNTIME_DIR="/run/user/1000" pactl set-sink-volume 0 -25% paplay /usr/share/sounds/ubuntu/ringtones/Bliss.ogg pactl set-sink-volume 0 +25%