Solaris - *BSDライクにnewsyslog
- はじめに
- Solarisではログのローテーションに /usr/sbin/logadm(Solaris9)、/usr/lib/newsyslog(Solaris8)
が使用されています。Solaris8に関してはnewsyslogという名のshellスクリプトが用いられています。
これらをBSDで慣れ親しんだnewyslog+newsyslog.confの組み合わせに置き換える手法について解説します。
- 用意するもの
- newsyslog.tar.gz
http://www.weird.com/~woods/projects/newsyslog.html
- インストール
% tar zxvf newsyslog.tar.gz
% cd newsyslog-1.0.103
% ./configure --with-gzip --with-syslogd_pid=/var/run/syslog.pid --with-newsyslog_conf=/etc/newsyslog.conf
% make newsyslog
% su
# mkdir -p /usr/local/sbin
# cp newsyslog /usr/local/sbin
# cp newsyslog.conf /etc
# chmod 700 /usr/local/sbin/newsyslog
- コンフィグレーション
- ログ環境に合わせてローテーションタイミングなどを設定します。
なお、時刻設定の際に*BSDの/etc/newsyslog.confで付与する「$」は付けずに設定します
# vi /etc/newsyslog.conf
| /var/adm/all.log | | 644 | | 12 | | * | | M1D0 | | Z0 |
| /var/adm/mail.log | | 644 | | 365 | | * | | D0 | | Z0 |
| /var/adm/messages | | 644 | | 20 | | 1000 | | * | | Z0 |
上記の例では
/var/adm/all.logを毎月初日の午前0時にローテーション、
/var/adm/mail.logを毎日午前0時にローテーション、
/var/adm/messagesが1Mbyteに達したらローテーション
を実行させています。
- crontabへ登録
# crontab -e
「10 3 * * * /usr/sbin/logadm」もしくは「10 3 * * 0 /usr/lib/newsyslog」をコメントアウトし、
/usr/local/sbin/newsyslogの実行エントリーを追加します。
#10 3 * * 0 /usr/lib/newsyslog (Solaris8)
#10 3 * * * /usr/sbin/logadm (Solaris9)
0 * * * * /usr/local/sbin/newsyslog -i 60