10

logrotate.conf の例と、/etc/logrotate.d ディレクトリ内のすべてを調べました。これらのファイルの変数に関するドキュメントはどこにもありませんでした。

作成中のアプリケーションのログをローテーションするための構成ファイルを作成しようとしています。ログが保存されるディレクトリを一度設定してから、次のように変数として使用します。

my_app_log_dir=/where/it/is/deployed/logs

${my_app_log_dir}/*.log ${my_app_log_dir}/some_sub_dir/*.log {
    missingok
    # and so on
    # ...
}

それは可能ですか?

4

4 に答える 4

10

このクラッジを実装することで、探しているものを達成できます。

my-logrotate.conf (注: 二重引用符"は必須です。また、ファイル名は同じ行に表示する必要はありません)

"*.log"
"some_sub_dir/*.log"
{
    missingok
    # and so on
    # ...
}

次に、実際の logrotate スクリプト - my-logrotate.sh

#!/bin/sh

set -eu

cd "${my_app_log_dir}"
exec logrotate /path/to/my-logrotate.conf

これで、logrotate.sh を crontab に追加できます。

于 2010-12-11T14:23:38.240 に答える
5

インストール時または logrotate を実行する前に、bash の「here document 」を使用して、適切な構成ファイルをオンザフライで作成できます。

bash スクリプトは次のようになります。

cat >rt.conf <<.
"${my_app_log_dir}/*.log" {
    rotate 5
    size 15k
    missingok
}
.

logrotate  rt.conf
于 2016-03-23T09:35:53.060 に答える
1

構成ファイルに直接ありません(logrotateに関する私の知識によると)。

その他の解決策:

  • ディレクトリから構成ファイルの一部を含めるには、include オプションを使用します。これは、アプリケーションのパッケージがある場合に役立ちます。パッケージは、アプリケーションのエントリのみを含むファイルをそのディレクトリに残すことができます。
于 2009-11-19T09:24:14.243 に答える