我可以像大爷爷一样在小时之前使用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%