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/logrotate
daily 폴더에 있습니다.
config 파일로 옮겨서 로 /etc/cron.hourly
변경해야 합니다 daily
.hourly
답변2
시간 기반 시스템 속성은 rsyslog
적절하게 "$hour"라고 합니다. 이 내용은 다음과 같이 기록됩니다.rsyslog 속성 페이지.
따라서 다음과 같이 템플릿을 수정하여 시간별 로그 파일을 생성할 수 있습니다.
$template TmplNationalIP_PL,"/var/log/NIPFW/MX480/CGNAT_PL_%$year%.%$month%.%$day%.%$hour%"