コンテンツにスキップ

「Logrotate」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
ページの作成:「Category:デーモンとシステムサービス Category:データ圧縮とアーカイブ en:Logrotate {{Related articles start}} {{Related|Cron}} {{Related...」
 
参照: add TranslationStatus.
 
(7人の利用者による、間の26版が非表示)
1行目: 1行目:
[[Category:デーモとシステムサービス]]
[[Category:ロギ]]
[[Category:データ圧縮とアーカイブ]]
[[Category:データ圧縮とアーカイブ]]
[[en:Logrotate]]
[[en:Logrotate]]
[[pl:Logrotate]]
[[uk:Logrotate]]
{{Related articles start}}
{{Related articles start}}
{{Related|Cron}}
{{Related|Cron}}
7行目: 9行目:
{{Related articles end}}
{{Related articles end}}


https://fedorahosted.org/logrotate/ より:
https://github.com/logrotate/logrotate より:


:''ログファイルが大量に生成されるシステムで、ログファイルの管理を簡単にするために logrotate ユーティリティは作られました。Logrotate はログファイルの自動的なローテーション圧縮や削除、メール送信などを可能にします。Logrotate を設定することで、ログファイルを毎日毎周毎月ごとに管理したり、特定のサイズまで達した時の動作を決められます。''
:''ログファイルが大量に生成されるシステムで、ログファイルの管理を簡単にするために logrotate ユーティリティは作られました。Logrotate はログファイルの自動的なローテーション圧縮や削除、メール送信などを可能にします。Logrotate を設定することで、ログファイルを毎日毎周毎月ごとに管理したり、特定のサイズまで達した時の動作を決められます。''
15行目: 17行目:
==インストール==
==インストール==


{{Pkg|logrotate}} は[[公式リポトリ]]に含まれており、{{Grp|base}} グループのメンバーとしてデフォルトでインストールされます。
Logrotate は {{Pkg|logrotate}} パッケージでインストールできます。


{{Pkg|logrotate}}もはや [[cron]] ジョブを使用しません。代わりに systemd タイマーを使います: {{ic|systemctl status logrotate.timer}}。
デフォルトでは、logrotate は [[systemd/タイマー|systemd タイマー]]によって毎日動作します: {{ic|logrotate.timer}}。


==設定==
==設定==


logrotate の一番重要な設定ファイルは {{ic|/etc/logrotate.conf}} です。また、{{ic|/etc/logrotate.d}} ディレクトリには他の設定ファイルが含ています
デフォルトのパラメータを設定する logrotate のな設定ファイルは {{ic|/etc/logrotate.conf}} です。追加のアプリケーション固有の設定ファイルは、{{ic|/etc/logrotate.d}} ディレクトリに含まれています。アプリケーション固有に設定された値、プライマリ設定ファイルの同じパラメータをオーバーライドしす。設定例と使用可能なディレクティブのリファレンスについは、{{man|5|logrotate.conf}} を参照してください。


logrotate が正しく機能するかどうかを確認するには、デバッグモードで実行します。このモードでは、デバッグ出力の生成以外は何も行われません:
==トラブルシューティング==


$ logrotate --debug /etc/logrotate.conf
=== ログがローテーションされない ===


=== ログの圧縮 ===
cron ジョブによってログがローテーションされない場合、{{ic|user}} や {{ic|group}} の所有者が間違っている可能性があります。どちらも {{ic|root}} である必要があります。この問題を修正するには以下を実行:


Logrotate は、{{ic|zstd}} のようなカスタム コマンドを使用してログを圧縮できます。
{{bc|

# chown root:root /etc/logrotate.conf
# chown -R root:root /etc/logrotate.d
{{hc|/etc/logrotate.conf|
compress
compresscmd /usr/bin/zstd
compressext .zst
compressoptions -T0 --long
uncompresscmd /usr/bin/unzstd
}}
}}

もしくは、{{ic|/etc/logrotate.conf}} で使いたいユーザーとグループに {{ic|su}} 変数を設定してください。
詳細については、{{man|5|logrotate.conf}} および {{man|1|zstd}} を参照してください。

== 使用方法 ==

logrotate は通常、[[systemd]] サービスを介して実行されます。: {{ic|logrotate.service}}

logrotate を手動で実行するには:
logrotate /etc/logrotate.conf

単一のログファイルをローテートするには:
logrotate /etc/logrotate.d/mylog

設定ファイルの実行をシミュレーションするには(''dry run''):
logrotate --debug /etc/logrotate.d/mylog

条件が満されていない場合でも強制的にローテートするには、次のコマンドを実行します:
logrotate -vf /etc/logrotate.d/mylog

詳細については、{{man|8|logrotate}} を参照してください。

==トラブルシューティング==


=== exim のログがローテーションされない ===
=== exim のログがローテーションされない ===
42行目: 70行目:


この問題を修正するには、ユーザー {{ic|exim}} をグループ {{ic|log}} に追加してください。そして {{ic|olddir}} ({{ic|/var/log/old}}) のグループをデフォルトの {{ic|root}} から {{ic|log}} に変更してください。
この問題を修正するには、ユーザー {{ic|exim}} をグループ {{ic|log}} に追加してください。そして {{ic|olddir}} ({{ic|/var/log/old}}) のグループをデフォルトの {{ic|root}} から {{ic|log}} に変更してください。

=== logrotate の状態を確認 ===
{{ic|cat /var/lib/logrotate.status}} を実行することで logroate によってローテートされているファイルを確認できます:
{{hc| # cat /var/lib/logrotate.status |
"/var/log/mysql/query.log" 2016-3-20-5:0:0
"/var/log/samba/samba-smbd.log" 2016-3-21-5:0:0
"/var/log/httpd/access_log" 2016-3-20-5:0:0
}}
=== 親ディレクトリに安全でない権限があるためログをスキップする ===

どのユーザーとどのグループが {{ic|/etc/logrotate.d/job}} を実行する必要があるかを構成で設定します。

{{bc|
file-to-be-rotated {
su user group
rotate 4
}
}}


== 参照 ==
== 参照 ==


* [http://wiki.gentoo.org/wiki/Logrotate Logrotate on Gentoo Linux Wiki]
* [https://wiki.gentoo.org/wiki/Logrotate Logrotate on Gentoo Linux Wiki]
* [https://man.archlinux.org/man/logrotate.8 logrotate(8) Manual page]
* [https://man.archlinux.org/man/logrotate.conf.5 logrotate.conf(5) Manual page]

{{TranslationStatus|Logrotate|2024-04-02|794731}}

2024年9月10日 (火) 18:17時点における最新版

https://github.com/logrotate/logrotate より:

ログファイルが大量に生成されるシステムで、ログファイルの管理を簡単にするために logrotate ユーティリティは作られました。Logrotate はログファイルの自動的なローテーション圧縮や削除、メール送信などを可能にします。Logrotate を設定することで、ログファイルを毎日毎周毎月ごとに管理したり、特定のサイズまで達した時の動作を決められます。

logrotate のローテーションでは、既存のログファイルに数字を割り振って名前を変更し、元の空のログファイルを再作成します。例えば、/var/log/syslog.log/var/log/syslog.log.1 に名前が変更されます。/var/log/syslog.log.1 が既に存在する場合、名前は /var/log/syslog.log.2 に変更されます (バックログの数は設定で変えられます)。

インストール

Logrotate は logrotate パッケージでインストールできます。

デフォルトでは、logrotate は systemd タイマーによって毎日動作します: logrotate.timer

設定

デフォルトのパラメータを設定する logrotate の主な設定ファイルは /etc/logrotate.conf です。追加のアプリケーション固有の設定ファイルは、/etc/logrotate.d ディレクトリに含まれています。アプリケーション固有に設定された値は、プライマリ設定ファイルの同じパラメータをオーバーライドします。設定例と使用可能なディレクティブのリファレンスについては、logrotate.conf(5) を参照してください。

logrotate が正しく機能するかどうかを確認するには、デバッグモードで実行します。このモードでは、デバッグ出力の生成以外は何も行われません:

$ logrotate --debug /etc/logrotate.conf

ログの圧縮

Logrotate は、zstd のようなカスタム コマンドを使用してログを圧縮できます。

/etc/logrotate.conf
compress
compresscmd /usr/bin/zstd
compressext .zst
compressoptions -T0 --long
uncompresscmd /usr/bin/unzstd

詳細については、logrotate.conf(5) および zstd(1) を参照してください。

使用方法

logrotate は通常、systemd サービスを介して実行されます。: logrotate.service

logrotate を手動で実行するには:

logrotate /etc/logrotate.conf

単一のログファイルをローテートするには:

logrotate /etc/logrotate.d/mylog

設定ファイルの実行をシミュレーションするには(dry run):

logrotate --debug /etc/logrotate.d/mylog

条件が満されていない場合でも強制的にローテートするには、次のコマンドを実行します:

logrotate -vf /etc/logrotate.d/mylog

詳細については、logrotate(8) を参照してください。

トラブルシューティング

exim のログがローテーションされない

/etc/logrotate.confolddir 変数を設定した場合、以下のようなメッセージが表示されます:

error: failed to rename /var/log/exim/mainlog to /var/log/old/mainlog.1: Permission denied

この問題を修正するには、ユーザー exim をグループ log に追加してください。そして olddir (/var/log/old) のグループをデフォルトの root から log に変更してください。

logrotate の状態を確認

cat /var/lib/logrotate.status を実行することで logroate によってローテートされているファイルを確認できます:

 # cat /var/lib/logrotate.status 
"/var/log/mysql/query.log" 2016-3-20-5:0:0
"/var/log/samba/samba-smbd.log" 2016-3-21-5:0:0
"/var/log/httpd/access_log" 2016-3-20-5:0:0

親ディレクトリに安全でない権限があるためログをスキップする

どのユーザーとどのグループが /etc/logrotate.d/job を実行する必要があるかを構成で設定します。

file-to-be-rotated {
    su user group
    rotate 4
}

参照

翻訳ステータス: このページは en:Logrotate の翻訳バージョンです。最後の翻訳日は 2024-04-02 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。