Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
oom-killの発生時間をkern.logから検出します
#!/bin/bash
echo "oom-killの発生時間をkern.logから検出します"
#[kern.logから「oom-kill」を探してその発生日時(Jan 1 01:05:01)をApacheのログファイルの日時(01/Jan/2012:01:04:55)に整形する]
export LOGyyyy=`date +%Y`
grep -h oom-kill /var/log/kern.log|awk 'begin{FS=" "}{printf ("%02d/%s/%s:%s\n",$2,$1,ENVIRON["LOGyyyy"],$3)}end{}'|sort
#結果フォーマット(Apacheのログファイル形式)
#01/Jan/2012:01:05:01
#Apacheログの収集※僕の場合は定時刻に収集しているのでコメントアウト
#zcat /var/log/apache2/access.log.*.gz > /var/log/apache2/access_all.log
#cat /var/log/apache2/access.log >> /var/log/apache2/access_all.log
echo "------------------------------------------------------------------------------------------"
echo "入力値をaccess_all.logから検出します。日時を入力してください(ex) 01/Jan/2012:01:0[234])"
echo "------------------------------------------------------------------------------------------"
echo "※ここで入力した文字列をegrepするだけなので日時じゃなくても大丈夫!"
echo " "
echo "ex IPアドレスで検索する場合) xxx.xxx.xx.xxx"
echo "ex 正規表現を使用する1) xxx.xxx.xxx.xxx.+themes/ModernStyle"
echo " 説明:IPアドレス「xxx.xxx.xxx.xxx」AND「themes/ModernStyle」を含む行を抽出"
echo " "
echo "ex 正規表現を使用する2) xxx.xxx.xxx.xxx.+Dec.+themes/ModernStyle"
echo " 説明:IPアドレス「xxx.xxx.xxx.xxx」AND「Dec」AND「themes/ModernStyle」を含む行を抽出"
echo "------------------------------------------------------------------------------------------"
echo "<<<"
#標準入力からの値を取得
read red
if [ "$red" != "" ]
then
echo "$redで検索します"
egrep "$red" /var/log/apache2/access_all.log
echo '-----------------------------------------------------------'
echo `egrep $red /var/log/apache2/access_all.log|wc -l`
echo '-----------------------------------------------------------'
else
echo "入力がありません。処理を終了します。"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.