« リストとして登録されたファイルを tar コマンドでアーカイブする方法 | メイン | FlashFetch 0.3.4b0 »

2008年1月 9日

[LOG] logadm の処理内容を確認する方法

logadm 実行時に -v を指定することで、どのようなローテーション処理が実施されたのかを確認することができる。

[実行例]
----------------------------------------------------------------
# logadm -v
# loading /etc/logadm.conf
# processing logname: /var/log/syslog
# using default rotate rules: -s1b -p1w
# using default template: $file.$n
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.7 /var/log/syslog.8 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.6 /var/log/syslog.7 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.5 /var/log/syslog.6 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.4 /var/log/syslog.5 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.3 /var/log/syslog.4 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.2 /var/log/syslog.3 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.1 /var/log/syslog.2 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.0 /var/log/syslog.1 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog /var/log/syslog.0 # rotate log file
touch /var/log/syslog
chown 0:3 /var/log/syslog
chmod 644 /var/log/syslog
# recording rotation date Fri Jan 5 05:43:47 2007 for /var/log/syslog
rm -f /var/log/syslog.8 # expire by count rule
# processing logname: /var/adm/messages
# using default rotate rules: -s1b -p1w
# using default template: $file.$n
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.3 /var/adm/messages.4 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.2 /var/adm/messages.3 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.1 /var/adm/messages.2 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.0 /var/adm/messages.1 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages /var/adm/messages.0 # rotate log file
touch /var/adm/messages
chown 0:0 /var/adm/messages
chmod 644 /var/adm/messages
# recording rotation date Fri Jan 5 05:43:47 2007 for /var/adm/messages
rm -f /var/adm/messages.4 # expire by count rule
# processing logname: /var/cron/log
# using default expire rule: -C10
# processing logname: /var/lp/logs/lpsched
# using default rotate rules: -s1b -p1w
# processing logname: /var/adm/pacct
# using default template: $file.$n
sh -c kill -HUP `cat /var/run/syslog.pid` # -a cmd
# writing changes to /etc/logadm.conf
----------------------------------------------------------------

似たようなオプションとして、-n もある。こちらも -v と同様ローテーション処理時のアクションを表示するオプション。
-v との違いは、実際にファイルのローテーションは行われない点。
これから設定変更を行いたいが、試しにどのような動作になるのかを試したい場合などに有効。

[実行例]
----------------------------------------------------------------
# logadm -n

* logadm はデフォルトで -s1b -p1w (ファイルサイズが 1byte 以上、かつ前回のローテーションから1週間以上経過の場合にのみローテーションする) というオプションが適用されるため、必要に応じて上記に -p now や -s 0 のような指定すると良い。
----------------------------------------------------------------

なお、logadm コマンド実行時、ログファイル名を引数としてさらに追加することで、特定のファイルのみのローテーション処理を確認することができる。
ログファイル名を指定しなかった場合は、/etc/logadm.conf に設定された全てのログファイルについて出力が行われる。

[実行例]
----------------------------------------------------------------
# logadm -v /var/adm/messages

# logadm -v /var/adm/messages -p now
# /etc/logadm.conf をロードしています
# logname を処理しています: /var/adm/messages
# デフォルトの交替規則を使用します: -s1b -p1w
# デフォルトのテンプレートを使用します: $file.$n
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.3 /var/adm/messages.4 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.2 /var/adm/messages.3 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.1 /var/adm/messages.2 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages.0 /var/adm/messages.1 # rotate log file
mkdir -p /var/adm # verify directory exists
mv -f /var/adm/messages /var/adm/messages.0 # rotate log file
touch /var/adm/messages
chown 0:0 /var/adm/messages
chmod 644 /var/adm/messages
# /var/adm/messages の交替日付 Wed Jan 9 02:17:21 2008 を記録しています
rm -f /var/adm/messages.4 # expire by count rule
sh -c kill -HUP `cat /var/run/syslog.pid` # -a cmd
# /etc/logadm.conf に変更を書き込んでいます
----------------------------------------------------------------
# logadm -n /var/log/syslog -p now
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.7 /var/log/syslog.8 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.6 /var/log/syslog.7 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.5 /var/log/syslog.6 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.4 /var/log/syslog.5 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.3 /var/log/syslog.4 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.2 /var/log/syslog.3 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.1 /var/log/syslog.2 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.0 /var/log/syslog.1 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog /var/log/syslog.0 # rotate log file
touch /var/log/syslog
chown 0:3 /var/log/syslog
chmod 644 /var/log/syslog
sh -c kill -HUP `cat /var/run/syslog.pid` # -a cmd
----------------------------------------------------------------

投稿者 AJ : 2008年1月 9日 20:20

トラックバック

このエントリーのトラックバックURL:
http://www.factory-aj.com/cgi/mtctrl/mt-tb.cgi/275

 
Powered by Movable Type 4.27-ja | RSS1.0 | RSS2.0 | ATOM