Dell Optiplex GXa SolarisTM 9  x86  9/04

messages ログ ローテート

戻る
IPnuts 4.0r3のSyslogをSolarisで受信させているため、messagesログが肥大化の一途を辿っている。 Solarisのデフォルトの毎週のローテーションでは、ファイルサイズが大きくなり過ぎて管理がし辛いので、 独自のローテーションスクリプトを毎日0時に走らせることにする。 ● 非圧縮で保存しておく期間(messagesログの個数)は10個までとする。 ● /var/adm内に圧縮済ログを格納するディレクトリを作成しておき、圧縮して日付の名前を付加した   messagesを、その中に保存させる。(例: messages20041201.gz )
※ GNUの gzip と sh-utils が必要。 スクリプト作成
shスクリプトmessages_rotate_log.shをviで作成する。
# vi /usr/bin/messages_rotate_log.sh
以下の内容を記述して保存する。
#!/bin/sh

cd /var/adm

if [ -f messages.9 ] ; then
	rm -f messages.9
fi

if [ -f messages.8 ] ; then
	mv messages.8 messages.9
fi

if [ -f messages.7 ] ; then
	mv messages.7 messages.8
fi

if [ -f messages.6 ] ; then
	mv messages.6 messages.7
fi

if [ -f messages.5 ] ; then
	mv messages.5 messages.6
fi

if [ -f messages.4 ] ; then
	mv messages.4 messages.5
fi

if [ -f messages.3 ] ; then
	mv messages.3 messages.4
fi

if [ -f messages.2 ] ; then
	mv messages.2 messages.3
fi

if [ -f messages.1 ] ; then
	mv messages.1 messages.2
fi

if [ -f messages.0 ] ; then
	mv messages.0 messages.1
fi

if [ -f messages ] ; then
	mv messages messages.0
fi

touch messages
chmod 600 messages

kill -HUP `cat /var/run/syslog.pid`

if [ ! -d messages_gzip.d ] ; then
	mkdir messages_gzip.d
	chmod 700 messages_gzip.d
fi

/usr/local/bin/gzip -c messages.0 > ./messages_gzip.d/messages`/usr/local/bin/date --date '1 days ago' +%Y%m%d`.gz
実行権限を与える。
# chmod 700 /usr/bin/messages_rotate_log.sh
crontabへの反映
crontabを編集モードで開く。
# crontab -e
以下の内容を記述して保存する。
### /var/adm/messages Rotate ### 0 0 * * * /usr/bin/messages_rotate_log.sh
デフォルトのローテーション変更
デフォルトのローテーションからmessagesを外す。 viで設定ファイルを開く。
# vi /etc/logadm.conf
以下のようにmessagesの行をコメントアウトする。
# /var/adm/messages -C 4 -P 'Mon Dec 20 18:10:00 2004' -a 'kill -HUP `cat /var/run/syslog.pid`'