Syslog 출력 파일은 Syslog 서버에서 매시간 분할됩니다.

Syslog 출력 파일은 Syslog 서버에서 매시간 분할됩니다.

CentOS에 syslog 서버를 구현하고 다음 템플릿을 사용하여 매일 출력 파일을 생성했습니다.

$template TmplNationalIP_PL, "/var/log/NIPFW/MX480/CGNAT_PL_%$year%.%$month%.%$day%"
if ($msg contains 'OR_NAT' and $msg contains '55.91.165.') then ?TmplNationalIP_PL
& ~

위와 유사하게(매일), syslog 파일을 매시간(매일이 아닌) 매시간 분할하고 싶습니다.

사용할 HOURLY 변수를 찾을 수 없으므로 syslog 메시지 파일을 시간별로 분할하려면 어떻게 해야 합니까?

또한 logrotate + cron 작업을 사용하고 있지만 logrotate에는 시간별 회전 옵션이 없습니다(최소 일일).

다음은 에서 발췌한 내용입니다.고양이/etc/logrotate.d/syslog

/var/log/NIPFW/MX480
{
        rotate 50
        daily
        copytruncate
        missingok
        notifempty
        compress
        delaycompress
        dateext
        maxage 30
        sharedscripts
        postrotate
                reload rsyslog >/dev/null 2>&1 || true
        endscript
}

답변1

크론과 로그로테이트

스크립트는 /etc/cron.daily/logrotatedaily 폴더에 있습니다.

config 파일로 옮겨서 로 /etc/cron.hourly변경해야 합니다 daily.hourly

답변2

시간 기반 시스템 속성은 rsyslog적절하게 "$hour"라고 합니다. 이 내용은 다음과 같이 기록됩니다.rsyslog 속성 페이지.

따라서 다음과 같이 템플릿을 수정하여 시간별 로그 파일을 생성할 수 있습니다.

$template TmplNationalIP_PL,"/var/log/NIPFW/MX480/CGNAT_PL_%$year%.%$month%.%$day%.%$hour%"

관련 정보