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

還有更多線索可以解決嗎這裡

相關內容