*logrotateの設定 [#d9e28cae]
 
RIGHT:更新日&lastmod();  

log等を週単位で別ファイルに管理し、規定時期を過ぎると削除する仕組みとして logrotate機能がある。これはcronを利用して設定されている。~
cronはcrontabで指定した以外にも、/etc/cron.dailyや/etc/cron.weekly等の中のシェルを毎日または毎週実行する。

**cron [#ob59d149]
cronは/etc/crontabに指定のある日時に実行される。例えばデフォルトでは以下の
ように設定されている。

 SHELL=/bin/bash
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
 MAILTO=root
 HOME=/

 # run-parts
 01 * * * * root run-parts /etc/cron.hourly  <--毎時:01分
 02 4 * * * root run-parts /etc/cron.daily   <--毎日:04時02分
 22 4 * * 0 root run-parts /etc/cron.weekly  <--毎週:日曜:04時22分
 42 4 1 * * root run-parts /etc/cron.monthly <--毎月:1日:04時42分

**logrotate [#n3cd231e]
logrotateはまず、/etc/cron.daily/logrotateにより

 #!/bin/sh
 
 /usr/sbin/logrotate /etc/logrotate.conf

と指定されているため、/etc/logrotate.confを参照して実行される

/etc/logrotate.confには

 # see "man logrotate" for details
 # rotate log files weekly
 weekly  <--毎週
 
 # keep 4 weeks worth of backlogs
 rotate 4  <--過去4回分
 
 # create new (empty) log files after rotating old ones
 create
 
 # uncomment this if you want your log files compressed
 #compress
 
 # RPM packages drop log rotation information into this directory
 include /etc/logrotate.d  <--細かい指定
 
 # no packages own wtmp -- we'll rotate them here
 /var/log/wtmp {
     monthly
     create 0664 root utmp
     rotate 1
 }
 
 # system-specific logs may be also be configured here.

とあるので、基本的には毎週、過去4回分を残す指示がある。さらに細かい指定は
/etc/logrotate.dの中に指定があることが、指示されている。そこで/etc/logrotate.d
を見るといくつか設定ファイルがある。~
サンプルとして/etc/logrotate.d/apacheを見ると

 /usr/local/apache2/logs/access_log {
 ^^^^^^^^^^^^^^分割logの指定
     missingok
     postrotate
         /bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^動作しているpidが保存されているファイルを指定
     endscript
 }
 
 /usr/local/apache2/logs/agent_log {
     missingok
     postrotate
         /bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
     endscript
 }
 
 /usr/local/apache2/logs/error_log {
     missingok
     postrotate
         /bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
     endscript
 }
 
 /usr/local/apache2/logs/referer_log {
     missingok
     postrotate
         /bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
     endscript
 }

 /usr/local/apache2/logs/ssl_request_log {
     missingok
     postrotate
         /bin/kill -HUP `cat /usr/local/apache2/logs/httpd.pid 2>/dev/null` 2> /dev/null || true
     endscript
 }

のようにlog保存ファイルと、動作pidがあるファイルを指定する。


***logrotateのテスト [#nc6bef24]

設定ファイルが正しく機能するか否かは、cron.daily(注)が実行されるまで分からない
なお、-dオプションを付けてlogrotateコマンドを実行した場合、ログファイルは変更されない。

''エラーの場合''~
 # /usr/sbin/logrotate -dv /etc/logrotate.d/openmeetings
 reading config file /etc/logrotate.d/openmeetings
 reading config info for /var/log/openmeetings.log
 error: /etc/logrotate.d/openmeetings:3 lines must begin with a keyword or a filename (possibly in double quotes)
 error: /etc/logrotate.d/openmeetings:4 lines must begin with a keyword or a fi (略)
 # /usr/sbin/logrotate -dv /etc/logrotate.d/openmeetings
 reading config file /etc/logrotate.d/openmeetings
 reading config info for /var/log/openmeetings.log
 error: /etc/logrotate.d/openmeetings:3 lines must begin with a keyword or a filename (possibly in double quotes)
 error: /etc/logrotate.d/openmeetings:4 lines must begin with a keyword or a filename (possibly in double quotes) 
 (略)
 Handling 1 logs
 
 rotating pattern: /var/log/openmeetings.log  1048576 bytes (no old logs will be kept)
 empty log files are rotated, old logs are removed
 considering log /var/log/openmeetings.log
   log does not need rotating

''たぶんOK''~
 # /usr/sbin/logrotate -dv /etc/logrotate.d/openmeetings
 reading config file /etc/logrotate.d/openmeetings
 reading config info for /var/log/openmeetings.log
 
 Handling 1 logs
 
 rotating pattern: /var/log/openmeetings.log  1048576 bytes (no old logs will be kept)
 empty log files are not rotated, old logs are removed
 considering log /var/log/openmeetings.log
   log does not need rotating
 not running postrotate script, since no logs were rotated
--------------------------------------------------------------------------------
RIGHT:[[元ページ:http://wwwism.dyndns.org/hp/linux/l-rotate.htm]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS