#!/bin/bash # # Matthew Page # 11/20/2014 # CSCS 1730 # # timeonline - a script to caclulate number of logins # and time online. # #variables for number of logins per month auglogins=`last | grep $USER | grep Aug | wc -l` seplogins=`last | grep $USER | grep Sep | wc -l` octlogins=`last | grep $USER | grep Oct | wc -l` novlogins=`last | grep $USER | grep Nov | wc -l` declogins=`last | grep $USER | grep Dec | wc -l` totallogins=$(echo "($auglogins + $seplogins + $octlogins + $novlogins + $declogins)" | bc -l) days=`last | grep $USER | grep '+' | cut -d '(' -f2 | cut -d '+' -f1` totaldays=`echo $days | xargs | sed 's/\ /+/g' | bc -l` #echo $totaldays hoursfrompluslines=`last | grep $USER | cut -d '(' -f2 | grep '+' | cut -d '+' -f2 | cut -d ':' -f1 | xargs | sed 's/\ /+/g' | bc -l` minutesfrompluslines=`last | grep $USER | cut -d '(' -f2 | grep '+' | cut -d '+' -f2 | cut -d ':' -f2 | cut -d ')' -f1 | xargs | sed 's/\ /+/g' | bc -l` #echo $hoursfrompluslines #echo $minutesfrompluslines hoursfromNONpluslines=`last | grep $USER | grep -v '+' | grep -v "still logged in" | cut -d '(' -f2 | cut -d ':' -f1 | xargs | sed 's/\ /+/g' | bc -l` minutesfromNONpluslines=`last | grep $USER | grep -v '+' | grep -v "still logged in" | cut -d '(' -f2 | cut -d ':' -f2 | cut -d ')' -f1 | xargs | sed 's/\ /+/g' | bc -l` #echo $hoursfromNONpluslines #echo $minutesfromNONpluslines unrefinedhours=$(echo "($hoursfrompluslines + $hoursfromNONpluslines)" | bc -l) unrefinedminutes=$(echo "($minutesfrompluslines + $minutesfromNONpluslines)" | bc -l) #echo $unrefinedhours #echo $unrefinedminutes totalminutes=0 while [ $unrefinedminutes -ge 60 ];do unrefinedminutes=$(echo "($unrefinedminutes-60)" | bc -l) unrefinedhours=$(echo "($unrefinedhours+1)" | bc -l) totalminutes=$(echo $unrefinedminutes) done #echo $totalminutes #echo $unrefinedhours totalhours=0 while [ $unrefinedhours -ge 24 ];do unrefinedhours=$(echo "($unrefinedhours-24)" | bc -l) totaldays=$(echo "($totaldays+1)" | bc -l) totalhours=$(echo $unrefinedhours) done #echo $totalminutes #echo $totalhours #echo $totaldays augtemp=$(echo $auglogins) augstars=$(echo "") while [ $augtemp -ge 10 ];do augtemp=$(echo "($augtemp-10)" | bc -l) augstars=$(echo $augstars+"*") done septemp=$(echo $seplogins) sepstars=$(echo "") while [ $septemp -ge 10 ];do septemp=$(echo "($septemp-10)" | bc -l) sepstars=$(echo $sepstars+"*") done octtemp=$(echo $octlogins) octstars=$(echo "") while [ $octtemp -ge 10 ];do octtemp=$(echo "($octtemp-10)" | bc -l) octstars=$(echo $octstars+"*") done novtemp=$(echo $novlogins) novstars=$(echo "") while [ $novtemp -ge 10 ];do novtemp=$(echo "($novtemp-10)" | bc -l) novstars=$(echo $novstars+"*") done dectemp=$(echo $declogins) decstars=$(echo "") while [ $dectemp -ge 10 ];do dectemp=$(echo "($dectemp-10)" | bc -l) decstars=$(echo $decstars+"*") done totaltemp=$(echo $totallogins) totalstars=$(echo "") while [ $totaltemp -ge 10 ];do totaltemp=$(echo "($totaltemp-10)" | bc -l) totalstars=$(echo $totalstars+"*") done echo "_____________________________" echo " USER : $USER " echo "_____________________________" echo " Total Login Time: " echo "_____________________________" echo " Days: | $totaldays" echo " Hours: | $totalhours" echo " Minutes | $totalminutes" echo "_____________________________" echo " Total Logins Per Month: " echo "_____________________________" echo " Aug | `echo $augstars | sed 's/+//g'` $auglogins" echo " Sep | `echo $sepstars | sed 's/+//g'` $seplogins" echo " Oct | `echo $octstars | sed 's/+//g'` $octlogins" echo " Nov | `echo $novstars | sed 's/+//g'` $novlogins" echo " Dec | `echo $decstars | sed 's/+//g'` $declogins" echo "_____________________________" echo " TOTAL : `echo $totalstars | sed 's/+//g'` $totallogins"