awk分析处理jenkins的log文件并生成HTML文件

 

 

 

#!/bin/bash
a=$1




##### ================pmd

log_xml="/var/www/html/yii/build/logs/pmd.xml"
export_html="/var/www/html/yii/build/logs/shell_email.html"

#多少报错文件
file_num=$(awk '{if($1~/<file/) print $2}' $log_xml | awk -F \" '{print $2}' |wc -l)

#多少message
#mess_num=$(awk -F \" '{if($1~/<violation/) print $2,$6,$8}' /var/www/html/yii/build/logs/pmd.xml |wc -l)
mess_num=$(awk '/<violation/{line++}END{print line}' $log_xml )

#详细列表
rs="<table border=\"0\" cellpadding=\"0\" width=\"100%\"><tr><td height=\"22\" class=\"bg1\" colspan=\"4\"><p style=\"color:#FFFFFF\"><strong>PMD Result (files:$file_num  messages:$mess_num)</strong></p></td></tr><tr><td height=\"22\" bgcolor=\"#4040FF\">No</td><td height=\"22\" bgcolor=\"#4040FF\">Code num</td><td height=\"22\" bgcolor=\"#4040FF\">Message</td><td height=\"22\" bgcolor=\"#4040FF\">File</td></tr>"


#rs2=$(awk -F \" '/<file/{a=$2}/\<violation/{print "<tr><td>",i++,"</td><td>","<tr><td>",$2,"</td><td>",$8,"</td><td>",a,"</td></tr>"}' $log_xml |grep -v "<tr><td></td><td>")
rs2=$(awk -F \" '/<file/{a=$2}/<violation/{print "<tr><td>",++i,"</td><td>",$2,"</td><td>",$8,"</td><td>",a,"</td></tr>"}' $log_xml )

#IFS_old=$IFS
#IFS=$'\n'
#for loop in $aa
#do
#rs2="$rs2 <tr><td>$loop</td></tr>"
#done


echo "$rs $rs2</table><br><br>" > $export_html
#echo "$rs $rs2</table>" > /var/www/html/shell_email.html
#IFS=$IFS_old




##### ================checkstyle

log_xml="/var/www/html/yii/build/logs/checkstyle.xml"

#多少报错文件
file_num=$(awk '{if($1~/<file/) print $2}' $log_xml | awk -F \" '{print $2}' |wc -l)


#多少message
#mess_num=$(awk -F \" '{if($1~/<error/) print $6,$2,$8}' /var/www/html/yii/build/logs/checkstyle.xml |wc -l)
mess_num=$(awk '/<error/{line++}END{print line}' $log_xml)


#多少error
mess_num_error=$(awk '/severity=\"error\"/{line++}END{print line}' $log_xml)

#多少warnings
mess_num_warnings=$(awk '/severity=\"warning\"/{line++}END{print line}' $log_xml)

#详细列表
rs="<table border=\"0\" cellpadding=\"0\" width=\"100%\"><tr><td height=\"22\" class=\"bg1\" colspan=\"5\"><p style=\"color:#FFFFFF\"><strong>Checkstyle Result (files:$file_num  messages:$mess_num error:$mess_num_error warnings:$mess_num_warnings)</strong></p></td></tr><tr><td height=\"22\" bgcolor=\"#4040FF\">No</td><td height=\"22\" bgcolor=\"#4040FF\">Type</td><td height=\"22\" bgcolor=\"#4040FF\">line</td><td height=\"22\" bgcolor=\"#4040FF\">Message</td><td height=\"22\" bgcolor=\"#4040FF\">File</td></tr>"


#rs2=$(awk -F \" '/<file/{a=$2} /<error/{print "<tr><td>",++i,"</td><td>",$6,"</td><td>",$2,"</td><td>",$8,"</td><td>",a,"</td></tr>"}' $log_xml | grep -v "<tr><td></td><td></td><td>")
rs2=$(awk -F \" '/<file/{a=$2}/<error/{print "<tr><td>",++i,"</td><td>",$6,"</td><td>",$2,"</td><td>",$8,"</td><td>",a,"</td></tr>"}' $log_xml )

#IFS_old=$IFS
#IFS=$'\n'
#for loop in $aa
#do
#rs2="$rs2 <tr><td>$loop</td></tr>"
#done


echo "$rs $rs2</table><br><br>" >> $export_html
#echo "$rs $rs2</table>" > /var/www/html/shell_email.html
#IFS=$IFS_old




##### ================jslint

log_xml="/var/www/html/jslint/out/data/log.xml"

#多少报错文件
file_num=$(awk -F \" '{if($1~/<Violation/) print $8}' $log_xml | grep -v "js_all.js" | uniq  |wc -l)

#多少message
#mess_num=$(awk -F \" '{if($1~/<Violation/) print $2,$6,$8,$9}' /var/www/html/jslint/out/data/log.xml | grep -v "js_all.js" |wc -l)
mess_num=$(awk '/<Violation/{line++}END{print line}' $log_xml | grep -v "js_all.js")

#详细列表
rs="<table border=\"0\" cellpadding=\"0\" width=\"100%\"><tr><td height=\"22\" class=\"bg1\" colspan=\"6\"><p style=\"color:#FFFFFF\"><strong>JSlint Result (files:$file_num  messages:$mess_num)</strong></p></td></tr><tr><td height=\"22\" bgcolor=\"#4040FF\">No</td><td height=\"22\" bgcolor=\"#4040FF\">type</td><td height=\"22\" bgcolor=\"#4040FF\">line</td><td height=\"22\" bgcolor=\"#4040FF\">reason</td><td height=\"22\" bgcolor=\"#4040FF\">File</td><td height=\"22\" bgcolor=\"#4040FF\">code</td></tr>"


#rs2=$(awk -F \" '{if($1~/<Violation/) print "<tr><td>"$4,"</td><td>",$6,"</td><td>",$9,"</td><td>",$8,"</td></tr>"}' /var/www/html/jslint/out/data/log.xml |grep -v "<tr><td></td><td>" | grep -v "js_all.js")

rs2=$(awk -F'"' '/Evidence/{gsub(/\/\/.*/,"",$2);gsub(/_/,"/",$8);sub(/>/,"",$9);sub(/<\/Violation>/,"",$9);sub(/\/var\/www\/html\//,"",$8);print "<tr><td>",++i,"</td><td>",$4,"</td><td>",$6,"</td><td>",$9,"</td><td>",$8,"</td><td>",$2"</td></tr>"}' $log_xml )


#IFS_old=$IFS
#IFS=$'\n'
#for loop in $aa
#do
#rs2="$rs2 <tr><td>$loop</td></tr>"
#done


echo "$rs $rs2</table>" >> $export_html

##### ================gjslint

log_xml="/tmp/gjslint.log"
/bin/touch $log_xml

if [[ $a = gjslint ]] ;then
/usr/bin/gjslint -r /var/www/html/yii/blog/www/js/ > $log_xml
fi

#多少报错文件
file_num=$(awk '/-----/{line++}END{print line}' $log_xml)

#多少message
mess_num=$(awk '/Line/{line++}END{print line}' $log_xml )


#详细列表
rs="<table border=\"0\" cellpadding=\"0\" width=\"100%\"><tr><td height=\"22\" class=\"bg1\" colspan=\"3\"><p style=\"color:#FFFFFF\"><strong>gjslint Result (files:$file_num  messages:$mess_num)</strong></p></td></tr><tr><td height=\"22\" bgcolor=\"#4040FF\">No</td><td height=\"22\" bgcolor=\"#4040FF\">File</td><td height=\"22\" bgcolor=\"#4040FF\">Message</td></tr>"

rs2=$( awk -F \: '/-----/{gsub(/-----/,"",$2);gsub(/\/var\/www\/html\//,"",$2);a=$2} /Line/{print "<tr><td>",++i,"</td><td>",a,"</td><td>",$0,"</td></tr>"}' $log_xml )

echo "$rs $rs2</table><br><br>" >> $export_html

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值