我想使用 crontab 每小时和 15,30 和 45 分钟播放大本钟的录音。
到目前为止,我正在使用 mplayer2 和以下任务:
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
Run Code Online (Sandbox Code Playgroud)
但大多数时候它不起作用。有时它确实播放声音但延迟。IE。应该在21:15播放,但在21:17没有我打开一个终端并用mplayer播放另一个文件,播放完后,我听到那个应该提前2分钟播放。
编辑:现在尝试:
* * * * * "/usr/bin/mplayer -volume 100 --ao=pulse /home/myuser/bin/bigben/Clock_Chime_15-1.ogg"
没有成功。
我确实感觉任务停留在某种提示中。
附注。我可以分享声音文件。
根据这个答案:我可以使用 cron 像祖父钟一样在整点报时吗?在您的 cron 脚本中播放声音之前,您需要导出一个环境变量:
export XDG_RUNTIME_DIR="/run/user/1000"
Run Code Online (Sandbox Code Playgroud)
因此,与其直接调用您的音乐播放器,不如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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
crontab
条目传递给脚本的参数 1请记住使用以下命令标记脚本可执行文件:
chmod a+x /usr/local/bin/big-ben.sh
Run Code Online (Sandbox Code Playgroud)
我使用以下命令来播放声音文件:
aplay ~/scripts/KenbeepBent.wav
Run Code Online (Sandbox Code Playgroud)
KenbeepBent.wav
我在 ~/scripts 目录中保存了一个声音文件,这样我就可以将它包含在 bash 脚本中。我希望它能满足您的需求。
归档时间: |
|
查看次数: |
4426 次 |
最近记录: |