#!/bin/bash
#echo 0119348861
OLDDIR=`pwd`

UBUNTU=`lsb_release -a 2>/dev/null | grep -qi "Ubuntu" && echo "1"` 
GENERICREPORT=generic_info  

cd /opt/euro-beta
/bin/mkdir /tmp/report_dir > /dev/null 2>&1
/bin/rm -Rf /tmp/report_dir/* > /dev/null 2>&1


/bin/cp -a /tmp/user_message /tmp/modem_report.txt /tmp/report_dir > /dev/null 2>&1                                                               
tar cpzf /tmp/report_dir/e3g_xmlfiles.tgz *.xml > /dev/null 2>&1
/bin/cp -a /opt/euro-beta/euro3g.conf /opt/euro-beta/eurodb.ini /tmp/report_dir > /dev/null 2>&1                                                               

RAW_CLIENTS=0

if [ `ps auxw | grep -v grep | grep setup | wc -l` -eq 0 ]
then
  RAW_CLIENTS=1
fi

while [ $# -gt 1 ]; do
  if [ "$1" = "--encrypt" ]; then
    ENCRYPT="$2"
    shift
  elif [ "$1" = "--raw_clients" ]; then
    RAW_CLIENTS=1
  elif [ "$1" ]; then
    /bin/cp -a $1 /tmp/report_dir
  fi
  shift    
done

ANSW=`./systools/get_eurodb_config_val ModemReportDB`
if [ $ANSW == 1 ] ; then
  OLD_CL=`./systools/get_eurodb_config_val "ReportWithClientDB"`
  if [ $RAW_CLIENTS -eq 1 ]
  then
    ./systools/set_eurodb_config_val "ReportWithClientDB" int 1
  fi
  echo Salvataggio del Database in corso .......
  ./systools/backup_eurodb
  ./systools/set_eurodb_config_val "ReportWithClientDB" int $OLD_CL
  cp -ar data_export/invoices /tmp/report_dir
fi
{
ANSW=`./systools/get_eurodb_config_val ModemReportEuroLog`
if [ $ANSW == 1 ] ; then
  echo Salvataggio dei Log files del Euro3G in corso .......
  cp -a /opt/euro-beta/log/*.log /opt/euro-beta/log/*.log.*.gz /tmp/report_dir
  cp -a /tmp/*.log /tmp/*.log.*.gz /tmp/report_dir
  cp -a /var/log/mysql.log* /tmp/report_dir
fi
ANSW=`./systools/get_eurodb_config_val ModemReportSystemLog`
if [ $ANSW == 1 ] ; then
  echo Salvataggio dei Log files di Linux in corso .......
  cp -a /var/log/syslog /var/log/syslog.* /tmp/report_dir
  cp -a /var/log/messages /var/log/messages.* /tmp/report_dir
  cp -a /var/log/dmesg /tmp/report_dir
fi
} 2>/dev/null

echo Creazione del report generico in corso .......
(
echo "Free Disk space status ...." 
df 
echo " "
echo "Harddisk identification ...."
HD=`mount | awk  '/on \/ / { print $1 }' | sed -r 's/p*[0-9]$//'`
hdparm -i $HD
echo " " 
echo "Partition table ...."
fdisk -l $HD
echo " "
echo "SMART"
HD=`mount | awk  '/on \/ / { print $1 }' | sed -r 's/p*[0-9]$//' | sed -r 's/n*[0-9]$//'`
smartctl -a $HD
echo " "
echo "Login / restart Activity ...." 
last 
echo " "
echo "Mounted filesystems ...." 
mount 
echo " "
echo "Loaded system modules ...." 
lsmod 
echo " "
echo "Network configuration ...."
echo "---ifconfig---"
ifconfig
echo " "
echo "---routes---"
route -n
echo " "
echo "---hosts---"
cat /etc/hosts 
echo " "
echo "---network---" 
cat /etc/sysconfig/network
echo " "
echo "---network-ifcfg---"
cat /etc/sysconfig/network-scripts/ifcfg-*
echo " "
if [ "$UBUNTU" ]
then
  echo "--- PCI Bus ---"
  lspci
  echo " "
  echo "--- USB Bus ---"
  lsusb
  echo " "
  echo "--- system log ---"
  tail -120 /val/log/syslog
  echo " "
  echo "--- kernel log ---"
  tail -120 /val/log/kern.log
  echo " "
fi
echo "Currently running tasks ...." 
ps auxw 
echo " "
echo "System info ...."
uname -a
uptime
cat /proc/cpuinfo 
cat /proc/meminfo
echo " "
echo "Euro3G - installed Updates ...."
if [ "$UBUNTU" ]; then
  /opt/euro-beta/systools/version history
else
  rpm -q -g 'Application/Euro3G' 
fi
echo " "
echo "Euro3G - DB Updates ...."
ls -la /opt/euro-beta/db_update
echo " "
echo "Euro3G - DB Autobackups ...."
ls -la /opt/euro-beta/db_backup
echo " "
echo "Euro3G - Current Directory Listing ...."
ls -la /opt/euro-beta 
echo " " 
) > /tmp/report_dir/$GENERICREPORT

echo Compattazione del archivio  .......

/bin/rm -f /tmp/report.tgz  > /dev/null 2>&1
if [ "$ENCRYPT" ]; then
  /opt/euro-beta/systools/encrypt_zip "$ENCRYPT" /tmp/report.zip /tmp/report_dir/*
else
  tar czpvf /tmp/report.tgz /tmp/report_dir/* > /dev/null 2>&1
fi
#/bin/rm -Rf /tmp/report_dir/* > /dev/null 2>&1

echo Archivio con il report creato e pronto per spedire .......

cd $OLDDIR

exit 0
