一定の間隔でスケジュールせずに、手動で logrotate の反復を 1 回実行することは可能ですか?
8 に答える
はい: logrotate --force $CONFIG_FILE
logrotate -d [your_config_file]
デバッグ モードを起動し、何が起こるかについて詳細な説明を表示しますが、ログ ファイルは変更しません。
単一の特定のディレクトリまたはデーモンのログ ファイルを強制的に実行する場合、通常は で構成を見つけることができ、/etc/logrotate.d
それらはスタンドアロンで動作します。
で指定されたグローバル構成/etc/logrotate.conf
は適用されないことに注意してください。そのため、これを行う場合は、構成/etc/logrotate.d/[servicename]
ファイルで必要なすべてのオプションを具体的に指定する必要があります。
で試してみて、-d
何が起こるかを確認できます。
logrotate -df /etc/logrotate.d/nginx
次に、実行できます(例としてnginxを使用):
logrotate -f /etc/logrotate.d/nginx
そして、nginx ログだけがローテーションされます。
詳細+強制モードで実行することをお勧めします。
logrotate -vf /etc/logrotate.conf
すべての logrotate を実行する方法は次のとおりです。
logrotate -f /etc/logrotate.conf
これは、他の logrotate 構成も含むプライマリ logrotate ファイルを実行します
問題を解決するためにシェルスクリプトを作成しました。
https://antofthy.gitlab.io/software/#logrotate_one
このスクリプトは、「/etc/logrotate.d」にある単一の logrotate サブ構成ファイルのみを実行しますが、グローバル構成ファイル「/etc/logrotate.conf」のグローバル設定を含めます。他のオプションを使用してテストすることもできます...
例えば...
logrotate_one -d syslog