Bash スクリプトは正常に実行されますが、cron では実行されません。

Bash スクリプトは正常に実行されますが、cron では実行されません。

1 時間の Shoutcast ストリームを録画し、それを MP3 に変換して保存するスクリプトがあります。ターミナルから実行するとスクリプトは正常に実行されますが、cron では実行できないようです (cron では毎時 1 分に実行されるはずです)。

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

解決の手がかりは他に何かありますかここ

関連情報