|
2#
楼主 |
发表于 2018-2-28 13:28:03
|
只看该作者
- echo "loop,uptime,battery_capacity,cpu_temperature,battery_voltage,battery_status,battery_health,cpufreq,Date_Time" >/data/btm.csv
- loop=0
- #判定高通和MTK兼容获取电池温度不同
- if [ -f /sys/class/power_supply/battery/temp ];then
- temp="/sys/class/power_supply/battery/temp"
- elif [ -f /sys/class/power_supply/battery/batt_temp ];then
- temp="/sys/class/power_supply/battery/batt_temp"
- fi
- while true;do
- tmp=`cat /proc/uptime /sys/class/power_supply/battery/capacity $temp`
- #判定高通和MTK兼容获取电池温度不同
- if [ -f /sys/class/power_supply/battery/voltage_now ];then
- voltage=$((`cat /sys/class/power_supply/battery/voltage_now`/1000))
- elif [ -f /sys/class/power_supply/battery/batt_vol ];then
- voltage=`cat /sys/class/power_supply/battery/batt_vol`
- fi
- tmp2=`cat /sys/class/power_supply/battery/status /sys/class/power_supply/battery/health`
- part1=`echo $tmp $voltage $tmp2|busybox awk '{a=sprintf("%.0f",$1);b=$3;c=$4/10;d=sprintf("%.3f",$5/1000);e=$6;f=$7}END{printf a","b","c","d","e","f}'`
- part2=`cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq|busybox awk '{if(NR>1)printf "|";printf $1/1000}'`
- data_t=`date +%Y/%m/%d" "%H:%M:%S`
- echo $loop","$part1","$part2","$data_t>>/data/btm.csv
- if [ -f /data/local/tmp/stop ];then
- break
- elif [ `busybox df /data|busybox awk '{r=substr($(NF-1),1,length($(NF-1))-1)}END{print r+0}'` -ge 90 ];then
- echo "The free space of data less 10%,stop" >/data/local/tmp/stop
- break
- fi
- sleep $1
- loop=$((loop+1))
- done
复制代码 电量监控图
[color=rgb(0, 105, 214) !important]
[color=rgb(0, 105, 214) !important]
[color=rgb(0, 105, 214) !important]
3、log筛查归类为CSV- fatal(){
- echo check_Fatal: $1
- grep -E "AndroidRuntime|Force finishing activity|crashApplication" $1|awk -F ":" -v file="$1" -v csv="$2/FATAL_EXCEPTION.csv" -v t1="\"" 'BEGIN{p=0}{if(p==1||p==2){if($4!=" Process"){p=3;c=substr($4,2,length($4)-1)","t1 substr($5,2,length($5)-1) t1}};if($4==" Process"){p=2;b=substr($5,2,length($5)-6)};if($4==" FATAL EXCEPTION"||$4==" *** FATAL EXCEPTION IN SYSTEM PROCESS"){p=1;if(a!="")print file","b","a","c","t1 d t1","t1 r t1 >>csv;a=substr($5,2,length($5)-1);b="SYSTEM PROCESS";r=$0;d=""};if(substr($4,4,15)=="Force finishing")b=substr($4,29,length($4)-28);if($4==" Caused by"){if(d!="")d=d"\n"substr($5,2,length($5)-1);else d=substr($5,2,length($5)-1)};if(p>1){r=r"\n"$0}}END{if(a!="")print file","b","a","c","t1 d t1","t1 r t1 >>csv}'
- }
- anr(){
- echo check_ANR: $1
- grep -A 9 "ANR in" $1|awk -F ":" -v file="$1" -v csv="$2/ANR.csv" -v t1="\"" 'BEGIN{p=0}{if(substr($4,2,3)=="ANR"){p=1;if(a!="")print file","a","b","t1 c t1 >>csv;a=t1 substr($4,9,length($4)-8) t1;c=$0};if($4==" PID")p=2;if($4==" Reason")b=t1 $5 t1;if(p>1)c=c"\n"$0}END{if(a!="")print file","a","b","t1 c t1 >>csv}'
- }
- tombstone(){
- echo check_tombstone: $1
- grep "DEBUG" $1|awk -F ":" -v file="$1" -v csv="$2/tombstone.csv" -v t1="\"" 'BEGIN{p=0}{if($4==" Build fingerprint"){p=1;if(a!="")print file","a","t1 c t1 >>csv;c=$0};if($4==" Revision")p=2;if($4==" pid")a=substr($NF,1,length($NF)-2);if(p>1)c=c"\n"$0}END{if(a!="")print file","a","t1 c t1 >>csv}'
- sed -i 's/log,.*>>> /log,/g;s/ <<*,/,/g' $2/tombstone.csv
- }
- echo File,Process,Thread,Exception,Exception info,Caused by,Log >$1/FATAL_EXCEPTION.csv
- echo File,ANR in,Reason,Log >$1/ANR.csv
- echo File,tombstone,Log >$1/tombstone.csv
- find $1 -name *.log|xargs grep -l -E ": ANR in|Build fingerprint|FATAL EXCEPTION"|while read log ;do
- if [ `grep -c "FATAL EXCEPTION" $log` -ne 0 ];then
- fatal $log $1
- fi
- if [ `grep -c ": ANR in" $log` -ne 0 ];then
- anr $log $1
- fi
- if [ `grep -c "Build fingerprint" $log` -ne 0 ];then
- tombstone $log $1
- fi
- done
- if [ `awk 'END{print NR}' $1/FATAL_EXCEPTION.csv` -eq 1 ];then
- rm $1/FATAL_EXCEPTION.csv
- fi
- if [ `awk 'END{print NR}' $1/ANR.csv` -eq 1 ];then
- rm $1/ANR.csv
- fi
- if [ `awk 'END{print NR}' $1/tombstone.csv` -eq 1 ];then
- rm $1/tombstone.csv
- fi
复制代码
|
|