logrotate ‐ システムログをローテーション、圧縮、およびメール送信します
概要
logrotate [--force] [--debug] [--state file] [--skip-state-lock] [--wait-for-state-lock] [--verbose] [--log file] [--mail command] config_file [config_file2 ...]
説明
logrotate は、大量のログファイルを生成するシステムの管理を容易にするように設計されています。
これにより、ログファイルの自動ローテーション、圧縮、削除、およびメール送信が可能になります。各ログファイルは、毎日、毎週、毎月、またはログファイルが大きくなりすぎた場合に処理できます。
通常、logrotate は毎日の cron ジョブとして実行されます。ログの基準がログのサイズに基づき、logrotate が 1 日に複数回実行されている場合、または -f または --force オプションが使用されている場合を除き、ログは 1 日に 1 回以上変更されません。
コマンドラインで任意の数の設定ファイルを指定できます。後の設定ファイルで、前のファイルで指定されたオプションを上書きできるため、logrotate 設定ファイルがリストされている順序が重要です。通常、必要な他の設定ファイルを含める単一の設定ファイルを使用する必要があります。これを行う方法の詳細については、以下を参照してください。コマンドラインにディレクトリが指定されている場合、そのディレクトリ内のすべてのファイルが設定ファイルとして使用されます。
コマンドライン引数が指定されていない場合、logrotate はバージョンと著作権情報を表示し、簡単な使用方法の概要も表示します。ログのローテーション中にエラーが発生した場合、logrotate はゼロ以外のステータスで終了しますが、状態ファイルは更新されます。
オプション
-f, --force
logrotate に、必要でない場合でもローテーションを強制するように指示します。これは、logrotate 設定ファイルに新しいエントリを追加した後、または古いログファイルを手動で削除した場合に役立つことがあります。新しいファイルが作成され、ロギングが正しく継続されます。
-d, --debug
デバッグモードをオンにします。これにより、ログに変更が加えられず、logrotate 状態ファイルも更新されません。デバッグメッセージのみが出力されます。
-s, --state statefile
logrotate に、別の状態ファイルを使用するように指示します。これは、logrotate がさまざまなログファイルのセットに対して異なるユーザーとして実行されている場合に役立ちます。並行実行を防止するために、logrotate はデフォルトで状態ファイルにロックをかけます。ロックを取得できない場合、logrotate は値 3 で終了します。デフォルトの状態ファイルは /var/lib/logrotate/status です。/dev/null が状態ファイルとして指定された場合、logrotate は状態ファイルをロックまたは書き込もうとしません。
--skip-state-lock
状態ファイルをロックしない。たとえば、ロックがサポートされていない場合や許可されていない場合に使用します。
--wait-for-state-lock
別のログローテートプロセスによって状態ファイルのロックが解除されるまで待機します。このオプションを使用すると、ログローテートが永久に待機する可能性があります。注意して使用してください。
-v, --verbose
詳細モードを有効にし、たとえば、ローテーション中にメッセージを表示します。
-l, --log file
ログローテートが詳細出力をログファイルに記録するように指定します。-vスイッチでログローテートを実行した場合と同じ詳細出力が、そのファイルに記録されます。ログファイルは、ログローテートの実行ごとに上書きされます。
-m, --mail command
ログローテートがログをメール送信するために使用するコマンドを指定します。このコマンドは、次の引数を受け取る必要があります。
1. -s subjectで指定されたメッセージの件名
2. 受信者
コマンドは、標準入力からメッセージを読み取り、受信者にメールで送信する必要があります。デフォルトのメールコマンドは/usr/bin/mailです。
--usage
簡単な使用方法メッセージを表示します。
-?, --help
ヘルプメッセージを表示します。
--version
バージョン情報を表示します。
設定ファイル
ログローテートは、処理するログファイルに関するすべての情報を、コマンドラインで指定された一連の設定ファイルから読み取ります。各設定ファイルは、グローバルオプションを設定できます(ローカル定義はグローバル定義を上書きし、後続の定義は以前の定義を上書きします)。グローバルオプションは、先行するインクルードディレクティブに影響を与えません。単純な設定ファイルの例を次に示します。
# サンプルログローテート設定ファイル
compress
/var/log/messages {
rotate 5
weekly
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
"/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail _
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
/var/log/news/* {
monthly
rotate 2
olddir /var/log/news/old
missingok
sharedscripts
postrotate
kill -HUP $(cat /var/run/inn.pid)
endscript
nocompress
}
~/log/*.log {}
最初の数行はグローバルオプションを設定します。例では、ログはローテーションされた後に圧縮されます。コメントは、行の最初の空白以外の文字が#である限り、設定ファイルのどこにでも表示できます。
値とディレクティブは、空白またはオプションの=で区切られます。数値は、strtoul(3)によって理解できる形式で指定する必要があります。
設定ファイルの次のセクションでは、ログファイル/var/log/messagesの処理方法を定義します。ログは、5回の週次ローテーションが行われた後で削除されます。ログファイルがローテーションされた後(ただし、古いバージョンのログが圧縮される前)、コマンド/usr/bin/killall -HUP syslogdが実行されます。
次のセクションでは、/var/log/httpd/access.logと/var/log/httpd/error.logの両方のパラメータを定義します。各ログファイルは、100キロバイトを超えるとローテーションされ、古いログファイルは5回のローテーション後に_に(圧縮されていない状態で)メールで送信されます。sharedscriptsは、postrotateスクリプトがこのセクションに対して1回だけ実行され、ローテーションされる各ログに対しては実行されないことを意味します。ログファイル名は引用符で囲むことができます(名前がスペースを含む場合は、引用符が必要です)。通常のシェル引用規則が適用され、'、"、および\文字がサポートされます。
次のセクションでは、/var/log/news 内のすべてのファイルのパラメータを定義します。各ファイルは、毎月ローテーションされます。
最後のセクションでは、チルダ展開を使用して、現在のユーザーのホームディレクトリ内のログファイルをローテーションします。これは、グロブライブラリがチルダ展開をサポートしている場合にのみ利用できます。GNU グロブはこれをサポートしています。
ワイルドカードの使用には注意してください。* を指定すると、以前にローテーションされたファイルを含む、すべてのファイルがローテーションされます。これを回避する方法として、olddir ディレクティブまたはより正確なワイルドカード(例: *.log)を使用できます。
デフォルトでは、systemd(1) を使用する場合、logrotate.service ファイルで ProtectSystem=full オプションが設定されています。これにより、logrotate が /etc および /usr 内のログを変更することが防止されます。
logrotate 構成ファイルに含めることができるさまざまなディレクティブに関する詳細は、次のとおりです。
構成ファイルディレクティブ
これらのディレクティブは、logrotate 構成ファイルに含めることができます。
ローテーション
rotate count
ログファイルは、count 回ローテーションされた後、削除されるか、mail ディレクティブで指定されたアドレスにメールで送信されます。count が 0 の場合、古いバージョンはローテーションされるのではなく削除されます。count が -1 の場合、古いログは削除されませんが、maxage の影響を受けます(注意して使用してください。パフォーマンスとディスクスペースを無駄にする可能性があります)。デフォルトは 0 です。
olddir directory
ログは、ローテーションのために directory に移動されます。このディレクトリは、コピー、copytruncate、または renamecopy オプションが使用されていない限り、ローテーションされるログファイルと同じ物理デバイス上に存在する必要があります。ディレクトリは、ログファイルを含むディレクトリに対する相対パスであると想定されます。絶対パスが指定されている場合を除きます。このオプションを使用すると、ログのすべての古いバージョンが directory に配置されます。このオプションは、noolddir オプションでオーバーライドできます。
noolddir
ログは、通常存在するディレクトリ内でローテーションされます(これにより、olddir オプションがオーバーライドされます)。
su user group
このユーザーとグループで設定されたログファイルをローテーションします。デフォルトのユーザー/グループ(通常は root)を使用する代わりに。user はローテーションに使用するユーザーを指定し、group は使用するグループを指定します(「ユーザーとグループ」セクションを参照)。ここで指定するユーザー/グループが、create ディレクティブで指定した所有権でファイルを作成するための十分な権限を持っていない場合、エラーが発生します。logrotate が root 権限で実行される場合、非特権ユーザーによって直接または間接的に制御されるディレクトリ内のファイルをローテーションするには、su ディレクティブを使用することをお勧めします。
頻度
hourly ログファイルは、1 時間ごとにローテーションされます。通常、logrotate は cron によって毎日(または [systemd]({filename}../../systemd)(1) を使用する場合は logrotate.timer によって)実行するように構成されています。ログを実際に 1 時間ごとにローテーションするには、この構成を変更し、logrotate を 1 時間ごとに実行する必要があります。
daily ログファイルは毎日ローテーションされます。
weekly [曜日]
ログファイルは、各平日、または前回ローテーションされてから少なくとも7日経過した場合にローテーションされます(正確な時間は無視されます)。曜日の解釈は次のとおりです。0は日曜日、1は月曜日、...、6は土曜日を意味します。特別な値7は、曜日に関係なく、7日ごとにローテーションすることを意味します。曜日の引数が省略された場合は、デフォルトで0になります。
monthly
ログファイルは、logrotateが月に1回実行されるときにローテーションされます(通常は月の最初の日)。
yearly
ログファイルは、現在の年が前回ローテーションされた年と異なる場合にローテーションされます。
size サイズ
ログファイルは、サイズが指定されたバイト数を超えた場合にのみローテーションされます。サイズにkが続くと、サイズはキロバイトで、Mが続くとメガバイトで、Gが続くとギガバイトで解釈されます。したがって、size 100、size 100k、size 100M、size 100Gはすべて有効です。このオプションは、時間間隔のオプションと相互に排他的であり、時間基準の後に指定された場合、ログファイルは前回ローテーションされた時間に関係なくローテーションされます(最後に指定されたオプションが優先されます)。
ファイルの選択
missingok
ログファイルが存在しない場合は、エラーメッセージを出さずに次のファイルに進みます。nomissingokも参照してください。
nomissingok
ログファイルが存在しない場合は、エラーを出力します。これはデフォルトです。
ignoreduplicates
ログファイルの次のすべてのマッチを無視します。
ifempty
ログファイルが空の場合でもローテーションします。notifemptyオプションをオーバーライドします(ifemptyはデフォルトです)。
notifempty
ログファイルが空の場合はローテーションしません。ifemptyオプションをオーバーライドします。
minage カウント
ログが<カウント>日よりも古い場合にのみ、ログをローテーションします。
maxage カウント
ローテーションされたログが<カウント>日よりも古い場合に削除します。年齢は、ログファイルがローテーションされる場合にのみチェックされます。rotate -1は削除を妨げません。ファイルは、maillastとmailが設定されている場合に、設定されたアドレスにメールで送信されます。
minsize サイズ
ログファイルが指定されたサイズバイトを超えたときにログファイルがローテーションされますが、追加で指定された時間間隔(daily、weekly、monthly、またはyearly)の前ではありません。関連するsizeオプションは似ていますが、時間間隔のオプションと相互に排他的であり、時間基準の後に指定された場合、ログファイルは前回ローテーションされた時間に関係なくローテーションされます(最後に指定されたオプションが優先されます)。minsizeが使用される場合、ログファイルのサイズとタイムスタンプの両方が考慮されます。
maxsize サイズ
ログファイルが指定されたサイズバイトを超えた場合でも、追加で指定された時間間隔(daily、weekly、monthly、またはyearly)の前にログファイルがローテーションされます。関連するsizeオプションは似ていますが、時間間隔のオプションと相互に排他的であり、時間基準の後に指定された場合、ログファイルは前回ローテーションされた時間に関係なくローテーションされます(最後に指定されたオプションが優先されます)。maxsizeが使用される場合、ログファイルのサイズとタイムスタンプの両方が考慮されます。
tabooext [+] list
現在の禁止拡張子リストが変更されました(禁止拡張子およびパターンに関する詳細は、includeディレクティブを参照してください)。リストの先頭に「+」が付いている場合、現在の禁止拡張子リストが拡張されます。そうでない場合は、置き換えられます。起動時、禁止拡張子リストは次のようになります。 ,v, .bak, .cfsaved, .disabled, .dpkg-bak, .dpkg-del, .dpkg-dist, .dpkg-new, .dpkg-old, .dpkg-tmp, .new, .old, .orig, .rhn-cfg-tmp-*, .rpmnew, .rpmorig, .rpmsave, .swp, .ucf-dist, .ucf-new, .ucf-old, ~
taboopat [+] list
現在の禁止グロブパターンリストが変更されました(禁止拡張子およびパターンに関する詳細は、includeディレクティブを参照してください)。リストの先頭に「+」が付いている場合、現在の禁止パターンリストが拡張されます。そうでない場合は、置き換えられます。起動時、禁止パターンリストは空です。
ファイルとフォルダ
create mode owner group, create owner group
ローテーション後(postrotateスクリプトを実行する前に)、ログファイル(ローテーションされたログファイルと同じ名前)が作成されます。modeは、ログファイルのモードを8進数で指定します(chmod(2)と同じ)、ownerはログファイルの所有者となるユーザーを指定し、groupはログファイルが所属するグループを指定します(「ユーザーとグループ」セクションを参照)。ログファイルの属性のいずれかを省略すると、新しいファイルの属性は、省略された属性について、元のログファイルと同じ値を使用します。このオプションは、nocreateオプションを使用して無効にできます。
nocreate
新しいログファイルは作成されません(createオプションをオーバーライドします)。
createolddir mode [owner [group]], createolddir [owner [group]]
olddirディレクティブで指定されたディレクトリが存在しない場合、作成されます。modeは、olddirディレクトリのモードを8進数で指定します(chmod(2)と同じ)、ownerはolddirディレクトリの所有者となるユーザーを指定し、groupはolddirディレクトリが所属するグループを指定します(「ユーザーとグループ」セクションを参照)。modeが指定されていない場合、0755と見なされます。このオプションは、nocreateolddirオプションを使用して無効にできます。
nocreateolddir
logrotateは、olddirディレクトリが存在しない場合に作成しません。
copy ログファイルのコピーを作成しますが、元のファイルを変更しません。このオプションは、たとえば、現在のログファイルのスナップショットを作成する場合や、別のユーティリティがファイルを切り捨てたり解析する必要がある場合に使用できます。このオプションを使用すると、createオプションは効果がなくなり、古いログファイルは元の場所に残ります。copyオプションを使用すると、olddirディレクティブを使用して、ローテーションされたログファイルを別のデバイスに保存できます。
nocopy 元のログファイルをコピーせず、元の場所に残します(copyオプションをオーバーライドします)。
copytruncate
コピーを作成した後、元のログファイルをその場でゼロサイズに切り詰めます。ログファイルを閉じるようにプログラムに指示できない場合、プログラムが以前のログファイルへの書き込み(追加)を永遠に続ける可能性があるため、このオプションを使用できます。ファイルコピーと切り詰めの間には非常に短い時間しかなく、そのため、一部のログデータが失われる可能性があります。このオプションを使用すると、createオプションは効果がありません。古いログファイルは元の場所に残ります。copytruncateオプションを使用すると、olddirディレクティブを使用して、異なるデバイスにローテーションされたログファイルを保存できます。copytruncateオプションは、norenamecopyを意味します。
nocopytruncate
コピーを作成した後、元のログファイルをその場で切り詰めます(これにより、copytruncateオプションがオーバーライドされます)。
renamecopy
ログファイルは、同じディレクトリで".tmp"拡張子を追加して、一時的なファイル名に変更されます。その後、postrotateスクリプトが実行され、ログファイルが一時的なファイル名から最終的なファイル名にコピーされます。最後に、一時的なファイル名が削除されます。renamecopyオプションを使用すると、olddirディレクティブを使用して、異なるデバイスにローテーションされたログファイルを保存できます。renamecopyオプションは、nocopytruncateを意味します。
norenamecopy
元のログファイルを名前変更およびコピーしません(これにより、renamecopyオプションがオーバーライドされます)。
shred
unlink()の代わりに、shred -uを使用してログファイルを削除します。これにより、スケジュールされた削除後にログが読み取り不可能になるようにします。デフォルトではオフになっています。noshredも参照してください。
noshred
古いログファイルを削除するときに、shredを使用しません。shredも参照してください。
shredcycles count
GNU [shred]({filename}../../shred)(1)に、削除前にcount回ログファイルを上書きするように指示します。このオプションがない場合、shredのデフォルトが使用されます。
allowhardlink
複数のハードリンクを持つファイルをローテーションします。デフォルトではオフになっています。ターゲットファイルは、shredまたはcopytruncateを使用して空になる可能性があります。特に、ログファイルがrootとしてローテーションされる場合は、注意して使用してください。
noallowhardlink
複数のハードリンクを持つファイルをローテーションしません。allowhardlinkも参照してください。
圧縮
compress
古いバージョンのログファイルは、デフォルトで[gzip]({filename}../../gzip)(1)で圧縮されます。nocompressも参照してください。
nocompress
古いバージョンのログファイルは圧縮されません。compressも参照してください。
compresscmd
ログファイルを圧縮するために使用するコマンドを指定します。デフォルトは、[gzip]({filename}../../gzip)(1)です。compressも参照してください。
uncompresscmd
ログファイルを解凍するために使用するコマンドを指定します。デフォルトは、gunzip(1)です。
compressext
圧縮されたログファイルで使用する拡張子を指定します。デフォルトは、構成された圧縮コマンドに従います。
compressoptions
コマンドラインオプションは、使用されている場合は圧縮プログラムに渡すことができます。 [gzip]({filename}../../gzip)(1)のデフォルトは、"-6"(速度よりも高い圧縮を優先)です。異なる圧縮コマンドを使用する場合は、compressoptionsを変更して、それに一致するようにする必要がある場合があります。
delaycompress
前のログファイルの圧縮を次のローテーションサイクルまで延期します。これは、compressオプションと組み合わせて使用した場合にのみ有効です。特定のプログラムにログファイルを閉じるように指示できない場合があり、その結果、プログラムはしばらくの間、前のログファイルへの書き込みを続ける可能性があります。
nodelaycompress
前のログファイルの圧縮を次のローテーションサイクルまで延期しない(これはdelaycompressオプションをオーバーライドします)。
ファイル名
extension ext
拡張子がextのログファイルは、ローテーション後も拡張子を維持できます。圧縮を使用する場合、圧縮拡張子(通常は.gz)がextの後に表示されます。たとえば、ログファイル名がmylog.fooで、mylog.1.foo.gzではなくmylog.foo.1.gzにローテーションするとします。
addextension ext
ログファイルは、ローテーション後に拡張子extが追加されます。元のファイルがすでにextで終わっている場合、拡張子は重複せず、単に末尾に移動します。つまり、ファイル名とファイル名(拡張子付き)の両方がfilename.1extにローテーションされます。圧縮を使用する場合、圧縮拡張子(通常は.gz)がextの後に表示されます。
start count
これは、ローテーションに使用するベース番号です。たとえば、0を指定すると、ログは元のログファイルからローテーションされたときに.0拡張子で作成されます。9を指定すると、ログファイルは.9で作成され、0~8がスキップされます。ファイルは、rotateディレクティブで指定された回数だけローテーションされます。
dateext
古いバージョンのログファイルをアーカイブし、YYYYMMDDのような日付拡張子を追加します。拡張子は、dateformatおよびdateyesterdayオプションを使用して設定できます。
nodateext
古いバージョンのログファイルに日付拡張子を追加しない(これはdateextオプションをオーバーライドします)。
dateformat format_string
^ ateextオプションで使用する拡張子を、strftime(3)関数と同様の表記を使用して指定します。%Y %m %d %H %M %S %V %sおよび%zの指定子のみが許可されます。デフォルト値は-YYYYMMDDで、時間単位の場合は-YYYYMMDDHHです。ログ名と拡張子を区切る文字も、dateformat文字列の一部であることに注意してください。システムクロックは、%sが正しく機能するように、2001年9月9日以降に設定されている必要があります。また、この形式で生成された日付スタンプは、辞書順でソート可能である必要があります(つまり、最初に年、次に月、次に日)。たとえば、2001/12/01は問題ありませんが、01/12/2001は、01/11/2002がそれよりも前にソートされるため、問題があります。これは、rotateオプションを使用する場合、logrotateがすべてのローテーションされたファイル名をソートして、どのログファイルが古く、削除する必要があるかを判断するためです。
dateyesterday
今日の代わりに昨日の日付を使用してdateext拡張子を作成し、ローテーションされたログファイルに、ファイル内のタイムスタンプと同じ日付が名前として含まれるようにします。
datehourago
現在の時刻ではなく、時間単位でログファイルを作成し、`dateext`拡張機能を作成します。これにより、ローテーションされたログファイルには、ファイル内のタイムスタンプと同じ時間単位の名前が付けられます。時間単位でのローテーションに役立ちます。
メール
mail address
ログがローテーションされて存在しなくなった場合、指定されたアドレスにメールで送信されます。特定のログに対してメールを生成する必要がない場合は、`nomail`ディレクティブを使用できます。
nomail
古いログファイルをメールで送信しません。
mailfirst
`mail`コマンドを使用する場合、ローテーションされるファイルではなく、ローテーションされる直前のファイルをメールで送信します。
maillast
`mail`コマンドを使用する場合、ローテーションされる直前のファイルをメールで送信します(デフォルト)。
追加の構成ファイル
include file_or_directory
引数として与えられたファイルを読み込み、`include`ディレクティブが出現する場所でインラインで組み込まれたかのように扱います。ディレクトリが与えられた場合、そのディレクトリ内のほとんどのファイルが、アルファベット順に読み込まれた後、組み込みファイル自体の処理が続行されます。無視されるファイルは、通常のファイルでないファイル(ディレクトリや名前付きパイプなど)と、`tabooext`または`taboopat`ディレクティブで指定された禁止された拡張子またはパターンで終わるファイルです。与えられたパスは`~`で始まるようにして、実行ユーザーのホームディレクトリを基準にした相対パスにすることができます。セキュリティ上の理由から、構成ファイルはグループ書き込み可能または世界書き込み可能であってはなりません。
スクリプト
sharedscripts
通常、`prerotate`と`postrotate`スクリプトは、ローテーションされる各ログファイルに対して実行され、ログファイルの絶対パスがスクリプトの最初の引数として渡されます。つまり、単一のスクリプトは、複数のファイルに一致するログファイルエントリに対して複数回実行される可能性があります(例:`/var/log/news/*`)。`sharedscripts`が指定された場合、スクリプトはワイルドカードパターンに一致するログファイルがいくつあっても、1回だけ実行され、パターン全体がそれらに渡されます。ただし、パターン内のログファイルのうち、ローテーションする必要がない場合、スクリプトはまったく実行されません。スクリプトがエラーで終了した場合(またはいずれかのログファイルがローテーションに失敗した場合)、残りのアクションはどのログファイルに対しても実行されません。このオプションは、`nosharedscripts`オプションをオーバーライドします。
nosharedscripts
`prerotate`と`postrotate`スクリプトを、ローテーションされるすべてのログファイルに対して実行します(デフォルトであり、`sharedscripts`オプションをオーバーライドします)。ログファイルの絶対パスがスクリプトの最初の引数として渡されます。最終的にローテーションされたログファイルの絶対パスが、`postrotate`スクリプトの2番目の引数として渡されます。スクリプトがエラーで終了した場合、残りのアクションは、影響を受けたログファイルに対してのみ実行されません。
firstaction
script
endscript
スクリプトは、ワイルドカードパターンに一致するすべてのログファイルがローテーションされる前に、`prerotate`スクリプトが実行される前に、そして少なくとも1つのログファイルが実際にローテーションされる場合にのみ、1回実行されます。これらのディレクティブは、ログファイル定義内にのみ存在できます。パターン全体が、スクリプトの最初の引数としてスクリプトに渡されます。スクリプトがエラーで終了した場合、それ以上の処理は行われません。`lastaction`および「スクリプト」セクションも参照してください。
lastaction
script
endscript
スクリプトは、ワイルドカードパターンに一致するすべてのログファイルがローテーションされた後、postrotateスクリプトが実行された後に、少なくとも1つのログがローテーションされた場合にのみ、一度実行されます。これらのディレクティブは、ログファイル定義の中にのみ表示できます。パターン全体が、スクリプトの最初の引数として渡されます。スクリプトがエラーで終了した場合、エラーメッセージのみが表示されます(これは最後の処理であるためです)。firstactionおよびSCRIPTSセクションも参照してください。
prerotate
script
endscript
スクリプトは、ログファイルとその古いログがローテーションされる前に実行され、ログが実際にローテーションされる場合にのみ実行されます。これらのディレクティブは、ログファイル定義の中にのみ表示できます。通常、ログファイルの絶対パスが、スクリプトの最初の引数として渡されます。sharedscriptsが指定されている場合、パターン全体がスクリプトに渡されます。postrotateおよびSCRIPTSセクションも参照してください。sharedscriptsおよびnosharedscriptsを参照して、エラー処理を確認してください。
postrotate
script
endscript
スクリプトは、ログファイルがローテーションされた後、ログファイルが圧縮される前に実行されます。これらのディレクティブは、ログファイル定義の中にのみ表示できます。通常、ログファイルの絶対パスがスクリプトの最初の引数として渡され、最終的なローテーションされたログファイルの絶対パスがスクリプトの2番目の引数として渡されます。sharedscriptsが指定されている場合、パターン全体が最初の引数としてスクリプトに渡され、2番目の引数は省略されます。prerotateおよびSCRIPTSセクションも参照してください。sharedscriptsおよびnosharedscriptsを参照して、エラー処理を確認してください。
preremove
script
endscript
スクリプトは、ログファイルの削除直前に一度実行されます。logrotateは、削除されるファイルのパスをスクリプトの最初の引数として渡します。firstactionおよびSCRIPTSセクションも参照してください。
SCRIPTS
開始キーワード(例:prerotate)とendscript(両方ともそれぞれ別の行に表示する必要があります)の間の行は、実行されます(/bin/shを使用)。スクリプトは、logrotateプロセスからいくつかの特性を継承します。これには、stderr、stdout、現在のディレクトリ、環境、umaskが含まれます。スクリプトは、suディレクティブに関係なく、呼び出し元のユーザーとグループとして実行されます。--logフラグが指定された場合、ファイル記述子3はログファイルです。現在の作業ディレクトリは指定されていません。
USER AND GROUP
ユーザーおよびグループ識別子は、まずテキスト表現を試行し、失敗した場合は、数値表現を試行して解決されます。
FILES
/var/lib/logrotate/status デフォルトのステータスファイル。
/etc/logrotate.conf 構成オプション。
関連項目
chmod(2)、gunzip(1)、gzip(1)、mail(1)、shred(1)、strftime(3)、strtoul(3)、 [https://github.com/logrotate/logrotate]
著者
エリック・トロアン、プレストン・ブラウン、ヤン・カルーザ。
[https://github.com/logrotate/logrotate]