Bash 脚本运行良好,但不在 cron 中运行

Bash 脚本运行良好,但不在 cron 中运行

我有一个脚本,用于录制一小时的广播流,将其转换为 mp3,然后保存。当我从终端运行该脚本时,它运行正常,但我似乎无法让它在 cron 中运行(它应该在每小时开始时运行一次)。

这是 crontab 中的行:

0 * * * * /medialib/tech/bin/recordstream 2>&1 >> /medialib/tech/cron.log

脚本如下:

#!/bin/bash
name="$(date +%s)"

mp3_name=$name.mp3
wav_name=$name.wav

timeout -sHUP 60m vlc -I dummy --sout "#transcode{channels=2}:std{access=file,mux=wav,dst=/medialib/stream_backup/wav/$wav_name" /medialib/tech/lib/listen.m3u

lame --mp3input /medialib/stream_backup/wav/$wav_name /medialib/stream_backup/$mp3_name

rm /medialib/stream_backup/wav/$wav_name

谢谢你!

编辑:cron.log 的内容(自从它从正在运行的旧服务器传输过来后,该文本就一直存在于日志文件中)。

VLC media player 2.0.8 Twoflower
Command Line Interface initialized. Type `help' for help.
> Shutting down.
VLC media player 2.0.8 Twoflower
Command Line Interface initialized. Type `help' for help.
> Shutting down.

答案1

首先尝试看看 cron 是否正在运行

ps -ef | grep cron

如果它没有运行,请以 root 身份启动它

sudo /etc/init.d/cron start (Ubuntu and Red Hat).

其次,检查脚本的权限,如果它有“x”选项,然后尝试运行

crontab -e

尝试查看你制定的 cron 是否使用此命令列出

crontab -l

编辑:

尝试在脚本调用之前添加 /bin/bash:

0 * * * * /bin/bash /script/file

还有什么线索可以解决这个问题这里

相关内容