Я заблудился в askubuntu чтение Вопросов и ответов и экспериментирование с рекомендуемыми фрагментами кода. Таким образом, я часто избегаю переключать каналы телевизионных новостей в Интернете в начале часа. Не большая проблема для каналов YouTube, которые позволяют сдвиг времени, но это - "выставочный стопор" для телеканалов с помощью Flash player.
Может cron
будьте настроены для выполнения задания в начале каждого часа, где я предоставляю сценарий для звучания дедушкой как звон часов (с тонкой громкостью звука, конечно!)? Незначительным звоном можно было звучать у основания часа также. Я уверен, что могу расположиться подходящий .ogg
или .oga
файлы в сети и я знаю, что могу использовать ogg123
играть их. Я просто не знаю если cron
мог сделать это. Я знаю, что мог использовать сценарий, который спит и просыпается для тестирования времени, но не любит мысли о наличии чего-то работающего все время (уже существует достаточно того продолжения, я думаю).
Если это может быть, покончили cron
кто-то может ответить, как настроить его?
Спасибо.
heemayl предоставил корректный ответ для получения cron
работать в начале часа и нижней части часа. Еще раз спасибо! Однако, поскольку другие пользователи обнаружили a cronjob
не может играть звуковые файлы по умолчанию:
cron
играть звукиДля cron
для проигрывания звуковых файлов, это должно export
переменная среды:
export XDG_RUNTIME_DIR="/run/user/1000"
После того как это сделано в Ваших звуках сценария, будет играть.
Как указано другим ответом Ваш идентификатор пользователя не может всегда быть 1000
. Найти Ваше использование идентификатора пользователя:
$ id
uid=1000(rick) gid=1000(rick) groups=1000(rick),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)
Если Ваш идентификатор пользователя не 1000, то измените сценарий на свой идентификатор.
cron
выполнять вершину часа и нижнюю часть часаcrontab -e
установка (длятся только 5 строк):
# 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
Большая часть пользовательской установки cron
использовать nano
редактор. Используйте эти клавиши CTRL в nano
сохранить Вашу работу:
/tmp...
имя файла представлено, но не будьте заинтересованы, просто нажмите Enter.nano
редактор. bottom-of-hour-chime
сценарий работает в начале часа также, но, который в порядке, так как это коротко и сладко.
Если Вы не имеете >/dev/null
в конце строк cron
попытки послать Вам по электронной почте с выводом команды. Если у Вас нет установки почтового сервера, сообщение об ошибке появляется в Вашем /var/log/syslog
файл:
Oct 02 10:00:07 dell CRON[21259]: (CRON) info (No MTA installed, discarding output)
cron
отобразить раскрывающиеся уведомленияСценарий отображает раскрывающееся уведомление в начале каждого часа. Таким образом для этого дополнительная переменная должна быть экспортирована:
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%
export XDG_RUNTIME_DIR...
необходимо для получения звуковым для проигрывания. Это вызвано тем, что cron
выполнения в минимальной среде. Эта строка должна быть опущена сначала, если это, Вы используете третье лицо, звучит как плеер. Затем, если никакой звук не отложил строку. Затем все еще, если никакой звук, хорошо счастливый поиск!
Два основных телевизионных новостей показывают, что я слежу за сетью, имеют более мягкий объем, чем нормальный, таким образом, мне подняли ТВ выше, чем нормальный. Последовательно, когда ogg123
звуковые файлы игр они звучат очень громкими. Так pactl
используется, чтобы уменьшить объем перед звоном и увеличить его впоследствии.
Это - почти дубликат top-of-hour-chime
и возможно избыточный здесь, но включенный в полных целях документации.
#! /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%
Да, Вы можете.
Откройте Ваш cron
таблица с crontab -e
и добавьте:
00 * * * * /path/to/player /path/to/file.ogg
Замена /path/to/player
, и /path/to/file.ogg
с соответствующими значениями Вы хотите.
Вышеупомянутое будет играть звук (т.е. выполнять команду), в каждый час в 00
-th (запустите первых), минута.
, Если Вы хотите выполнить команду в 30
-th минута каждого часа также:
00,30 * * * * /path/to/player /path/to/file.ogg
Несмотря на использование этого экспорта:
# paplay needs environment variable exported:
export XDG_RUNTIME_DIR="/run/user/1000"
это не работало.
После того, как месяцы исследования не нашли решения.
В отчаянии которое попробовали работали следующее и это:
Введите следующее в Кембридж
# Terminal command: crontab -e
# Detect the name of the display in use
display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)"
user=$(who | grep '('$display')' | awk '{print $1}') # the user of the display
uid=$(id -u $user) #Detect the id of the user
XDG_RUNTIME_DIR=/run/user/${uid}
*/5 * * * * sh /root/.play_sound.sh
Затем создайте .play_sound.sh
/root/.play_sound.sh
display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)"
user=$(who | grep '('$display')' | awk '{print $1}') # the user of the display
uid=$(id -u $user) #Detect the id of the user
su - $user -c "paplay /usr/share/sounds/freedesktop/stereo/complete.oga"
Надеюсь, это поможет.