Help using crontab to play в sound

I want to использовал crontab to play recordings of the big Бен every hour and at 15,30 and 45 minutes.

So far гm using mplayer2 and the following tasks:

0 1,13 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_01.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_75
0 2,14 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_02.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_76
0 3,15 * * * mplayer -really-quiet  ~/bin/bigben/Clock_Chime_03.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_77
0 4,16 * * * mplayer -really-quiet  ~/bin/bigben/Clock_Chime_04.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_78
0 5,17 * * * mplayer -really-quiet  ~/bin/bigben/Clock_Chime_05.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_79
0 6,18 * * * mplayer -really-quiet  ~/bin/bigben/Clock_Chime_06.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_80
0 7,19 * * * mplayer -really-quiet  ~/bin/bigben/Clock_Chime_07.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_81
0 8,20 * * * mplayer -really-quiet  ~/bin/bigben/Clock_Chime_08.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_82
0 9,21 * * * mplayer -really-quiet  ~/bin/bigben/Clock_Chime_09.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_83
0 10,22 * * * mplayer -really-quiet  ~/bin/bigben/Clock_Chime_10.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_84
0 11,23 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_11.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_85
0 0,12 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_12.ogg -volume 100 >/dev/null 2>&1 # JOB_ID_86
15 0-23 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_15-1.ogg -volume 100 >/dev/null 2>&1
30 0-23 * * * mplayer -really-quiet ~/bin/bigben/Clock_Chime_15-2.ogg -volume 100 >/dev/null 2>&1
45 0-23 * * * mplayer -really-quiet ~/bin/bigben    /Clock_Chime_15-3.ogg -volume 100 >/dev/null 2>&1

But most of the украл it does not work. Sometimes it does play the sound but delayed. ie. supposed to play at 21:15, and it didn't at 21:17 I opened в терминал and played another file with mplayer, after it finished, I heard the one supposed to play 2 min earlier.

Edit: Now trying with: * * * * * "/usr/bin/mplayer -volume 100 --ao=pulse /home/myuser/bin/bigben/Clock_Chime_15-1.ogg" without success.

I do have the feeling like the task stays in some kind of cue.

PS. I хан share the sound поля.

4
задан 11 January 2016 в 08:37

2 ответа

Я использую следующую команду для воспроизведения звукового файла:

 aplay ~/scripts/KenbeepBent.wav

где KenbeepBent.wav - звуковой файл, который я храню в своем каталоге ~ / scripts, чтобы я мог включить его в сценарии bash. Я ожидаю, что это будет соответствовать вашим потребностям.

0
ответ дан 1 December 2019 в 10:18

Согласно этому ответу: я могу использовать крон для звона наверху часа как высокие часы с маятником? необходимо экспортировать переменную среды прежде, чем играть звуки в сценарии крона:

export XDG_RUNTIME_DIR="/run/user/1000"

Так вместо того, чтобы назвать Ваш аудиоплеер непосредственно, призовите название сценария crontab как это:

0 1,13 * * * /home/ME/bin/big-ben.sh /home/ME/bin/bigben/Clock_Chime_01.ogg >/dev/null 2>&1 # JOB_ID_75
    (... SNIP ...)
45 0-23 * * * /home/ME/bin/big-ben.sh /home/ME/bin/bigben/Clock_Chime_15-3.ogg >/dev/null 2>&1
  • Замена ME с Вашим именем пользователя.
  • У Вас была ошибка (пробелы после /bigben и прежде /Clock на в последней строке Вашего crontab. Я зафиксировал ошибку выше.
  • Вы использовали ~/ ярлык для /home/ME который cron не любит. Используйте имена полного пути в cron.

Затем создайте Ваш /usr/local/bin/big-ben.sh сценарий:

#!/bin/bash
export XDG_RUNTIME_DIR="/run/user/1000"
mplayer -really-quiet "$1" -volume 100
  • "1$" является параметром 1 прошедший crontab запись в Ваш сценарий

Не забудьте отмечать исполняемый файл сценария при помощи:

chmod a+x /usr/local/bin/big-ben.sh
2
ответ дан 1 December 2019 в 10:18

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

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