질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

리눅스 bash script는 실행이 잘 되는데 crontab 제대로 실행되지를 않습니다.

작성자 정보

  • 21세기유망주 작성
  • 작성일

컨텐츠 정보

본문

제가 실행하고자 하는 스크립트는 run_process.sh파일로 저장되어 있고,
이 스크립트의 역할은 특정작업을 검색한 후에 그것이 6개보다 작으면
task_reserved.txt라는 파일을 한 줄씩 읽어와서
그 명령을 실행시킨 후에 명령 실행 시킨 줄은 파일에서 삭제하는 것입니다.

명령 프롬프트에서 직접 쉘 파일을 실행시키면 잘 동작합니다. 그러나 크론탭으로 작업을 예약해 둘 경우,
이 스크립트를 실행하였을때 생성되는 proc.txt파일도 생성이 되고, 명령을 읽어온 후에 그 명령을 읽어온 줄을 삭제하는 부분도 실행이 잘 되는데, echo로 출력하는 부분과, eval 부분이 실행되지 않습니다.

크론탭에 저장되어 있는 작업을 확인하기 위해서, crontab -l 을 쳐보면
*/20 * * * *  sh /home/ksl7922/run_process.sh로 작업을 저장해두었습니다.

참고로 운영체제는 Red Hat Enterprise Linux Server release 5.3 (Tikanga)이고,
저는 root계정이 아닌 사용자 계정을 사용하고 있습니다.

다음은 스크립트 파일 소스 입니다.

#!/bin/bash
pgrep mlp > /home/ksl7922/proc.txt
declare -i result
result=`sed -n '$=' /home/ksl7922/proc.txt`
echo "result = ${result}"

if ((result < 6)); then
    filename="/home/ksl7922/Memory_test/task_reserved.txt"
    cat $filename | while read LINE

    do
          sed -i "/$LINE/d" $filename
          eval $LINE

          break;
    done
else
    echo "Good job!"
 fi

관련자료

댓글 1

dslee님의 댓글

  • dslee
  • 작성일
root 로 한번 확인을 해보세요.

chmod 700 run_process.sh
crontab -e
*/20 * * * *  su - root -c '/home/ksl7922/run_process.sh >& /dev/null'

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  824 명