heemayl提供了正确的答案,可以让cron
您在小时的顶部和小时的底部开始跑步。再次感谢!但是,由于其他用户发现cronjob
默认情况下无法播放声音文件,因此:
配置cron
播放声音
为了cron
播放声音文件,它需要export
一个环境变量:
export XDG_RUNTIME_DIR="/run/user/1000"
完成此操作后,脚本中将播放声音。
正如另一个答案所指出的那样,您的用户ID可能并不总是1000
。要查找您的用户标识,请使用:
$ id
uid=1000(rick) gid=1000(rick) groups=1000(rick),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
如果您的用户ID不是1000,则将脚本更改为您的ID。
配置cron
运行小时数和小时数
crontab -e
设置(仅最后5行):
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h 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(保存)文件。
- 出现
/tmp...
文件名,但不必担心,只需按Enter。
- 现在使用Ctrl+ X到E X的它
nano
编辑器。
该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/<user_name>
# 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
在最小的环境中运行。如果您使用第三方声音播放器,则应首先省略此行。然后,如果没有声音,则将线路放回原处。如果没有声音,那就打猎愉快!
电视上的两个主要电视新闻显示,我在网上观看的电视音量比正常情况下要弱,因此我打开电视时的音量要高于正常水平。因此,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/<user_name>
# 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%