| 7.1 logrotateについて |
RedHatをはじめ多くのディストリビューションでは、 logrotateプログラムを使ってログファイルのローテーションを行っています。
| 7.2 設定 |
はじめに、logrotate設定ファイルで設定できるコマンドについて、表に示します。
| コマンド | 説明 |
| rotate [N] | 指定したログファイルのローテーション回数を指定する。この場合N回。 |
| Missingok | ログファイルが無くとも、処理を正常終了する。 |
| compress | 古いログファイルをgipで圧縮する。 |
| nocompres | 圧縮しない。 |
| size [size M/K] | ログファイルが指定したサイズまで大きくなったらローテーションを開始する。サイズはメガ[M]かキロ[K]で指定する。 |
| create [permition] [owner] [group] | ログファイルのローテーション開始時に、新たにファイルを生成する。パーミッション、所有者、グループを指定できる。 |
| ncreate | 新たにファイルを生成しない。 |
| ifempty | ログファイルが空でもローテーションを行う。 |
| noifempty | ログファイルが空ならローテーションを行わない。 |
| daily | ログファイルを毎日、ローテーションする。 |
| weekly | ログファイルを毎週、ローテーションする。 |
| monthly | ログファイルを毎月、ローテーションする。 |
| postrotate | このコマンドの後に、ログファイルのローテーション後に実行するUNIXコマンドを記述する。 |
| endscript | postrotateの終端を示す。 |
| sharedscripts | 複数指定されたログファイルに対し、postrotate以降設定されたUNIXコマンドを実行する。 |
| include [dir] | dirディレクトリ以下の各種設定ファイルを読み込む。 |
3行目で、ローテーションの頻度が指定されています。デフォルトの設定ではweekly(毎週)ローテーションを行うよう設定されています。もしも頻度を変えたければ、daily(毎日)、monthly(毎月) を指定することが出来ます。
18行目の"include"コマンドで"/etc/logrotate.d"ディレクトリ以下の各種設定ファイルが読み込まれます。
各ログファイルの具体的なローテーション設定ファイルは、"/etc/logrotate.d"ディレクトリ以下に置かれています。
21行目以降は、/var/log/wtmpファイルのローテーション設定です。
1 # see "man logrotate" for details
2 # rotate log files weekly
3 weekly
4
5 # keep 4 weeks worth of backlogs
6 rotate 4
7
8 # send errors to root
9 errors root
10
11 # create new (empty) log files after rotating old ones
12 create
13
14 # uncomment this if you want your log files compressed
15 #compress
16
17 # RPM packages drop log rotation information into this directory
18 include /etc/logrotate.d
19
20 # no packages own lastlog or wtmp -- we'll rotate them here
21 /var/log/wtmp {
22 monthly
23 create 0664 root utmp
24 rotate 1
25 }
26
27 # system-specific logs may be configured here
|
# ls /etc/logrotate.d/ apache cron ftpd syslog |
4行目にpostrotateコマンドが設定され、ログファイルのローテーション後、apacheサーバにハングアップシグナル(HUP)が送られ、再起動します。これは、apacheサーバがローテーション済みのログファイルを手放し、新たなログファイルにログを出力するようにするためです。
ローテーションの頻度は、/etc/logrotate.confファイルで設定された"weekly"が継承されています。ローテーションの頻度を変えたい場合には、2行目〜3行目の間に"daily"か"monthly"を挿入します。
1 /var/log/httpd/access_log /var/log/httpd/agent_log /var/log/httpd/error_log /var/log/httpd/referer_log {
2 missingok
3 sharedscripts
4 postrotate
5 /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
6 endscript
7 }
|
home |index |previous |next |contents