heemayl hat die richtige Antwort gegeben, um cron
zu jeder vollen und unteren Stunde laufen zu können. Danke noch einmal! Wie andere Benutzer jedoch festgestellt haben, cronjob
können Audiodateien standardmäßig nicht abgespielt werden:
Konfigurieren cron
zum Abspielen von Sounds
Zum cron
Abspielen von Audiodateien ist export
eine Umgebungsvariable erforderlich :
export XDG_RUNTIME_DIR="/run/user/1000"
Sobald dies in Ihrem Skript erledigt ist, werden Sounds abgespielt.
Wie aus einer anderen Antwort hervorgeht, ist Ihre Benutzer-ID möglicherweise nicht immer korrekt 1000
. Um Ihre Benutzer-ID zu finden, verwenden Sie:
$ id
uid=1000(rick) gid=1000(rick) groups=1000(rick),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
Wenn Ihre Benutzer-ID nicht 1000 ist, ändern Sie das Skript in Ihre ID.
Konfigurieren Sie cron
die Ausführung zu jeder vollen und unteren Stunde
crontab -e
Setup (nur letzte 5 Zeilen):
# 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
Die meisten Benutzer richten cron
den nano
Editor ein. Verwenden Sie diese Steuertasten nano
, um Ihre Arbeit zu speichern:
- Fügen Sie die letzten beiden Zeilen oben und Verwendung Ctrl+ Oschreiben O ut (Speichern) , um die Datei.
- Ein
/tmp...
Dateiname wird angezeigt, aber seien Sie nicht besorgt, drücken Sie einfach Enter.
- Jetzt verwenden Ctrl+ Xauf E X den
nano
Editor.
Das bottom-of-hour-chime
Skript läuft auch zu jeder vollen Stunde, aber das ist in Ordnung, da es kurz und bündig ist.
Wenn Sie das >/dev/null
am Ende der Zeilen nicht haben , cron
versuchen Sie, Ihnen eine E-Mail mit der Befehlsausgabe zu senden. Wenn Sie den Mailserver nicht eingerichtet haben, wird in Ihrer /var/log/syslog
Datei eine Fehlermeldung angezeigt :
Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output)
Konfigurieren cron
der Anzeige von Popup-Benachrichtigungen
Das Skript zeigt zu jeder vollen Stunde eine Popup-Benachrichtigung an. Dazu muss eine zusätzliche Variable exportiert werden:
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
Inhalt von 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%
Das export XDG_RUNTIME_DIR...
ist notwendig, damit der Sound abgespielt wird. Dies liegt daran, dass es cron
in einer minimalen Umgebung ausgeführt wird. Diese Zeile sollte zuerst weggelassen werden, wenn Sie einen Soundplayer eines Drittanbieters verwenden. Wenn dann kein Ton zu hören ist, setzen Sie die Leitung zurück. Dann noch wenn kein Ton, gut fröhliche Jagd!
Die beiden wichtigsten Fernsehnachrichtensendungen, die ich über das Internet sehe, haben eine geringere Lautstärke als normal, sodass der Fernseher höher als normal eingestellt ist. Folglich ogg123
klingen Sounddateien beim Abspielen sehr laut. Wird pactl
also verwendet, um die Lautstärke vor dem Glockenspiel zu verringern und danach zu erhöhen.
Inhalt des Bottom-of-Hour-Glockenspiels
Dies ist fast ein Duplikat von top-of-hour-chime
und möglicherweise überflüssig, wird jedoch zu Zwecken der vollständigen Dokumentation aufgenommen.
#! /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%