#!/bin/bash datestring(){ #prints month and date date | egrep -o '[[:upper:]][[:lower:]]+[[:blank:]]+[[:digit:]]+' } monthstring(){ #prints month date | egrep -o '[[:upper:]][[:lower:]]+[[:blank:]]+[[:digit:]]+' | egrep -o '[[:upper:]][[:lower:]]+' } case "$1" in -dt) #searches logs for total logins on a given date from a given account. last | grep "`datestring`" | grep term | grep -v pts | grep -c $2 ;; -d) #prints login detail report last | grep "`datestring`" | grep term | grep -v pts | grep $2 ;; -m) #prints monthly login detail report last | grep "`monthstring`" | grep term | grep -v pts | grep $2 ;; -mt) #prints monthly login total report last | grep "`monthstring`" | grep term | grep -v pts | grep -c $2 ;; -da) #logins on a given day from account total #usage examples: billing -da username Mar 28 # billing -da username Mar last | egrep "$3[[:blank:]]+$4" | grep term | grep -v pts | grep -c $2 ;; -db) #logins on a given day or month from account detail #usage example: billing -db username Mar 28 # billing -db username Mar last | egrep "$3[[:blank:]]+$4" | grep term | grep -v pts | grep $2 ;; -dc) #logins on a given day or month detail #usage example: billing -dc Mar 28 # billing -dc Mar last | egrep "$2[[:blank:]]+$3" | grep term | grep -v pts ;; -dd) #logins on a given day or month total #usage example: billing -dd Mar 28 # billing -dd Mar last | egrep "$2[[:blank:]]+$3" | grep term | grep -cv pts ;; *) #usage text echo "read the source, luke." esac #add to cronjobs and output to mail/database