mplayer가 crond로 잘 돌아가지 않습니다.
fedora core 4의 일반사용자계정 crontab -e의 내용은 아래와 같습니다.
0 6 * * 1-6 $HOME/bin/RecordRadio.sh /home/Multimedia/english mmst://219.240.37.11/L-FM_300k
30 6 * * 1-6 $HOME/bin/StopRecordRadio.sh /home/Multimedia/english GTY
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6:00~6:30 사이에 라디오를 녹음 하려고 한 스크립트입니다. 각각의 스크립트 내용은
[trip2me]$ cat RecordRadio.sh
#!/bin/sh
cd $1
mkfifo mp3filter &> /dev/null
toolame -b 128 - dest.mp3
mplayer -vc null -vo null -ao pcm:fast -ao pcm:file=mp3filter $2
[trip2me]$ cat StopRecordRadio.sh
#!/bin/sh
pkill mplayer
cd $1
date=`date '+%y.%m.%d'`
mv dest.mp3 $date\_$2.mp3
이렇게 했는데 작동이 잘 안됩니다.
루트 권한으로 'service crond reload' 를 하고 나니 일단 각각 예약한 작업이 실행은 되는데 toolame 또는 mplayer의 문제로 작동이 안되고 있습니다.
crond로 실행되는 스크립트는 백그라운드로 돌아간다고 알고 있는데 예상했던 녹음은 구사하고
dest.mp3파일도 만들어지지 않고 있습니다.
원인이 무엇일까요? 고수분들의 조언 부탁드립니다.
PATH를 지정해 보세요.
라듸오를 녹음할 수가 있군요. :-)
cron을 이용할 때 착각할 수 있는 부분이 PATH입니다.
.sh 파일안에 #!/bin/sh 을 지정하면 일단 환경은 초기화가 되어버립니다.
즉, 내부에서 사용되는 명령어들이 발견되지 않을 수도 있다는 소리입니다.
사용하신 mkfifo, toolame, mplayer등등의 실행파일의 정확한 PATH를
적어주셔야합니다.
간단하게 mplayer가 /usr/bin/에 있다면 .sh파일안에는
...
/usr/bin/mplayer -vc null ...
...
형태로 그 파일이 어디에 있는지를 지정해 주어야만 동작이 가능합니다.
좀더 자세한 사항은 shell script부분을 찾아보시기 바랍니다.
------------------------------
좋은 하루 되세요.
------------------------------
좋은 하루 되세요.
감사합니다.
PATH가 문제이었나 봅니다. ^^
추석연휴 잘 보네세요~
내게로 떠나는 여행~
Let's be a realist, howe-ver, keep impossible dr-eam in our mind.
-Che Guevara-
And only the mistakes have been mine
-Malcolm X-
내게로 떠나는 여행~
댓글 달기