heemayl ha proporcionado la respuesta correcta cron
para correr en la parte superior de la hora y la parte inferior de la hora. ¡Gracias de nuevo! Sin embargo, como otros usuarios han descubierto cronjob
que no se pueden reproducir archivos de sonido de forma predeterminada:
Configurando cron
para reproducir sonidos
Para cron
reproducir archivos de sonido necesita export
una variable de entorno:
export XDG_RUNTIME_DIR="/run/user/1000"
Una vez hecho esto en su guión, se reproducirán los sonidos.
Como se indicó en otra respuesta, su identificación de usuario puede no ser siempre 1000
. Para encontrar su ID de usuario use:
$ id
uid=1000(rick) gid=1000(rick) groups=1000(rick),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
Si su ID de usuario no es 1000, cambie la secuencia de comandos a su ID.
Configurar cron
para ejecutar la parte superior de la hora y la parte inferior de la hora
crontab -e
configuración (solo las últimas 5 líneas):
# 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
La mayoría de los usuarios configuran cron
para usar el nano
editor. Use estas teclas de control nano
para guardar su trabajo:
- Agregue las dos últimas líneas anteriores y use Ctrl+ Opara escribir O ut (guardar) el archivo.
- Se
/tmp...
presenta un nombre de archivo, pero no se preocupe, simplemente presione Enter.
- Ahora use Ctrl+ Xpara e X es el
nano
editor.
El bottom-of-hour-chime
script también se ejecuta en la parte superior de la hora, pero eso está bien, ya que es breve y dulce.
Si no tiene el >/dev/null
final de las líneas, cron
intenta enviarle un correo electrónico con la salida del comando. Si no tiene el servidor de correo configurado, aparecerá un mensaje de error en su /var/log/syslog
archivo:
Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output)
Configuración cron
para mostrar notificaciones emergentes
El script muestra un mensaje de notificación emergente en la parte superior de cada hora. Entonces, para esto, se debe exportar una variable adicional:
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
Contenido de 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%
El export XDG_RUNTIME_DIR...
es necesario para obtener sonido para jugar. Esto se debe a que se cron
ejecuta en un entorno mínimo. Esta línea debe omitirse primero si utiliza un reproductor de sonido de terceros. Entonces, si no hay sonido, vuelva a poner la línea. Entonces aún si no hay sonido, ¡feliz caza!
Los dos programas principales de noticias de TV que miro en la red tienen un volumen más bajo de lo normal, por lo que tengo el televisor más alto de lo normal. En consecuencia, cuando ogg123
reproduce archivos de sonido, suenan muy alto. Por pactl
lo tanto, se utiliza para reducir el volumen antes de la campana y aumentarlo después.
Contenido del timbre al final de la hora
Esto es casi un duplicado top-of-hour-chime
y quizás redundante aquí, pero se incluye con fines de documentación completa.
#! /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%