squidclient mgr:* のログを取得する

■「squidclient mgr:menu」で、
 管理コマンドで無い、「public」なコマンドを引っ掛けて、
 片っ端から回してログに出すだけ。
 ワンライナーでも充分だけど、全部欲しい時は多分急いでるw。。。

$ w3m -dump https://raw.github.com/labunix/squidguard-script/master/squidcheckall.sh | tee squidcheckall.sh
#!/bin/bash
# for squid and squidGuard
# DEBUG or 1st Only

if [ "`id -u`" -ne "0" ];then
  echo "Sorry,Not Permit User!"
  exit 1
fi
ALLLOG="/var/log/squidcheckall_`date '+%Y%m%d'`.log.gz"
FLAG=0

dpkg -l squidclient | grep ^ii > /dev/null || FLAG=1
test -f "$ALLLOG" && chmod 600 "$ALLLOG"
touch "$ALLLOG" || FLAG=2

if [ "$FLAG" -ne "0" ];then
  echo "squidclient : Error Status $FLAG"
  exit 1
fi

squidclient mgr:menu | grep "public" | awk '{print $1}' | \
  for list in `xargs`;do
    echo -e "\n[${list}]\n"
    for n in `seq 1 80`;do echo -n "-" ;done
    echo ""
    squidclient mgr:${list}
  done | gzip > "$ALLLOG"
chmod 400 "$ALLLOG"

echo "See Log : `zcat ${ALLLOG} | wc -l` lines"
echo "lv -s ${ALLLOG}"
unset ALLLOG FLAG
exit 0

■実行する。
 用途としては、最初に欲しいログの選別、デバッグ目的や過去との比較が欲しい場合だろう。
 約16万行は滅多な事では読まないと思うし、日常で使う分は項目を絞って取得するべき。

$ chmod +x squidcheckall.sh
$ sudo ./squidcheckall.sh
$ sudo ./squidcheckall.sh
See Log : 167580 lines
lv -s /var/log/squidcheckall_20120906.log.gz

■gzipで圧縮しているので、およそ6MBが1.3MBに収まる。
 ※アクセス数等、環境に依存する。また、平常時の場合のサイズであることもお忘れなく。

$ du -h /var/log/squidcheckall_20120906.log.gz
1.3M    /var/log/squidcheckall_20120906.log.gz

$ sudo gzip -l /var/log/squidcheckall_20120906.log.gz
         compressed        uncompressed  ratio uncompressed_name
            1355166             5961721  77.3% /var/log/squidcheckall_20120906.log

■ログの項目は以下の通り。
 ページャに「lv -s」を使えば、ファイルを伸張する必要は無い。

$ sudo lv -s /var/log/squidcheckall_20120906.log.gz | grep "^\[" | column -c 100
[mem]                           [filedescriptors]               [active_requests]
[cbdata]                        [objects]                       [store_digest]
[events]                        [vm_objects]                    [storedir]
[squidaio_counts]               [openfd_objects]                [store_check_cachable_stats]
[coss]                          [pending_objects]               [store_io]
[diskd]                         [client_objects]                [pconn]
[ipcache]                       [io]                            [refresh]
[fqdncache]                     [counters]                      [delay]
[idns]                          [peer_select]                   [forward]
[url_rewriter]                  [digest_stats]                  [client_list]
[external_acl]                  [5min]                          [asndb]
[http_headers]                  [60min]                         [server_list]
[menu]                          [utilization]                   [non_peers]
[info]                          [histograms]