Je me perds dans askubuntu en lisant Q & A et en expérimentant les extraits de code recommandés. Par conséquent, il me manque souvent de changer de chaîne d’informations télévisées sur Internet en tout début de journée. Ce n’est pas un gros problème pour les chaînes youtube qui permettent un décalage dans le temps, mais c’est un "arrêt final" pour les chaînes de télévision utilisant Flash Player.
cron
peut-il être configuré pour exécuter un travail au début de chaque heure pour lequel je fournis un script qui sonne comme un grand-père comme un carillon d'horloge (avec un volume sonore subtil, bien sûr!)? Un petit carillon pourrait aussi sonner au bas de l'heure. Je suis sûr de pouvoir localiser les fichiers .ogg
ou .oga
appropriés sur le réseau et je sais que je peux utiliser ogg123
pour les lire. Je ne sais pas si cron
pourrait le faire. Je sais que je pourrais utiliser un script qui dort et se réveille pour tester le temps, mais je n'aime pas l'idée de faire fonctionner quelque chose tout le temps (il y en a déjà assez qui se passe déjà, je pense).
Si cela peut être fait avec cron
quelqu'un peut-il nous dire comment le configurer?
Je vous remercie.
heemayl a fourni la bonne réponse pour que cron
soit exécuté au début et à la fin de l'heure. Merci encore! Cependant, comme d'autres utilisateurs l'ont découvert, une cronjob
ne peut pas lire les fichiers audio par défaut:
cron
pour jouer des sonsPour que cron
puisse lire les fichiers audio, il doit disposer de export
une variable d'environnement:
export XDG_RUNTIME_DIR="/run/user/1000"
Une fois que cela est fait dans votre script, les sons vont jouer.
cron
pour fonctionner en haut et en bas de l'heurecrontab -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 configurent cron
pour utiliser l'éditeur nano
. Utilisez ces touches de contrôle dans nano
pour enregistrer votre travail:
/tmp...
est présenté, mais ne vous inquiétez pas, appuyez simplement sur Enter.nano
.Le script bottom-of-hour-chime
s’exécute également en haut de l’heure, mais c’est acceptable car il est court et agréable.
Si vous n'avez pas le >/dev/null
à la fin des lignes, cron
essaie de vous envoyer un e-mail avec le résultat de la commande. Si vous n'avez pas configuré le serveur de messagerie, un message d'erreur apparaît dans votre fichier /var/log/syslog
:
Oct 02 10:00:07 Dell CRON[21259]: (CRON) info (No MTA installed, discarding output)
cron
pour afficher les notifications contextuellesLe script affiche un message de notification contextuel au début 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)";
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%
Le export XDG_RUNTIME_DIR...
est nécessaire pour que le son soit reproduit. En effet, cron
s'exécute dans un environnement minimal. Cette ligne doit d'abord être omise si vous utilisez un lecteur audio tiers. Ensuite, si aucun son ne revient, remettez la ligne en ligne. Alors toujours si pas de son, bonne chasse!
Les deux principales émissions de télévision que je regarde sur Internet ont un volume plus faible que la normale, de sorte que le téléviseur est allumé plus haut que la normale. Conséquemment, lorsque ogg123
lit des fichiers sonores, ils sonnent très fort. Donc, pactl
est utilisé pour réduire le volume avant le carillon et l’augmenter ensuite.
Ceci est presque une copie de 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%
Oui, vous pouvez.
Ouvrez votre table cron
avec crontab -e
et ajoutez:
00 * * * * /path/to/player /path/to/file.ogg
Remplacez /path/to/player
et /path/to/file.ogg
par les valeurs respectives de votre choix.
Ce qui précède jouera le son (c'est-à-dire exécutera la commande) à toutes les heures à 00
- e (début de la première) minute.
Si vous voulez aussi exécuter la commande à 30
- e minute de chaque heure:
00,30 * * * * /path/to/player /path/to/file.ogg