Linux + 오래된 로그 파일을 자동으로 압축하는 방법

Linux + 오래된 로그 파일을 자동으로 압축하는 방법

폴더 아래에 /var/log/httpd엄청난 용량의 파일이 생성되었습니다!

이 문제를 처리 할 수 있는 오래된 파일을 자동으로 압축하려면 어떤 솔루션을 사용할 수 있습니까 logrotate?

그렇다면 해당 폴더 아래의 이전 파일을 압축하도록 Linux 시스템을 어떻게 구성할 수 있습니까?

두 번째 질문: 이 파일들은 무엇을 의미하나요?

  13:16:50 root@BillGates-Machine:/var/log/httpd # ls -ltr
  -rw-r--r-- 1 root root      7612 Jan 30 05:51 ssl_error_log-20160131
  -rw-r--r-- 1 root root  16170199 Jan 31 03:29 ssl_request_log-20160131
  -rw-r--r-- 1 root root  14677353 Jan 31 03:29 ssl_access_log-20160131
  -rw-r--r-- 1 root root 425621646 Jan 31 03:38 access_log-20160131
  -rw-r--r-- 1 root root     77267 Jan 31 03:38 error_log-20160131
  -rw-r--r-- 1 root root     11233 Feb  7 03:43 ssl_error_log-20160207
  -rw-r--r-- 1 root root  16398688 Feb  7 03:44 ssl_request_log-20160207
  -rw-r--r-- 1 root root  14867381 Feb  7 03:44 ssl_access_log-20160207
  -rw-r--r-- 1 root root 471057664 Feb  7 03:48 access_log-20160207
  -rw-r--r-- 1 root root    101611 Feb  7 03:48 error_log-20160207

답변1

logrotate회전하는 파일을 압축하는 것이 가능하지만 애플리케이션에서 작성한 로그 파일 이름이 정적이 아닌 경우(여기의 경우처럼 파일 이름에 날짜 접미사가 있기 때문에) 제대로 작동하지 않습니다. 이는 날짜 접미사를 포함하지 않도록(즉, 쓰기만 하도록) HTTP 서버(Apache?)를 재구성하는 경우에 access_log작동합니다 .error_loglogrotate다음은 이와 같이 구성하는 방법을 보여주는 샘플 솔루션입니다.

이는 로그 파일 명명 체계를 유지하려는 경우에도 해결책이 있는 또 다른 관련 질문입니다.logrotate를 사용하지 않고 작업을 수행하는 사용자 정의 스크립트를 사용합니다.

간단히 말해서, 이 파일들이 의미하는 바는 다음과 같습니다.

  • access_log: 일반 HTTP 요청 성공
  • error_log: 오류를 발생시킨 순수 HTTP 요청
  • ssl_request_log: 성공적인 HTTPS 요청
  • ssl_error_log: 오류를 발생시킨 HTTPS 요청

(물론 구성이 이 논리에서 벗어날 수 있습니다)

답변2

로그 회전을 사용할 수 있습니다.

애플리케이션 구성 설정의 예는 dpkg(Debian Package Management System)이며, /etc/logrotate.d/dpkg이 파일의 항목 중 하나는 다음과 같습니다.

/var/log/dpkg.log {
      monthly
      size 500M
      rotate 12
      compress
      delaycompress
      missingok
      notifempty
      create 644 root root
}

지도 시간여기.

답변3

sudo crontab -ecron에 압축 작업을 추가합니다. 루트 crontab( ) 에 다음 줄을 추가합니다 .

0 0 * * * tar -czf /var/log/httpd_backup_`date`.tar.gz /var/log/httpd && rm -rf /var/log/httpd/*

이 명령은 이전 로그로 tar 아카이브를 생성하고 기존 로그를 삭제합니다. 일은 매일 0시에 시작됩니다.

관련 정보