laundrysorcery_stats (976B)
1 #!/bin/bash 2 3 cd /dev/shm 4 5 6 sed '1d;$!b;/ /!d' /var/log/laundrysorcery.log > lslog 7 8 while read -a l 9 do 10 [[ $(( l[1] - l[0] )) -gt 600 ]] && echo $(date --date="@${l[0]}" +%H) " " $(( l[1] - l[0] )) 11 done < lslog > lshours 12 13 while read -a l 14 do 15 [[ $(( l[1] - l[0] )) -gt 600 ]] && echo $(date --date="@${l[0]}" +%u) " " $(( l[1] - l[0] )) 16 done < lslog > lsweekdays 17 18 awk 'BEGIN{for(i=0; i<24; i++)times[i]=0}{times[$1]++}END{for(idx=0;idx<24;idx++){print(idx,times[idx])}}' lshours > lshourfreq 19 awk 'BEGIN{for(i=1; i<=7; i++)times[i]=0}{times[$1]++}END{for(idx=1;idx<=7;idx++){print(idx,times[idx])}}' lsweekdays > lsweekdayfreq 20 gnuplot - <<-EOF 21 set terminal svg 22 set xrange [0:23] 23 set boxwidth 0.5 24 set style fill solid 25 set grid 26 set xlabel 'Hour of day' 27 set ylabel 'Frequency' 28 set output 'lshourfreq.svg' 29 plot 'lshourfreq' with boxes t '' 30 set xlabel 'Day of week (1=Monday)' 31 set xrange [0:8] 32 set yrange [0:*] 33 set output 'lsweekdayfreq.svg' 34 plot 'lsweekdayfreq' with boxes t '' 35 EOF 36