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

실행 중이 아니면 루트로 시작하십시오.

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

둘째, "x" 옵션이 있는 경우 스크립트의 권한을 확인한 다음 실행해 보십시오.

crontab -e

이 명령을 사용하여 만든 크론이 나열되는지 확인해보세요.

crontab -l

편집하다:

스크립트 호출 직전에 /bin/bash를 추가해 보세요.

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

문제를 해결할 단서가 더 있나요?여기.

관련 정보