리눅스 bash script는 실행이 잘 되는데 crontab 제대로 실행되지를 않습니다.
작성자 정보
- 21세기유망주 작성
- 작성일
컨텐츠 정보
- 3,311 조회
- 1 댓글
- 0 추천
- 목록
본문
제가 실행하고자 하는 스크립트는 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
관련자료
-
이전
-
다음
dslee님의 댓글
- dslee
- 작성일
chmod 700 run_process.sh
crontab -e
*/20 * * * * su - root -c '/home/ksl7922/run_process.sh >& /dev/null'