heemayl a fourni la bonne réponse pour cron
courir en haut et en bas de l'heure. Merci encore! Cependant, comme d'autres utilisateurs ont découvert cronjob
qu'il ne peut pas lire les fichiers audio par défaut:
Configuration cron
pour jouer des sons
Pour cron
lire des fichiers audio, il a besoin d' export
une variable d'environnement:
export XDG_RUNTIME_DIR="/run/user/1000"
Une fois cela fait dans votre script, les sons seront joués.
Comme indiqué par une autre réponse, votre ID utilisateur ne l'est pas toujours 1000
. Pour trouver votre ID utilisateur, utilisez:
$ 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 votre ID utilisateur n'est pas 1000, modifiez le script en votre ID.
Configurer cron
pour exécuter en haut et en bas de l'heure
crontab -e
configuration (5 dernières lignes uniquement):
# 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 plupart des utilisateurs se configurent cron
pour utiliser l' nano
éditeur. Utilisez ces touches de contrôle nano
pour enregistrer votre travail:
- Ajoutez les deux dernières lignes ci-dessus et utilisez Ctrl+ Opour écrire O ut (enregistrer) le fichier.
- Un
/tmp...
nom de fichier est présenté, mais ne vous inquiétez pas, appuyez simplement sur Enter.
- Maintenant, utilisez Ctrl+ Xpour e X it l'
nano
éditeur.
Le bottom-of-hour-chime
script s'exécute également en haut de l'heure, mais c'est OK car il est court et doux.
Si vous n'avez pas le >/dev/null
à la fin des lignes, cron
essayez de vous envoyer un e-mail avec la sortie de la commande. Si vous n'avez pas la configuration du serveur de messagerie, un message d'erreur apparaît dans votre /var/log/syslog
fichier:
Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output)
Configuration cron
pour afficher des notifications contextuelles
Le script affiche un message de notification contextuel en haut de chaque heure. Donc, pour cela, une variable supplémentaire doit être exportée:
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
Contenu 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%
Il export XDG_RUNTIME_DIR...
est nécessaire de faire jouer le son. En effet, cron
s'exécute dans un environnement minimal. Cette ligne doit être supprimée en premier si vous utilisez un lecteur audio tiers. Ensuite, si aucun son ne remet la ligne. Alors quand même pas de son, bonne chasse bien!
Les deux principales émissions télévisées que je regarde sur le net ont un volume plus doux que la normale, j'ai donc le téléviseur tourné plus haut que la normale. Par conséquent, lors de la ogg123
lecture de fichiers audio, ils sonnent très fort. Il pactl
est donc utilisé pour réduire le volume avant le carillon et l'augmenter ensuite.
Contenu du carillon de fin d'heure
C'est presque un doublon top-of-hour-chime
et peut-être redondant ici, mais inclus à des fins de documentation complète.
#! /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%