「Logrotate」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:デーモンとシステムサービス Category:データ圧縮とアーカイブ en:Logrotate {{Related articles start}} {{Related|Cron}} {{Related...」)
 
(Pkg/AUR テンプレートの更新)
(2人の利用者による、間の4版が非表示)
1行目: 1行目:
[[Category:デーモとシステムサービス]]
+
[[Category:ロギ]]
 
[[Category:データ圧縮とアーカイブ]]
 
[[Category:データ圧縮とアーカイブ]]
 
[[en:Logrotate]]
 
[[en:Logrotate]]
7行目: 7行目:
 
{{Related articles end}}
 
{{Related articles end}}
   
https://fedorahosted.org/logrotate/ より:
+
https://github.com/logrotate/logrotate より:
   
 
:''ログファイルが大量に生成されるシステムで、ログファイルの管理を簡単にするために logrotate ユーティリティは作られました。Logrotate はログファイルの自動的なローテーション圧縮や削除、メール送信などを可能にします。Logrotate を設定することで、ログファイルを毎日毎周毎月ごとに管理したり、特定のサイズまで達した時の動作を決められます。''
 
:''ログファイルが大量に生成されるシステムで、ログファイルの管理を簡単にするために logrotate ユーティリティは作られました。Logrotate はログファイルの自動的なローテーション圧縮や削除、メール送信などを可能にします。Logrotate を設定することで、ログファイルを毎日毎周毎月ごとに管理したり、特定のサイズまで達した時の動作を決められます。''
15行目: 15行目:
 
==インストール==
 
==インストール==
   
{{Pkg|logrotate}} は[[公式リポジトリ]]に含れており、{{Grp|base}} グループのメンバーとしてデフォルトでインストールされます。
+
Logrotate は {{Pkg|logrotate}} パッケーでインスールできす。{{Pkg|base}} グループのパッケとしてデフォルトでインストールされています。
   
{{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}} ディレクトリには他の設定ファイルが含まれています。
  +
  +
logrotate が正しく動作するか確認するには、以下のコマンドを実行してください。デバッグ出力が生成されます:
  +
logrotate -d
  +
logrotate スクリプトをテストするには (例えば {{ic|/etc/logrotate.d}} ディレクトリの nginx スクリプト)、以下のように実行してみてください:
  +
logrotate -f -v /etc/logrotate.d/nginx
   
 
==トラブルシューティング==
 
==トラブルシューティング==
 
=== ログがローテーションされない ===
 
 
cron ジョブによってログがローテーションされない場合、{{ic|user}} や {{ic|group}} の所有者が間違っている可能性があります。どちらも {{ic|root}} である必要があります。この問題を修正するには以下を実行:
 
 
{{bc|
 
# chown root:root /etc/logrotate.conf
 
# chown -R root:root /etc/logrotate.d
 
}}
 
もしくは、{{ic|/etc/logrotate.conf}} で使いたいユーザーとグループに {{ic|su}} 変数を設定してください。
 
   
 
=== exim のログがローテーションされない ===
 
=== exim のログがローテーションされない ===
42行目: 37行目:
   
 
この問題を修正するには、ユーザー {{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 によってローテートされているファイルを確認できます:
  +
{{bc|
  +
"/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
  +
}}
   
 
== 参照 ==
 
== 参照 ==
   
* [http://wiki.gentoo.org/wiki/Logrotate Logrotate on Gentoo Linux Wiki]
+
* [https://wiki.gentoo.org/wiki/Logrotate Logrotate on Gentoo Linux Wiki]
  +
* [https://linux.die.net/man/8/logrotate logrotate(8) Manual page]

2019年11月21日 (木) 18:49時点における版

関連記事

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 パッケージでインストールできます。base グループのパッケージとしてデフォルトでインストールされています。

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

設定

logrotate の一番重要な設定ファイルは /etc/logrotate.conf です。また、/etc/logrotate.d ディレクトリには他の設定ファイルが含まれています。

logrotate が正しく動作するか確認するには、以下のコマンドを実行してください。デバッグ出力が生成されます:

logrotate -d

logrotate スクリプトをテストするには (例えば /etc/logrotate.d ディレクトリの nginx スクリプト)、以下のように実行してみてください:

logrotate -f -v /etc/logrotate.d/nginx

トラブルシューティング

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 によってローテートされているファイルを確認できます:

"/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

参照