1#!/usr/bin/env bash 2# 3# This script will generate list of outdated clients 4# Create folders /usr/local/share/burp-custom and /var/log/burp-custom 5# chmod +x the sh file 6# Locate this file in /usr/local/share/burp-custom/burp-custom-reports.sh 7# link to if desired ln -s /usr/local/share/burp-custom/burp-custom-reports.sh /usr/local/bin/bur-custom-reports.sh 8 9outdated=`date -d "1 days ago" +%F` 10sendto=emailto@server.com 11sendfrom=emailsender@from.com 12timestamp=`date +%F-%H-%M` 13logfolder=/var/log/burp-custom/ 14 15 16#Variable to use on outdated hosts function 17repoutdfile=$logfolder/burp-outdated.$outdated.$timestamp.log 18#Variable to use for not outdated hosts function 19repokfile=$logfolder/burp-ok.$outdated.$timestamp.log 20 21logsclean(){ 22 find $logfolder -name "*.log" -type f -mtime +30 -delete 23} 24 25make_dirs() { 26 if [[ ! -d $1 ]] ; then mkdir -p $1 ; fi 27} 28 29make_dirs "$logfolder" 30 31report_outdated(){ 32 date_backup=`echo $1 | sed -e 's/\s\+/ /g' | cut -d' ' -f6` 33 echo "line is $1" 34 echo "date_backup is $date_backup" 35 if [[ "$date_backup" < "$outdated" ]] ; then 36 echo "$1" >> $repoutdfile 37 else 38 echo "$1" >> $repokfile 39 fi 40} 41 42 43reports(){ 44 report_outdated "$1" 45} 46 47send_email_report(){ 48 cat $1 | mail -s "$2" $sendto -aFrom:$sendfrom 49} 50 51 52# example output line: 53# hosname idle last backup: 0000023 2015-04-10 16:04:01 54# read by line report from burp 55burp -a S | grep -i "last backup" | while read -r line; do reports "$line" ; done 56 57echo "finishing and sending email" 58#Send email using function, parse file and then subject inside "subject line" 59send_email_report $repoutdfile "Outdated hosts older than $outdated on $HOSTNAME" 60send_email_report $repokfile "Burp Hosts ok newer than $outdated on $HOSTNAME" 61 62#Clean old logs 63logsclean 64