
我有一個腳本,應該錄製一個小時的喊播串流,將其轉換為 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
還有更多線索可以解決嗎這裡。