heemayl podał poprawną odpowiedź, aby rozpocząć cron
bieg na górze i na dole godziny. Dzięki jeszcze raz! Jednak gdy inni użytkownicy odkryli, że cronjob
domyślnie nie można odtwarzać plików dźwiękowych:
Konfiguracja cron
odtwarzania dźwięków
Aby cron
odtwarzać pliki dźwiękowe, wymagana export
jest zmienna środowiskowa:
export XDG_RUNTIME_DIR="/run/user/1000"
Po wykonaniu tego w skrypcie odtwarzane będą dźwięki.
Jak wskazano inną odpowiedź Twój identyfikator użytkownika nie zawsze może być 1000
. Aby znaleźć swój identyfikator użytkownika, użyj:
$ id
uid=1000(rick) gid=1000(rick) groups=1000(rick),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
Jeśli identyfikator użytkownika nie jest 1000, zmień skrypt na swój identyfikator.
Skonfiguruj tak, cron
aby działał na początku i na końcu godziny
crontab -e
setup (tylko ostatnie 5 linii):
# 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
Większość użytkowników cron
korzysta z nano
edytora. Użyj tych klawiszy kontrolnych, nano
aby zapisać swoją pracę:
- Dodaj dwa ostatnie wiersze powyżej i użyj Ctrl+, Oaby zapisać O ut (zapisz) plik.
- Nazwa
/tmp...
pliku jest wyświetlana, ale nie martw się, po prostu naciśnij Enter.
- Teraz użyj Ctrl+, Xaby e X to
nano
edytor.
W bottom-of-hour-chime
biegnie skrypt na górze godzinę też, ale, to jest OK, ponieważ jest to krótkie i słodkie.
Jeśli nie masz >/dev/null
na końcu linii, cron
spróbuje wysłać Ci wiadomość e-mail z wynikiem polecenia. Jeśli nie masz skonfigurowanego serwera pocztowego, w /var/log/syslog
pliku pojawi się komunikat o błędzie :
Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output)
Konfigurowanie cron
do wyświetlania wyskakujących powiadomień
Skrypt wyświetla wyskakujące powiadomienie u góry każdej godziny. W tym celu należy wyeksportować dodatkową zmienną:
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
Zawartość 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%
Konieczne export XDG_RUNTIME_DIR...
jest, aby dźwięk był odtwarzany. Wynika to z faktu, że cron
działa w minimalnym środowisku. Ten wiersz należy najpierw pominąć, jeśli używasz odtwarzacza dźwięku innej firmy. Jeśli brak dźwięku, odłóż linię z powrotem. Więc nadal, jeśli nie ma dźwięku, dobrze szczęśliwy polowanie!
Dwa główne programy telewizyjne, które oglądam w sieci, mają cichszy niż zwykle poziom głośności, więc mam telewizor wyższy niż normalnie. W konsekwencji podczas ogg123
odtwarzania plików dźwiękowych brzmią one bardzo głośno. pactl
Służy więc do zmniejszania głośności przed dzwonkiem i zwiększania jej później.
Zawartość gongu z dołu godziny
Jest to prawie duplikat top-of-hour-chime
i być może zbędny tutaj, ale dołączony do pełnej dokumentacji.
#! /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%