Скрипт bash работает нормально, но не в cron
У меня есть сценарий, который должен записать поток shoutcast в течение часа, преобразовать его в 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).
Во-вторых, проверьте разрешения скрипта, если у него есть опция "х", а затем попробуйте запустить
crontab -e
Попытайтесь увидеть, есть ли в списке созданный вами cron с этой командой
crontab -l
РЕДАКТИРОВАТЬ:
Попробуйте добавить /bin/bash прямо перед вызовом скрипта:
0 * * * * /bin/bash /script/file
Больше никаких подсказок, чтобы решить это здесь.