--patter=だと・・。
いつもless ログファイル名 → / → 検索したい文字、っとやっていた手間2つが、無くせるかこれ・・・。
alias myless 'less --pattern=userID'
としてみると、自分のIDがハイライトされ、/↑(上カーソル)するとuserIDを検索したことになっている。手間が減った上に見易い。ふむふむ。え”-pで昔からあったの?w
|(パイブ)で繋いでどんどんpatternも増やせる、そして、お、``内にコマンドも入れても行ける行ける。
ならdataを入れて
less --pattern="`date +%d/%b/%Y`" /var/log/access_log
とするとこれは・・。
今日の最初のイベントの行まで飛んで、日付が無事ハイライトされる。
さらに、
date --date -1 hour
で、一時間前の日時を返すことを使って、なぜかapacheのログはdefaultで月が英字T_TなのでsetenvでLANGをいったん変える事にして
alias lessa 'setenv LANG C ; less --pattern="`date +%d/%b/%Y`| \[`date +%d/%b/%Y:%H:`| [\`date +%d/%b/%Y:%H --date -1hour`|[`date +%d/%b/%Y:%H --date -2hour`" \!* ; setenv LANG ja_JP.UTF-8'
としてみる。
ここで、10時台は":"まで反転
-1 hourの9時台は":"の手前までで反転
-2 hourの8時台は"["の前のスペースを反転させない
8時より前だが当日は"["も反転させない
とかして現在からの相対的な時刻ごとに反転する文字数を変えて、グラデーションを付けたような感じにして見ると、いやあ快適快適♪
そこまで頻繁に更新されるログでないのであれば、今日、昨日、おととい dateとdate --date -1 dayと-2dayでもいいだろう。
こういうログのチェックをする仕事なんて、膨大な待ち時間があると個人的には思っているので、その待たされている間に1日か、1時間か、10分単位かと調整した別なコマンドをaliasにしたり、ちょっと変なフォーマットのログもdateコマンドを打って試して、と準備出来るだろう。
いくつか注釈を
・ぢつは私が高頻度でチェックしているログのフォーマットはapacheのとはだいぶが違う。
上のはごまかしたが、実際のaccess_logは、IPアドレスの桁数が違うのでずれて見づらい。最初の" "をtabに変えてやってからとかがいいのかも。
・この例で今日のイベントがログにないと、Invalid pattern とかで何も表示されない/(¯-○-¯)\ので、 patternの中に、絶対ある文字列=psの出力とかだったらヘッダのを入れてる。(本来「ログ」より、瞬間の状況を見た時の方が使い出があるんだろう)
・date +%m/%dとかの/を通してくれない場合は、`date +%m`¥/`date +%m'とかちと面倒
・Mac.のdataコマンドはGNUのとは違っていて面倒なのでcoreutilityでGNUのdateを入れてるw
・aliasさせたいコマンドが複数あって";"とかで繋ぐ時は、\!*でファイル名を拾ってくれる、ってのもつい最近知った。
・aliastest.txtとかのファイルにaliasの行を入れて、source alias-test.txtで試してから.cshrcに入れないと、cronで動かしてるのがこけるので注意だぞ、オレ。