ソフトウェア/catlog の変更点
更新- 追加された行はこの色です。
- 削除された行はこの色です。
- ソフトウェア/catlog へ行く。
- ソフトウェア/catlog の差分を削除
[[公開メモ]] * gzip されたログファイルをシームレスに読むコマンド [#l4e282ef] /var/log にあるログ、最新版はテキストだけれど古いものは gzip されているので、 自動的に gunzip して古いものから新しいものへつなげて表示するコマンドを作った。 ~/bin/catlog LANG:bash #!/bin/bash gunzip -c `ls -r -t /var/log/$1* | grep -E "\.gz$"` | cat - `ls -r -t /var/log/$1* | grep -E "\.gz$" -v` ls に -t を付けると時刻順、-r を付けると古いもの順になる 引数 $1 として例えば dpkg.log が与えられれば普通は名前順で dpkg.log dpkg.log.1 dpkg.log.10.gz dpkg.log.11.gz dpkg.log.12.gz dpkg.log.2.gz dpkg.log.3.gz dpkg.log.4.gz dpkg.log.5.gz dpkg.log.6.gz dpkg.log.7.gz dpkg.log.8.gz dpkg.log.9.gz の順になるところ、 dpkg.log.12.gz dpkg.log.11.gz dpkg.log.10.gz dpkg.log.9.gz dpkg.log.8.gz dpkg.log.7.gz dpkg.log.6.gz dpkg.log.5.gz dpkg.log.4.gz dpkg.log.3.gz dpkg.log.2.gz dpkg.log.1 dpkg.log となってくれる。 このリストに grep -E "\.gz$" することで末尾が .gz となっているものをより分けて、 gunzip に渡し、-c でコンソールへ出力する 一方、同じリストを grep -v -E "\.gz$" することで、「末尾が .gz となっていないもの」をより分けて cat に渡す。 その際、前に - を付けて gunzip の結果を先に表示する * bash-completion [#t9d1a56d] タブ入力でログファイル名を補完して欲しい ~~/.bashrc LANG:bash _catlog() { COMPREPLY=( `find /var/log -type f 2>/dev/null | sed -r "s/\.[0-9]+(\.gz)?$//" | sed -r "s/\\/var\\/log\\///" | sort -u | grep -E "^$2"` ) } complete -F _catlog catlog とすることで、ログファイル一覧を自動補完する。 find /var/log -type f 2>/dev/null でエラーメッセージを捨てながらファイル名を列挙し、 sed -r "s/\.[0-9]+(\.gz)?$//" で末尾の ".数字.gz" を消去する sed -r "s/\\/var\\/log\\///" で先頭の "/var/log/" を消去する sort -u でアルファベット順にソートしつつ重複を除く grep -E "^$2"` で途中まで入力した文字があればその文字列で始まるもののみとする これを complete -F に渡せば良い LANG:console $ catlog ^T Display all 140 possibilities? (y or n) y ConsoleKit/history mail.log samba/log.dorami samba/log.shigekawa-pc alternatives.log mail.warn samba/log.fmva32mbp samba/log.shigekawaken apache2/access.log memcached.log samba/log.fujimoto-pc samba/log.shigekawalab221 apache2/error.log messages samba/log.jcifs0_1_e2 samba/log.smbd apache2/other_vhosts_access.log mongodb/mongod.log samba/log.jeol-sem samba/log.su-ochiai apache2/ssl_access.log mongodb/mongodb.log samba/log.jun-note samba/log.t-k-pc apt/history.log mysql.err samba/log.jun-pc samba/log.takeuchi-t430 apt/term.log mysql.log samba/log.jun-z87mx-d3h samba/log.takeuchi-thkpd aptitude news/news.crit samba/log.jun04-pc samba/log.takeuchi-tpdold auth.log news/news.err samba/log.k samba/log.test-d223098a93 btmp news/news.notice samba/log.kato-pc samba/log.tomoki daemon.log postgresql/postgresql-9.1-main.log samba/log.kishi-pc samba/log.tpe-ochiai dbconfig-common/dbc.log postgresql/postgresql-9.4-main.log samba/log.kobayashi-vaio samba/log.ubuntu_xeon debug redis/redis-server.log samba/log.kou-pc samba/log.ubuntupc denyhosts samba/log. samba/log.laptop-9p54nmgj samba/log.virtualpc-xp dmesg samba/log.10.10.10 samba/log.lenovo-pc samba/log.vt-g114 dpkg.log samba/log.10.225.225 samba/log.macbookpro-ebe7 samba/log.vt-stm exim4/mainlog samba/log.225-lenovo2 samba/log.mhqmygosmcwzlmr samba/log.wb-BUILTIN exim4/rejectlog samba/log.______-pc samba/log.mitani-pc samba/log.wb-DORA faillog samba/log._________-pc samba/log.mogi-think samba/log.win-hm8q3t62vkc fontconfig.log samba/log._______________-pc samba/log.mrs samba/log.win-inlu09e8kkn fsck/checkfs samba/log.bamba samba/log.nec-pcuser-pc samba/log.winbindd fsck/checkroot samba/log.bamba-dell samba/log.nmbd samba/log.winbindd-idmap installer/cdebconf/questions.dat samba/log.bamba-pc samba/log.nsu-pc samba/log.workstation installer/cdebconf/templates.dat samba/log.bamba-xps samba/log.ochiai samba/log.yoshida-pc installer/hardware-summary samba/log.banba-pc samba/log.ochiaidesktoppc samba/log.yoshida-vaio installer/lsb-release samba/log.desktop-02od8uj samba/log.osamu-a3acde464 samba/log.yuka-pc installer/partman samba/log.desktop-2fk5bki samba/log.owner-pc squid3/access.log installer/status samba/log.desktop-51i7357 samba/log.owner7 squid3/cache.log installer/syslog samba/log.desktop-8uhmfk9 samba/log.pc squid3/netdb.state kern.log samba/log.desktop-ea9rn79 samba/log.pcuser-pc suphp/suphp.log lastlog samba/log.desktop-hklb3hd samba/log.rdcifs_225_157_123 sympa.log lpr.log samba/log.desktop-i198eqf samba/log.sgkw-l syslog mail.err samba/log.desktop-o8sf0no samba/log.shalashaska-vai user.log mail.info samba/log.dfs-pc2 samba/log.shigekawa-lab wtmp Display all 140 possibilities? (y or n) n $ catlog a^T alternatives.log apache2/error.log apache2/ssl_access.log apt/term.log auth.log apache2/access.log apache2/other_vhosts_access.log apt/history.log aptitude * コメント・質問 [#lf8372ec] #article_kcaptcha
Counter: 2210 (from 2010/06/03),
today: 1,
yesterday: 2