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には時間ごとの回転オプションはありません(少なくとも1日)。
以下は から抜粋した内容です。猫/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%"