web-dev-qa-db-ja.com

1つのlogrotateチェックを手動で実行することは可能ですか?

Logrotateを一定の間隔でスケジュールせずに手動で1回実行することは可能ですか?

480
Vladimir

はい:logrotate --force $CONFIG_FILE

650
pilcrow

logrotate -d [your_config_file]はデバッグモードを起動し、何が起こるかについての詳細な説明を与えますが、ログファイルはそのまま残します。

478
sandover

単一の特定のディレクトリまたはデーモンのログファイルを強制実行したい場合は、通常/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のログだけが回転されます。

107
trisweb

冗長+強制モードで実行することをお勧めします。

logrotate -vf /etc/logrotate.conf

57
vivekv

Logrotateをすべて実行する方法は次のとおりです。

logrotate -f /etc/logrotate.conf

他のlogrotate設定も含まれているプラ​​イマリlogrotateファイルを実行します

34
Allen Hancock

次のコマンドを発行します。指定されたlogrotateを実行する方法です。

logrotate -vf /etc/logrotate.d/custom

オプション:

-v:プロセスを表示します

-f:強制実行

カスタム:ユーザー定義ログ設定

例:mongodb-log

# mongodb-log rotate

/data/var/log/mongodb/mongod.log {
    daily
    dateext
    rotate 30
    copytruncate
    missingok
}
21
wangc

/var/lib/logrotate.statusを編集して、テストしたいログファイルの「最終更新日」の日付をリセットします。

それからlogrotate YOUR_CONFIG_FILEを実行してください。

あるいは--forceフラグを使用することもできますが、logrotate.statusを編集することで、回転させて回転させないことに関してより正確にすることができます。

3
Ben Aveling

問題を解決するためのシェルスクリプトを作成しました。

http://www.ict.griffith.edu.au/anthony/software/#logrotate_one

このスクリプトは、 "/ etc/logrotate.d"にある単一のlogrotateサブ設定ファイルのみを実行しますが、グローバル設定ファイル "/etc/logrotate.conf"からグローバル設定を含みます。それをテストするために他のotpionsを使うこともできます...

例えば...

  logrotate_one -d syslog
1
anthony