Quantcast
Channel: Planet MySQL
Viewing all articles
Browse latest Browse all 1081

バイナリログやスローログを見やすくするワンライナー

$
0
0
バイナリログやスローログを遡って更新履歴をチェックしたりする時に(個人的に)面倒なのが、
`こいつらはSQLステートメントの改行を反映するし、インデントもしっかり記録してくれる'こと。

grep -v "INSERT INTO t1"とかやっても、"VALUES"の手前で改行してインデントするような
小綺麗に書かれたコードだと上手く引っ掛けにくい。
個人的にはインデントあった方が好きだけど、大量のログを見る時には不向き。

なので1分で考えたワンライナー。

perl -e '$/="#"; while(<>) { s/[ \n\r\t]{2,}/ /g; print $_;}' | egrep -iv '^SET (TIMESTAMP|.+session\.|INSERT_ID)|^/\*|^BEGIN|^COMMIT|^DELIMITER' | grep '^[^#]' -B1


これで連続する改行なり空白なりを全部まとめて単独のスペース文字に変換できる。
grepでもawkでも自由自在。

ついでに、いつものSET TIMESTAMPやBEGIN, COMMITを弾いた上で、
コメント行以外の行とその直前のコメント行を引っこ抜いてくる。
スローログだったら-B2にすると良いかと。


…小汚いですが、1分で思い付いたのはこれくらいでした。
PlanetMySQL Voting: Vote UP / Vote DOWN

Viewing all articles
Browse latest Browse all 1081

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>