리눅스에서 로그 파일 정리


10

커널 모듈의 일부 기능을 테스트하기 위해 kvm ubuntu 10.04 가상 머신을 사용하고 있습니다. /var/log파일을 통해 해당 모듈에 대한 커널 메시지를 관찰합니다.

정리 된 상태에서 시작하려면 rm -rf /var/log/*가상 컴퓨터를 실행 한 다음 다시 부팅하여 이전 메시지가 포함 된 로그 파일을 제거 합니다. 그러나 재부팅 한 후에도 새 로그 파일에는 여전히 이전 로그 메시지가 포함됩니다. 파일을 삭제하고 가상 머신을 재부팅하여 로그 파일 메시지를 제거하는 데 약 5-6주기가 소요됩니다.

왜 이런 일이 발생합니까? 로그 파일을 정리하는 더 쉬운 방법이 있습니까?


logrotate로그를 자동으로 삭제 및 회전하는 공식 Linux 소프트웨어입니다.
Hanan N.

나는 회전하고 싶지 않았다. 닦으십시오.
contemplatingzombie

1
다음은 나를 위해 작동하는 것 같습니다 : 1. rm -rf / var / log / * 2. dmesg -c 3. 재부팅 이것은 작동하기 때문에 커널은 부팅하는 동안 이전 로그 메시지를 읽고 버퍼에 보관하고 기록합니다 재부팅하는 동안 파일에 다시 한 번. 누군가 실제 메커니즘에 대해 더 많이 알고 있다면 업데이트하십시오.
contemplatingzombie

답변:


7

이전 로그를 정리하는 가장 쉬운 방법은 제거하지 않는 것입니다.

로그를 정리하는 가장 좋은 방법 logrotate은 Hanan N. 지적했거나 다음과 같습니다.

find /var/log -type f -exec /bin/cp /dev/null {} \;

각 로그 파일에 대해 이전 부팅에서 어떤 로그 항목을 참조하는지 확실하지 않지만 부팅 후이 항목을 지우려면 위의 명령을 /etc/rc.local스크립트에 넣을 수 있으므로 모든 로깅은 부팅 후입니다.

일반적으로 모든 문제 해결의 시작점이므로 로그를 지우고 싶지 않습니다.


'cp'명령은 마지막으로 확장 된 파일 이름 위에 모든 로그를 복사한다고 생각합니다 find /var/log/* -exec cp /dev/null {} \;.
jjmontes

@jjmontes 감사합니다. 당시에는 find 명령을 사용할 수 없었습니다. :) 그러나 그것은 실제로 내가 편집 한 방식으로 변경 될 것입니다
Karlson

3

당신이하고있는 일에 대해 커널 메시지에 대한 추가 로그 파일을 추가하는 것이 좋습니다. 일부 로그 데몬에서는 기록중인 레코드에 대해 일치를 수행 할 수 있으므로 파일에서 적절한 레코드 만 얻을 수 있습니다. 그런 다음 실행간에 파일을 회전, 삭제 또는 이름을 바꿀 수 있습니다. 재부팅하지 않으면 파일을 다시 열도록 HUP 신호를 로그 데몬에 보내야 할 수 있습니다.

로그에서 새 레코드 만 추출하는 도구도 있습니다. 패키지 의 logtail유틸리티 logcheck는 그러한 유틸리티 중 하나입니다. 대체 오프셋 파일로 실행할 수 있습니다.

패턴과 일치하는 레코드의 로그를보고보고하는 다른 도구가 있습니다. 이 중 하나가 당신에게 잘 작동 할 수 있습니다.


1

로그를 정리 로그로 회전 한 다음 이전 로그 항목을 삭제하면 우분투 LTS 14.04에서 제대로 작동하는 것으로 보입니다. 그것은 cp / dev / null 메소드와 비슷하지만 더 깨끗하다고 ​​생각합니다. ymmv

logrotate --force /etc/logrotate.conf
find /var/log/ -name '*[0-5]*' -exec rm {} \;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.