카테고리 없음

stdout 로그파일의 무한정 커지는 문제와 관련한 테스트

알 수 없는 사용자 2011. 7. 15. 20:52
와스 운영시 stdout 내용을 x.out 파일에 리다이렉트 해서 주로 많이 쓴다. 문제는 서버가 너무 안정적이라 내릴일이 없어지면 이 x.out 파일 사이즈가 너무 커져버릴수 있다. 이 파일을 정리하려고 와스를 내리는건 좀 아닌것 같고 해서.. 찾던 중 이런 방법을 찾았습니다.

그리고 아래와 같이 테스트를 해보았습니다.


간단히 이런 스크립트를 하나 만들었습니다.

> cat z.sh
while ( true ) do date; sleep 1; done;


그리고 이렇게 실행시켰습니다.
> sh z.sh > z.out

그리고 이런 상황에서 다른 터미널을 열어서 알려주신대로 했습니다.

> cat /dev/null > z.out

그랬더니 역시 말씀하신대로 z.out 파일이 비워진후에도 계속해서 z.sh의 결과가 쌓여가더군요.

근데 ls 명령을 하면 해당 파일의 사이즈 값은 줄지 않고 계속해서 늘어가더군요.
새로운 터미널을 열고 아래와 같이 파일사이즈를 모니터링 하는 스크립트를 실행시켰습니다.

> while ( true ) do ls -al z.out; sleep 1; done;
-rw-r--r--   1 weblogic   weblogic     18532 7월 15 20:55 z.out
-rw-r--r--   1 weblogic   weblogic     18569 7월 15 20:55 z.out
-rw-r--r--   1 weblogic   weblogic     18606 7월 15 20:55 z.out
-rw-r--r--   1 weblogic   weblogic         0 7월 15 20:55 z.out
-rw-r--r--   1 weblogic   weblogic     18680 7월 15 20:55 z.out
-rw-r--r--   1 weblogic   weblogic     18717 7월 15 20:55 z.out
-rw-r--r--   1 weblogic   weblogic     18754 7월 15 20:55 z.out

이렇게 모니터링 하면서 cat /dev/null > z.out 을 몇 번 실행시켜도 파일사이즈는 줄지 않고 꾸준히 계속 올라가더군요. 실제 파일내용은 없어졌는데도... (순간적으로 사이즈가 0으로 표시되긴 합니다만)

왜그런걸까요?

참고로 HP-UX 입니다.