Я могу использовать крон для звона наверху часа как высокие часы с маятником?

Я заблудился в askubuntu чтение Вопросов и ответов и экспериментирование с рекомендуемыми фрагментами кода. Таким образом, я часто избегаю переключать каналы телевизионных новостей в Интернете в начале часа. Не большая проблема для каналов YouTube, которые позволяют сдвиг времени, но это - "выставочный стопор" для телеканалов с помощью Flash player.

Может cron будьте настроены для выполнения задания в начале каждого часа, где я предоставляю сценарий для звучания дедушкой как звон часов (с тонкой громкостью звука, конечно!)? Незначительным звоном можно было звучать у основания часа также. Я уверен, что могу расположиться подходящий .ogg или .oga файлы в сети и я знаю, что могу использовать ogg123 играть их. Я просто не знаю если cron мог сделать это. Я знаю, что мог использовать сценарий, который спит и просыпается для тестирования времени, но не любит мысли о наличии чего-то работающего все время (уже существует достаточно того продолжения, я думаю).

Если это может быть, покончили cron кто-то может ответить, как настроить его?

Спасибо.

10
задан 2 October 2016 в 10:26

3 ответа

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 сохранить Вашу работу:

  • Добавьте последние две строки выше и используйте Ctrl+O для выписывания (сохранили) файл.
  • A /tmp... имя файла представлено, но не будьте заинтересованы, просто нажмите Enter.
  • Теперь используйте Ctrl+X для выхода 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 используется, чтобы уменьшить объем перед звоном и увеличить его впоследствии.

Содержание bottom-of-hour-chime

Это - почти дубликат 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%
6
ответ дан 23 November 2019 в 05:30

Да, Вы можете.

Откройте Ваш 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
7
ответ дан 23 November 2019 в 05:30

Несмотря на использование этого экспорта:

# 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"

Надеюсь, это поможет.

1
ответ дан 23 November 2019 в 05:30

Другие вопросы по тегам:

Похожие вопросы: