#!/bin/bash # Auteur : Belgotux # Site : www.monlinux.net # Adresse : belgotux@monlinux.net # Version : 1.0 # Date : 24/09/2014 # Description : extract data from free-sa analyses, all package in a zip file and send by mail # Required : free-sa-genere-report.sh servers_list="server1 server2 server3 server4" temp_dir="/tmp" log_root_directory="/var/www" #example topsite : /var/www/server1/01_08_14-31_08_14-1/topsites.html date_range=$(date +01_%m_%y-%d_%m_%y-1 -d -1day) #example date +01_%m_%y-%d_%m_%y-1 -d -1day : execute the cronjob the 1st month day month_date=$(date +"%m-%Y" -d -1day) first_month_date=$(date +01_%m_%y -d -1day) MAILTO="root" #Cronjob : # 0 4 1 * * root /usr/local/sbin/send_csv_mail.sh >/dev/null if [ ! -d $temp_dir/$(basename $0 .sh) ] ; then mkdir $temp_dir/$(basename $0 .sh) && echo "Create temp directory $temp_dir/$(basename $0 .sh)" || echo "Error creating temp directory $temp_dir/$(basename $0 .sh)" fi #generate the csv files for server in $servers_list ; do echo $server #sometime no trafic last day of month if [ -e "$log_root_directory/$server/$date_range/topsites.html" ] ; then topsites_file="$log_root_directory/$server/$date_range/topsites.html" else topsites_file="$(ls -1dR /var/www/bratislava/$first_month_date* | tail -n 1)/topsites.html" fi echo "No,URL,Requetes,Octets,Utilisateurs" > $temp_dir/$(basename $0 .sh)/$server.csv && cat $topsites_file | tail -n +22 | head -n -5 | sed -e 's/\([^<]*\)\([^"]*\)<\/a>\([^<]*\)\([^<]*\)\([^<]*\).*/"\1","\2",\4,"\5","\6"/g' >> $temp_dir/$(basename $0 .sh)/$server.csv done # zip them to send by mutt mail if [ ! -x /usr/bin/zip ] ; then echo "Error zip program not installed!" 1>&2 exit 1 fi /usr/bin/zip -r $temp_dir/topsites_$month_date.zip $temp_dir/$(basename $0 .sh)/ #remove temp files rm -f $temp_dir/$(basename $0 .sh)/* # send mail echo "In attachment the reports for month $month_date" | /usr/bin/mutt -s "CSV report free-sa log analyses $month_date" -a $temp_dir/topsites_$month_date.zip -- $MAILTO exit $?