squid access.log는 6개월보다 오래된 항목을 삭제합니다.

squid access.log는 6개월보다 오래된 항목을 삭제합니다.

Squid는 사용자의 사이트 방문 로그를 생성합니다. /var/squid/logs/access.log6개월이 지난 항목을 삭제하고 싶습니다 .

나는 매주 이 스크립트를 실행합니다. 나는 Perl 스크립트나 그와 유사한 것을 생각했습니다.

다음과 같습니다 access.log.

여기에 이미지 설명을 입력하세요.

항목은 다음과 같이 생성됩니다.

IP - - [15/Oct/2011:02:04:32 -400]

답변1

이 문제에 대한 일반적인 해결 방법은 파일에서 오래된 항목을 제거하는 대신 현재 로그 파일에 현재 항목만 포함되도록 로그 파일 순환을 사용하는 것입니다.

이것은 모두 logrotate프로그램에 의해 처리됩니다. 다음 구성은 요구 사항을 대략적으로 충족해야 합니다. 지난 6개월 동안의 로그 항목을 보관하고 /var/squid/logs/access.log매주 파일을 교체합니다.

/var/squid/logs/access.log {
    weekly
    rotate 26
    missingok
    nocreate
    sharedscripts
    postrotate
        test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
    endscript
}

로그 파일의 데이터에 정말로 관심이 있다면 해당 데이터를 수정해서는 안 됩니다.

답변2

솔루션newsyslog:

# logfile                 [owner:group]    mode    count    when   flags
/var/squid/logs/access.log root             644     26       $W0D0  JN

로그 파일은 삭제되기 전에 26번 순환됩니다. $W0D0매주 일요일 1시에 회전함을 나타냅니다 0:00.

이 플래그는 Jnewsyslog가 압축된 회전 파일을 사용해야 함을 나타냅니다 bzip2.

이 플래그는 N신호를 보내야 하는 프로세스가 없음을 나타냅니다.

관련 정보