var/log/remots/*/*
次の logrotate ルールを使用してファイルを圧縮する必要があります。
/var/log/remots/*/* {
rotate 178
daily
maxage 178
compress
}
に横たわっている/etc/logrotate.d/remots
。
私も次のスクリプトを書いています。
cp rsyslog.conf /etc/rsyslog.conf
cp 10-remot.conf /etc/rsyslog.d/10-remot.conf
cp remots /etc/logrotate.d/remots
./rpgp.sh perms.txt
service rsyslog restart
しかし、強制的にlogrotateを実行すると、sudo logrotate -d --force /etc/logrotate.d/remots
ログはまだ圧縮されていないプレーンテキストです。出力は多くのメッセージに似ています。
renaming /var/log/remots/GSX/2019-03-25.2.gz to /var/log/remots/GSX/2019-03-25.3.gz (rotatecount 178, logstart 1, i 2)
renaming /var/log/remots/GSX/2019-03-25.1.gz to /var/log/remots/GSX/2019-03-25.2.gz (rotatecount 178, logstart 1, i 1),
renaming /var/log/remots/GSX/2019-03-25.0.gz to /var/log/remots/GSX/2019-03-25.1.gz (rotatecount 178, logstart 1, i 0),
ついに
/var/log/remots/GSX/2019-03-25.179.gz doesnt' exist -- wont't you try to dispose of it
renaming /var/log/remots/GSX/2019-03-25 to /var/log/remots/GSX(2019-03-25.1
compressing log with: /bin/gzip
PD:10-remots.confは次のようになります。
$template GuardaRemots, "/var/log/remots/%HOSTNAME%/%timegenerated:1:10:date-rfc3339%"
:source, !isequal, "localhost" -? GuardaRemots
rsyslog.conf は、単に UDP ポート 514 でリッスンするように設定されます。
答え1
私が見たものからログロテートが混乱しています。まず、名前パターンをより厳密に管理する必要があります。/var/log/remots/*/*
回転する代わりに回転する必要があります。
/var/log/remots/*/*.log {
rotate 178
daily
maxage 178
compress
}
設定を変更するときは、/var/lib/logrotate/status
.deleteファイルのすべてのエントリを確認する必要があります.*gz
。
独自のログを回転させるプログラムとログロテートを混在させることはあまり一般的ではありません。古いログファイルに書き込むようにrsyslogを設定しました。静的ファイル名を使用し、logrotateが日付を追加できるようにする方が一般的です。他の人も同じタイプの設定に問題があることを確認しました。 https://stackoverflow.com/questions/8962477/logrotate-files-with-date-in-the-file-name
この機能を設定する簡単な方法は、「remots」(rsyslog) ログを静的場所に記録することです。たとえば、次のようになります。
$template GuardaRemots, "/var/log/remots/%HOSTNAME%.log"
:source, !isequal, "localhost" -? GuardaRemots
その後、回転します。
/var/log/remots/*.log {
rotate 178
daily
maxage 178
compress
}
Logrotateは回転すると自動的に日付を追加します。