크기가 1GB를 초과하면 특정 파일을 삭제하는 크론 작업이 있습니까?

크기가 1GB를 초과하면 특정 파일을 삭제하는 크론 작업이 있습니까?

몇 시간 만에 로그 파일이 27GB에 도달했을 때 서버가 심각한 손상으로 인해 충돌했습니다. 로그 파일은 매일 압축되며 일반적으로 매우 작으며 24시간 동안 최대 10MB까지 가능합니다. 오늘 제가 자고 있는 동안 스택 추적이 초당 20번씩 인쇄되고 로그가 27GB가 되었으며 하드 드라이브가 가득 차면 심각한 손상 및 데이터 손실이 발생하는 문제가 발생했습니다. 로그 파일은 항상 "latest.log"라고 불리며, 향후 이러한 문제를 방지하려면 파일이 1GB보다 커지면 파일을 삭제하는 cron 작업이 필요합니다. 도와 주셔서 감사합니다.

답변1

나는 이것을 하기 위해 cron을 사용하지 않을 것입니다. 비록 당신이 주장한다면, 간단한 find 줄이 그 트릭을 할 것입니다. Unix의 파일은 더 이상 사용되지 않을 때만 사라지기 때문에 서비스를 다시 시작해야 합니다.

크론탭으로 돌아가기:

*/10 * * * * find /dir -name latest.log -size +1GB -exec rm -f {} \; -exec command_to_restart_your_service \;

스택에 대해 이야기할 때 Tomcat에 대해 이야기하고 있다고 가정합니다. 아래 게시물을 확인하세요. 그러나 서버가 너무 중요하다면 모든 로그를 원격 로그 서버로 전달하겠습니다. 왜 위험에 처하겠습니까? 거기에서도 SQL 서버를 실행하고 있습니까? 별도의 서버에서 실행하겠습니다.

다음은 로그 크기 제한에 대한 기사 링크입니다.

https://stackoverflow.com/questions/8342336/how-to-set-maximim-number-of-rolls-and-maximum-log-size-for-tomcat

관련 정보