月次アーカイブ: 3月 2013

nullpopopoみなさんこんばんは。シェル芸してますか?来月13日の勉強会、是非是非ご参加お待ちしております。昨日、こんなつぶやきを見つけたので、1日じゅう寝たり起きたりを繰り返すワンライナー(日付が変わったら終了する)を書いてみました。

ツイートしたときは手抜き140文字に収めるためにこんなワンライナーにしました。

でも「明日になるまで」をYYYYMMDDで書いちゃうなんてとってもカッコ悪い>< ということで明日の日付を変数に入れてしまいましょう。

[ (っ´∀`)っ@友の会 ~]$ TOMORROW=$(date +%Y%m%d --date='1 days') ; while :; do [ $TOMORROW -gt $(date +%Y%m%d) ] && echo -n "( ˘ω˘ )スヤァ… ( ˇω゚)チラ $(date)" && echo && sleep 1 || exit ; done

これで1日中 ( ˘ω˘ )スヤァ… ( ˇω゚)チラ してくれます。ね、簡単でしょう?

[amazonjs asin="B007O5NLLY" locale="JP" title="眠い 書道家が書いた漢字Tシャツ サイズ:L 白Tシャツ 前面プリント"]

nullpopopoApacheやNginxのアクセスログから、ステータスコードの集計を行うことはよくあると思います。ApacheやNginxはrpmでインストールした場合、通常はlogrotateにより日次や週次でローテーションされるので、現在のアクセスログと1世代前のアクセスログから本日分のログを抜きだし集計します。なお、ログのフォーマットは通常のcombined方式を前提としています。

[(っ´∀`)っ@www ~]$ cat bin/LOGCOUNT 
#!/bin/bash
LANG=C

LOGDATE=$(date '+%b %d %H:%M:%S')
ME=$(basename $0)
HNAME=$(hostname -s)
PID=$$
LOG0=/var/log/nginx/example.jp.access.log-$(date +%Y%m%d)
LOG1=/var/log/nginx/example.jp.access.log

TMP=${HOME}/tmp/${ME}_tmp.txt
OUT=${HOME}/logs/${ME}/${ME}_$(date +%Y%m%d).log

[ ! -d ${HOME}/logs/${ME} ] && mkdir -p ${HOME}/logs/${ME}

sudo cat $LOG0 | egrep $(date +%d/%b/%Y) > $TMP
sudo cat $LOG1 >> $TMP
echo | awk '{print "STATUS""t""COUNT"}'
cat $TMP | awk '{print $9}' | sort | uniq -c | sort -nr | 
awk '{print $2"t"$1}'
wc -l $TMP | awk '{print "TOTAL""t"$1}'

ログのローテーション設定により、変数LOG0とLOG1で指定するファイル名が変わりますので、これらはよく確認してくださいね。出力結果はこんな感じです。

[(っ´∀`)っ@www ~]$ LOGCOUNT 
STATUS	COUNT
200	224691
304	12849
404	7340
500	2904
"-"	1261
301	499
302	191
206	69
403	18
408	12
400	4
401	1
TOTAL	249839

ね、簡単でしょう?

[amazonjs asin="4844333399" locale="JP" title="できるPRO Apache Webサーバー 改訂版 Version 2.4/2.2/2.0対応 (できるPROシリーズ)"]

みなさんこんにちは。シェル芸してますか?ぼくはシェル芸の合間に確定申告書をカキカキしていました。普段西暦しか使っていないので、お役所の書類に和暦が出てくるとついこんなのを活用したくなっちゃいますね。

昨年FA宣言してからマメに収支計算とかしてなかったんですが、領収書のたぐいは取っておくものですね。あと、個人事業の届出をしておくと、最寄りの税務署から申告書や収支内訳書が紙で送られてくるので、こいつを下書きにさせてもらいました。国税庁のサイトに行くと自分でパッパカパッパカと数字入力して作成できるので、ここで作るのがおすすめです。

…続きを読む