2011/01/27

tac コマンドで快適に less する (直近のログを快適に見たい)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
cat thinkpad.txt
a
b
c
というファイルがあったとして

tac thinkpad.txt すると
c
b
a
になります。cat を逆転したものだから tac

ところで
この tac コマンドの使いどころを考えていたら
こんなことを思いついた。

何かあった時にサーバのログを見る場合
たいてい見たいログは直近のログであることが多い。

そんな時
less /var/log/httpd/access_log
して G で一番下の行に移動するんですが、
ログのサイズがでかい場合
less が最終行を読み込むまで G でジャンプできずにイライラします。

そこで
tac /var/log/httpd/access_log | less
127.0.0.1 - - [27/Jan/2011:21:07:32 +0900] "GET /flash/exapmle/exapmle.swf HTTP/1.1" 200 49658 "http://example.com/exapmle/exapmle.swf" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.6; .NET CLR 1.1.4322)" 13846
127.0.0.1 - - [27/Jan/2011:21:07:32 +0900] "GET /flash/se/exapmle.mp3 HTTP/1.1" 200 10414 "http://example.com/exapmle/exapmle.swf" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.6; .NET CLR 1.1.4322)" 297
127.0.0.1 - - [27/Jan/2011:21:07:31 +0900] "POST /save/exapmle/?tm=Thu%20Jan%2027%2021:07:33%20GMT+0900%202011 HTTP/1.1" 200 444 "http://example.com/flash/exapmle.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4" 45813
ログは順番が逆転してしまうけど、直近のログがサクッと開くので快適
ログを見るだけに特化すれば順番が逆でもまったく問題ない。


いちいちパイプにつなぐのがめんどくさいのでlessを逆転したsselをでっちあげた
.zshrcに以下を書いておく
function ssel() {
tac $1 | less
}

ssel /var/log/httpd/access_log
127.0.0.1 - - [27/Jan/2011:21:07:32 +0900] "GET /flash/exapmle/exapmle.swf HTTP/1.1" 200 49658 "http://example.com/exapmle/exapmle.swf" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.6; .NET CLR 1.1.4322)" 13846
127.0.0.1 - - [27/Jan/2011:21:07:32 +0900] "GET /flash/se/exapmle.mp3 HTTP/1.1" 200 10414 "http://example.com/exapmle/exapmle.swf" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.6; .NET CLR 1.1.4322)" 297
127.0.0.1 - - [27/Jan/2011:21:07:31 +0900] "POST /save/exapmle/?tm=Thu%20Jan%2027%2021:07:33%20GMT+0900%202011 HTTP/1.1" 200 444 "http://example.com/flash/exapmle.swf" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4" 45813
おもちゃ箱をひっくり返して遊んでいる感じがでていてよい


ついでに
/var/log/httpd/access_log.1.gz のような圧縮されたログもあるので
zless を逆転した sselz もでっちあげておく
.zshrcに
function sselz() {
zcat $1 | tac | less
}
これについては zcat でファイルを開いてから tac するので遅いけど
ssel に慣れて sselz も欲しくなったのでよしとする

関連する記事

0 コメント:

関連記事