크론에서 쉘 스크립트 실행시 한글이 깨지는 현상이 발생합니다.
글쓴이: 피곤해 / 작성시간: 수, 2006/02/15 - 10:26오전
현재 자바 소켓프로그램을 쉘 스크립트로 재실행 해 주고 있습니다.
# sh test.sh
하면 정상적으로 제대로 작동을 합니다.
그래서 crontab 에서다 추가해 두었습니다.
28 * * * * root sh /home/xxx/test.sh > /dev/null 2>&1
그런데, 소켓 프로그램이 오작동을 하는겁니다.
원인을 알아보기 위해 로그파일을 생성해 두었는데..
한글이 깨져서 ???? 로 보이네요..
콘솔상에서 직접 입력하면(sh test.sh) 한글깨짐 현상이 없이 로그가 기록이 되는데..
크론에 의해 재실행할 경우엔 ???? 로 한글이 깨지는 것은 왜 그런가요?
왜 그런지 알고 싶습니다.. ㅠ.ㅠ
Forums:
cron이 실행될때와 테스트하실때의 언어설정이 일치하지 않아서 아닐까요?
cron이 실행될때와 테스트하실때의 언어설정이 일치하지 않아서 아닐까요?
제 경우에는 cron으로 실행할 스크립트를 만들면 필요한 환경변수들(PATH등...)을 모두 스크립트에 포함시켜둡니다.
답변 감사합니다..언어설정때문에 그런것 같은데../etc/cr
답변 감사합니다..
언어설정때문에 그런것 같은데..
/etc/crontab 에다 우선 export LANG=korean 를 추가해 두었는데..
이처럼 해도 문제가 없겠죠.. ^^
네 문제없는 걸로 알고 있습니다.좀 더 자세하게 설명드리면쉘에
네 문제없는 걸로 알고 있습니다.
좀 더 자세하게 설명드리면
쉘에대한 설정은 두개의 파일로 구성됩니다.
/etc/profile, /etc/bashrc
/etc/profile의 경우 로그인쉘(로그인할때만)에 적용이 됩니다.
그리고 /etc/bashrc 파일의 경우 쉘이 생성될때마다 적용됩니다.
아마 cron의 경우에는 로그인쉘이 아닌 /etc/bashrc의 환경변수의 설정이 적용될 겁니다.
테스트를 해보신다면 PATH나 언어설정등을 /etc/bashrc에 넣고 cron으로 테스트해보시면 아마 원하시는 결과가 나오지 않을까 싶습니다.
* 저는 개인적으로 cron으로 동작시킬 스크립트에 직접 적어두는 것을 좋아합니다.
댓글 달기