정상적으로 실행되는 스크립트인데도 cron으로 실행시 오류
글쓴이: scred / 작성시간: 금, 2007/07/20 - 4:13오후
Ubuntu 7.04를 사용하고 있습니다.
저는 EBS 라디오 방송을 녹음하는 스크립트를 사용하고 있습니다만,
Fedora에서 Ubuntu로 바꾼 이후에 이 스크립트가 정상적으로 작동하지 않습니다.
mplayer를 이용해서 녹음한 이후에 lame으로 mp3로 전환해주는 recording.sh를 가지고 있고, cron을 이용해서 시간에 맞춰 자동실행하게 해두고 있습니다.
스크립트 자체만 test하느라
$ recording.sh English
같은 것을 수행하면 정상적으로 English.mp3 같은 파일이 생성되는 것을 확인할 수 있는데, crontab 명령어로 스케쥴을 맞춰주고 실행하면 파일이 생성되지 않습니다.
테스트(ps -A 로 떠있는 것들 확인)해본 결과 cron 스케쥴에 맞추어서 recording.sh가 작동하는 것까지는 보이는데 mplayer가 떠 있지 않고, 파일을 생성하지 못하고 녹음시간이 지나면 스크립트가 종료되는 것으로 보입니다.
제가 볼 때는 cron도 정상이고 recording.sh도 정상인데, 서로 접목하면 오류가 발생하는 것 같아서 어떻게 처리해야할지 잘 모르겠습니다.
한가지 더 해 본 것은, 파일생성하는데 접근성이 문제가 되나 싶어서 스크립트에 홈디렉토리로 옮겨가라는 명령어도 더해보았는데 마찬가지였습니다.
무엇이 문제일까요?
Forums:
환경변수 또는 PATH 문제
일단 /var/logl/cron 로그로 실행이 정상적으로되는지 확인해 보시고요,
경험상 cron 실행의 오류 문제는 환경변수 또는 PATH 문제입니다.
쉘이 돌아갈때 필요한 환경변수. 예를 들어 DB 처리같은 경우는 ORACLE_HOME
LD_LIBRARY_PATH 등의 환경변수를 쉘 안에 다 포함시켜야 정상적인 동작을 합니다.
터미널로 직접 계정으로 로그인 했을때 환경변수를 cron 을 통한 실행에선
안 먹고 들어가기 때문이죠. 아니면...
필요한 실행파일등의 PATH 도 함께 확인해 보세요. PATH 가 안 잡혀 있어, 실행이
안되는경우도 많습니다. 이럴떈 상대 경로를 절대경로로 바꿔주시면 되고요.
도움이 되셨길...
^^;
답변
답변 감사드립니다.
실행되어야 할 mplayer의 경로를
/usr/bin/mplayer
로 직접적으로 제시하고 실행시켜도 여전히 mplayer가 실행되지 않습니다(cron에서만).
혹시 mplayer가 필요로 하는 부가파일들의 경로까지 다시 추가를 해주어야 하거나 그럴까요?
어쩌면 시스템 전체적으로 경로를 잡는데 문제가 있는 것도 같습니다.
.bash_profile의 path를 못 잡아준다거나 (.bashrc 에 직접 넣어서 해결했습니다)
멀쩡히 경로에 있는 명령어를 실행시켜도 그런 파일이 없다고 나오거나 하는 경우들도 있는 상태입니다.
Fedora와 Ubuntu가 경로를 처리하는 방식에 차이가 있나요? 이전에 잘 되던 것이 막혀서 시스템상의 차이가 있지 않나 하는 의심은 드는데 관련정보를 찾기가 어렵네요.
Informatics
profile 이 안먹어서 그런거 아니까요
윗분도 말씀하셨듯..cron은 profile을 안먹어서 발생한 문제가 아닐까 의심 됩니다..
참고해주세요.
댓글 달기