Creazione automatica di un file di log per inviare quesiti al forum: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Riga 39: Riga 39:
*********************************************************************************
*********************************************************************************
*  www.debianizzati.org                                                        *
*  www.debianizzati.org                                                        *
*                                                                              *  
*                                                                              *
*  Script che crea un log utile alla risoluzione dei problemi più comuni        *
*  Script che crea un log utile alla risoluzione dei problemi più comuni        *
*  Versione 1.0.7                                                              *  
*  Versione 1.0.7                                                              *
*                                                                              *  
*                                                                              *
*********************************************************************************
*********************************************************************************
TESTO
TESTO
Riga 49: Riga 49:
# Funzione che stampa alcune avvertenze sullo script
# Funzione che stampa alcune avvertenze sullo script
function _avvertenze {
function _avvertenze {
local risp
  local risp
  cat <<TESTO
  cat <<TESTO
-- Lo script richiede i permessi di root per essere eseguito
-- Lo script richiede i permessi di root per essere eseguito
Riga 57: Riga 57:
-- Verrà creato un file in formato compresso da inviare al forum
-- Verrà creato un file in formato compresso da inviare al forum
TESTO
TESTO
echo -n "Continuare [S/n]? "
  echo -n "Continuare [S/n]? "
read risp
  read risp
case $risp in
  case $risp in
  ""|[Ss])
    ""|[Ss])
      ;;
    ;;
  *)
    *)
      echo -e "Uscita\n"
      echo -e "Uscita\n"
      exit 1
      exit 1
      ;;
    ;;
esac
  esac
}
}


# Funzione che esegue un check preliminare
# Funzione che esegue un check preliminare
function _check {
function _check {
if [[ $EUID -ne 0 ]]; then # Lo script viene lanciato da root?
  if [[ $EUID -ne 0 ]]; then # Lo script viene lanciato da root?
echo "Lo script deve essere lanciato da root"
    echo "Lo script deve essere lanciato da root"
exit 1
    exit 1
fi  
  fi
 
 
# Se esiste già un file di log con lo stesso nome oppure
  # Se esiste già un file di log con lo stesso nome oppure
# file compressi con lo stesso nome di quelli che verranno
  # file compressi con lo stesso nome di quelli che verranno
# creati, lo script chiede se cancellarli o meno  
  # creati, lo script chiede se cancellarli o meno
local risp
  local risp
if [ -f ./log.txt -o -f ./log.zip -o -f ./log.txt.bz2 -o -f ./log.tgz ]; then
  if [ -f ./log.txt -o -f ./log.zip -o -f ./log.txt.bz2 -o -f ./log.tgz ]; then
echo -n "Esiste già un file log.txt, log.zip, log.txt.bz2 o log.tgz nella directory corrente. Sovrascivere [S/n]? "
    echo -n "Esiste già un file log.txt, log.zip, log.txt.bz2 o log.tgz nella directory corrente. Sovrascivere [S/n]? "
read risp
    read risp
case $risp in
    case $risp in
  ""|[Ss])
      ""|[Ss])
      rm -f $log log.zip log.txt.bz2 log.tgz
        rm -f $log log.zip log.txt.bz2 log.tgz
      ;;
      ;;
  *)  
      *)
      exit 1
        exit 1
      ;;
      ;;
esac
    esac
fi
  fi
}
}


# --------------------------------------------------------------------------
# --------------------------------------------------------------------------
# Funzione per separare il log in parti per l'invio a paste.debian.net  
# Funzione per separare il log in parti per l'invio a paste.debian.net
# --------------------------------------------------------------------------
# --------------------------------------------------------------------------
function _split_and_send {
function _split_and_send {
  local paste_url='http://paste.debian.net'
   local chunk_prefix='pastebin'
   local chunk_prefix='pastebin'
   local chunk_num=1
   local chunk_num=1
 
  local paste_exit_status=0
   # dimensione massima del singolo file da inviare a http://paste.debian.net
 
   local chunk_size='80k'
   # dimensione massima del singolo file da inviare  
 
   local chunk_size='60k'
   # rinomina parti di log preesistenti (se ve ne sono)  
 
   # rinomina parti di log preesistenti (se ve ne sono)
   # scarta i messaggi di errore (se presenti)
   # scarta i messaggi di errore (se presenti)
   rename "s/$chunk_prefix/old-$chunk_prefix-$(date +%s)/g" $chunk_prefix.* > /dev/null 2>&1  
   rename "s/$chunk_prefix/old-$chunk_prefix-$(date +%s)/g" $chunk_prefix.* > /dev/null 2>&1
 
 
   # dividi il file di log in parti di $chunk_size bytes senza spezzare le linee
   # dividi il file di log in parti di $chunk_size bytes senza spezzare le linee
   # scarta i messaggi di errore (se presenti) per log di dimensione superiore a 10 parti
   # scarta i messaggi di errore (se presenti) per log di dimensione superiore a 10 parti
Riga 115: Riga 117:
   # comunica il numero di parti inviate
   # comunica il numero di parti inviate
   chunk_num=$( ls -1 $chunk_prefix.* | wc -l )
   chunk_num=$( ls -1 $chunk_prefix.* | wc -l )
   if [ $chunk_num = 1 ];  
   if [ $chunk_num = 1 ]; then
    then
       echo -e "\nIl log sarà inviato in un singolo file."
       echo -e "\nIl log sarà inviato in un singolo file."
     else
     else
Riga 122: Riga 123:
   fi
   fi
    
    
   # invia al massimo 4 parti a http://paste.debian.net
   # invia al massimo 4 parti
   echo -e "\nIl log è consultabile ai seguenti indirizzi:"
   echo -e "\nIl log è consultabile ai seguenti indirizzi:"
   for  chunkfile in $chunk_prefix.{0..3}; do
   for  chunkfile in $chunk_prefix.{0..3}; do
     if [ -f $chunkfile ]; then  
 
      pastelink="$(pastebinit -a "" -b http://paste.debian.net -i $chunkfile)"
    # verifica l'esistenza del file da inviare
      if [ $? = 0 ]; then
     if [ -f $chunkfile ]; then
echo "   $pastelink"
 
      else
# invia dati tramite pastebinit
return 1;
pastelink="$(pastebinit -a '' -b $paste_url -i $chunkfile)"
      fi
if [ $? = 0 ]; then
    # invio apparentemente riuscito (pastebinit exit status = 0)
   
    # controlla URL restituita da pastebinit
    case $pastelink in
# verifica in caso di url corretta
"$paste_url"/[0-9]*)
    echo ".. inviato $chunkfile all'indirizzo $pastelink"
    ;;
# verifica in caso di url non corretta
*)
    echo ".. $paste_url ha restituito una URL non valida ($pastelink) per $chunkfile!"
    paste_exit_status=1
    ;;
    esac
   
  else
    # Invio fallito (pastebinit exit status = 1)
    echo ".. non riuscito invio $chunkfile"
    paste_exit_status=1
fi
     fi
     fi
 
   done
   done
 
 
   # cancella i parti di log inviati
   # cancella i parti di log inviati
   # scarta i messaggi di errore (se presenti)
   # scarta i messaggi di errore (se presenti)
   rm $chunk_prefix.{0..9} > /dev/null 2>&1
   rm $chunk_prefix.{0..9} > /dev/null 2>&1
    
    
   return 0
   return $paste_exit_status
}
}


Riga 146: Riga 170:
# --------------------------------------------------------------------------
# --------------------------------------------------------------------------
function _upload {
function _upload {
local pastelink
  local pastelink
local risp
  local risp
# Pastebinit è installato?
  # Pastebinit è installato?
if [ ! -f /usr/bin/pastebinit ]; then
  if [ ! -f /usr/bin/pastebinit ]; then
  echo -e "\nNon è possibile inviare il log a paste.debian.net\nIl pacchetto 'pastebinit' non è installato."
    echo -e "\nNon è possibile inviare il log a paste.debian.net\nIl pacchetto 'pastebinit' non è installato."
  return 1
    return 1
fi
  fi
# Invia il file log.txt a paste.debian.net
  # Invia il file log.txt a paste.debian.net
echo -en "\nInviare il log a http://paste.debian.net [S/n]? "
  echo -en "\nInviare il log a http://paste.debian.net [S/n]? "
read risp
  read risp
case $risp in
  case $risp in
  ""|[Ss])
    ""|[Ss])
       _split_and_send && _ok "Il log è stato inviato" || _error "Errore nell'invio del log a http://paste.debian.net!"
       _split_and_send  
      ;;
      if [ $? == 0 ]; then
  *)
  echo -e "\nIl log è stato inviato"  
      echo "Il log non è stato inviato"
      else
      ;;
  echo -e "\nSi sono verificati errori nell'invio del log!"
esac
      fi
    ;;
    *)
      echo "Il log non è stato inviato"
    ;;
  esac
}
}


Riga 172: Riga 201:
# Funzione richiamata in caso di corretta creazione del file compresso
# Funzione richiamata in caso di corretta creazione del file compresso
function _compress_ok {
function _compress_ok {
echo "Il file compresso $1 è stato creato correttamente nella directory corrente."
  echo "Il file compresso $1 è stato creato correttamente nella directory corrente."
echo -e "Allegare questo file alla discussione sul forum.\n"
  echo -e "Allegare questo file alla discussione sul forum.\n"
# Imposta i permessi di lettura-scrittura sul file per tutti gli utenti
  # Imposta i permessi di lettura-scrittura sul file per tutti gli utenti
chmod 666 $1
  chmod 666 $1
}
}


# Funzione richiamata in caso di errore nella creazione del file compresso
# Funzione richiamata in caso di errore nella creazione del file compresso
function _compress_err {
function _compress_err {
echo -e "\nErrore nella creazione del file compresso $1."
  echo -e "\nErrore nella creazione del file compresso $1."
}
}


Riga 186: Riga 215:
# Prova a creare nell'ordine: un file .bz2, un file .zip o un file .tgz
# Prova a creare nell'ordine: un file .bz2, un file .zip o un file .tgz
function _compress {
function _compress {
local risp
  local risp
echo -en "\nCreare un file compresso [S/n]? "
  echo -en "\nCreare un file compresso [S/n]? "
read risp
  read risp
case $risp in
  case $risp in
  ""|[Ss])
    ""|[Ss])
      echo -e "\nSta per essere creato un file compresso..."
      echo -e "\nSta per essere creato un file compresso..."
      sleep 2
      sleep 2
      if [ -f /bin/bzip2 ]; then
      if [ -f /bin/bzip2 ]; then
         bzip2 -k9 $log && _compress_ok log.txt.bz2 || _compress_err log.txt.bz2
         bzip2 -k9 $log && _compress_ok log.txt.bz2 || _compress_err log.txt.bz2
      elif [ -f /usr/bin/zip ]; then
        elif [ -f /usr/bin/zip ]; then
         zip log.zip $log && _compress_ok log.zip || _compress_err log.zip
         zip log.zip $log && _compress_ok log.zip || _compress_err log.zip
      else
      else
      tar czf log.tgz $log && _compress_ok log.tgz || _compress_err log.tgz
        tar czf log.tgz $log && _compress_ok log.tgz || _compress_err log.tgz
      fi
      fi
      ;;
    ;;
  *)
    *)
      ;;
    ;;
esac
  esac
}
}


Riga 213: Riga 242:
# Funzione che stampa due righe vuote
# Funzione che stampa due righe vuote
function _spazi {
function _spazi {
echo >> $log
  echo >> $log
echo >> $log
  echo >> $log
}
}


# Funzione che stampa un pallino di colore verde in caso di comando con output
# Funzione che stampa un pallino di colore verde in caso di comando con output
function _ok {
function _ok {
/bin/echo -e "  $1" "\033[35G\033[01;32m•\033[0m"
  /bin/echo -e "  $1" "\033[35G\033[01;32m•\033[0m"
}
}


# Funzione che stampa una pallino rosso in caso di comando privo di output
# Funzione che stampa una pallino rosso in caso di comando privo di output
function _error {
function _error {
/bin/echo -e "  $1" "\033[35G\033[01;31m•\033[0m"
  /bin/echo -e "  $1" "\033[35G\033[01;31m•\033[0m"
}
}


Riga 231: Riga 260:
# parametro della funzione -> $1 )
# parametro della funzione -> $1 )
function nome_e_riga {
function nome_e_riga {
  cat <<FINE >> $log  
  cat <<FINE >> $log
******************************************
******************************************
$1
$1
Riga 240: Riga 269:
# Funzione che stampa un messaggio di attesa e aspetta 2 secondi
# Funzione che stampa un messaggio di attesa e aspetta 2 secondi
function _wait {
function _wait {
echo -e "\nCreazione del log in corso. Attendere pochi secondi...\n"
  echo -e "\nCreazione del log in corso. Attendere pochi secondi...\n"
sleep 2
  sleep 2
}
}


Riga 250: Riga 279:


# Questo array contiene tutte le funzioni utilizzate per il log
# Questo array contiene tutte le funzioni utilizzate per il log
# dei comandi.  
# dei comandi.
# Per aggiungere una nuova funzione, inserire qui il suo nome e  
# Per aggiungere una nuova funzione, inserire qui il suo nome e
# scriverne il codice in basso.
# scriverne il codice in basso.


comandi=(
comandi=(
_dmi_decode
  _dmi_decode
_unamea
  _unamea
_version
  _version
_dmesg
  _dmesg
_lsmod
  _lsmod
_lspci
  _lspci
_lsusb
  _lsusb
_fdisk
  _fdisk
_fstab
  _fstab
_mount
  _mount
_df
  _df
_xorg_log
  _xorg_log
_sources
  _sources
_apt_cache
  _apt_cache
_apt_get_check
  _apt_get_check
_interfaces
  _interfaces
_hosts
  _hosts
_ifconfig
  _ifconfig
_ping
  _ping
_ip
  _ip
_iwconfig
  _iwconfig
_iwlist
  _iwlist
_route
  _route
_resolvconf
  _resolvconf
_resolvconf2
  _resolvconf2
_firmware
  _firmware
_dhcp
  _dhcp
_dhclient
  _dhclient
_nm
  _nm
_wicd
  _wicd
_iptables
  _iptables
)
)


Riga 295: Riga 324:
# comando 'cat /sys/class/dmi/id/{sys_vendor,product_name,product_version,bios_version}'
# comando 'cat /sys/class/dmi/id/{sys_vendor,product_name,product_version,bios_version}'
function _dmi_decode {
function _dmi_decode {
local var="cat /sys/class/dmi/id/*"
  local var="cat /sys/class/dmi/id/*"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -f /sys/class/dmi/id/sys_vendor ]; then
  if [ -f /sys/class/dmi/id/sys_vendor ]; then
  echo 'Produttore:' $(cat /sys/class/dmi/id/sys_vendor)      &>> $log  
    echo 'Produttore:' $(cat /sys/class/dmi/id/sys_vendor)      &>> $log
  echo 'Prodotto:  ' $(cat /sys/class/dmi/id/product_name)    &>> $log
    echo 'Prodotto:  ' $(cat /sys/class/dmi/id/product_name)    &>> $log
  echo 'Versione:  ' $(cat /sys/class/dmi/id/product_version) &>> $log
    echo 'Versione:  ' $(cat /sys/class/dmi/id/product_version) &>> $log
  echo 'BIOS vers.:' $(cat /sys/class/dmi/id/bios_version)    &>> $log && _ok "$var" || _error "$var"
    echo 'BIOS vers.:' $(cat /sys/class/dmi/id/bios_version)    &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "File /sys/class/dmi/id/sys_vendor non trovato" >> $log && _error "$var"
    echo "File /sys/class/dmi/id/sys_vendor non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'uname -a'
# comando 'uname -a'
function _unamea {
function _unamea {
local var="uname -a"
  local var="uname -a"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /bin/uname ]; then
  if [ -x /bin/uname ]; then
  /bin/uname -a &>> $log && _ok "$var" || _error "$var"
    /bin/uname -a &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'cat /etc/debian/version'
# comando 'cat /etc/debian/version'
function _version {
function _version {
local var="/etc/debian_version"
  local var="/etc/debian_version"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -f /etc/debian_version ]; then
  if [ -f /etc/debian_version ]; then
  cat /etc/debian_version &>> $log && _ok "$var" || _error "$var"
    cat /etc/debian_version &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "Il file /etc/debian_version non trovato" >> $log && _error "$var"
    echo "Il file /etc/debian_version non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'dmesg'
# comando 'dmesg'
function _dmesg {
function _dmesg {
local var="dmesg"
  local var="dmesg"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /bin/dmesg ]; then
  if [ -x /bin/dmesg ]; then
  /bin/dmesg &>> $log && _ok "$var" || _error "$var"
    /bin/dmesg &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'lsmod'
# comando 'lsmod'
function _lsmod {
function _lsmod {
local var="lsmod"
  local var="lsmod"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /bin/lsmod ]; then
  if [ -x /bin/lsmod ]; then
  /bin/lsmod &>> $log && _ok "$var" || _error "$var"
    /bin/lsmod &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'lspci'
# comando 'lspci'
function _lspci {
function _lspci {
local var="lspci"
  local var="lspci"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /usr/bin/lspci ]; then
  if [ -x /usr/bin/lspci ]; then
  /usr/bin/lspci -knn &>> $log && _ok "$var" || _error "$var"
    /usr/bin/lspci -knn &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'lsusb'
# comando 'lsusb'
function _lsusb {
function _lsusb {
local var="lsusb"
  local var="lsusb"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /usr/bin/lsusb ]; then
  if [ -x /usr/bin/lsusb ]; then
  /usr/bin/lsusb &>> $log && _ok "$var" || _error "$var"
    /usr/bin/lsusb &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'fdisk'
# comando 'fdisk'
function _fdisk {
function _fdisk {
local var="fdisk -l"
  local var="fdisk -l"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /sbin/fdisk ]; then
  if [ -x /sbin/fdisk ]; then
  /sbin/fdisk -l &>> $log && _ok "$var" || _error "$var"
    /sbin/fdisk -l &>> $log && _ok "$var" || _error "$var"
else  
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# file /etc/fstab  
# file /etc/fstab
function _fstab {
function _fstab {
local var="/etc/fstab"
  local var="/etc/fstab"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -f /etc/fstab ]; then
  if [ -f /etc/fstab ]; then
  cat /etc/fstab &>> $log && _ok "$var" || _error "$var"
    cat /etc/fstab &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "Il file $var non trovato" >> $log && _error "$var"
    echo "Il file $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'mount'
# comando 'mount'
function _mount {
function _mount {
local var="mount"
  local var="mount"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /bin/mount ]; then
  if [ -x /bin/mount ]; then
  /bin/mount &>> $log && _ok "$var" || _error "$var"
    /bin/mount &>> $log && _ok "$var" || _error "$var"
else  
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'df'
# comando 'df'
function _df {
function _df {
local var="df -h"
  local var="df -h"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /bin/df ]; then
  if [ -x /bin/df ]; then
  /bin/df -h &>> $log && _ok "$var" || _error "$var"
    /bin/df -h &>> $log && _ok "$var" || _error "$var"
else  
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# log del server X
# log del server X
function _xorg_log {
function _xorg_log {
local var="/var/log/Xorg.0.log"
  local var="/var/log/Xorg.0.log"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -f /var/log/Xorg.0.log ]; then
  if [ -f /var/log/Xorg.0.log ]; then
  cat /var/log/Xorg.0.log &>> $log && _ok "$var" || _error "$var"
    cat /var/log/Xorg.0.log &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "File $var non trovato" >> $log && _error "$var"
    echo "File $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'cat /etc/apt/sources.list'
# comando 'cat /etc/apt/sources.list'
function _sources {
function _sources {
local var="/etc/apt/sources.list"
  local var="/etc/apt/sources.list"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -f /etc/apt/sources.list ]; then
  if [ -f /etc/apt/sources.list ]; then
  ls -l /etc/apt/sources.list &>> $log || _error "$var"
    ls -l /etc/apt/sources.list &>> $log || _error "$var"
  echo "" >> $log
    echo "" >> $log
  cat /etc/apt/sources.list &>> $log && _ok "$var" || _error "$var"
    cat /etc/apt/sources.list &>> $log && _ok "$var" || _error "$var"
else  
  else
  echo "File $var non trovato" >> $log && _error "$var"
    echo "File $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'apt_cache'
# comando 'apt_cache'
function _apt_cache {
function _apt_cache {
local var="apt-cache policy"
  local var="apt-cache policy"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /usr/bin/apt-cache ]; then
  if [ -x /usr/bin/apt-cache ]; then
  /usr/bin/apt-cache policy &>> $log && _ok "$var" || _error "$var"
    /usr/bin/apt-cache policy &>> $log && _ok "$var" || _error "$var"
  _spazi
    _spazi
  var="apt-cache stats"
    var="apt-cache stats"
  nome_e_riga "$var"
    nome_e_riga "$var"
  /usr/bin/apt-cache stats &>> $log && _ok "$var" || _error "$var"
    /usr/bin/apt-cache stats &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'apt_get_check'
# comando 'apt_get_check'
function _apt_get_check {
function _apt_get_check {
local var="apt-get check"
  local var="apt-get check"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /usr/bin/apt-get ]; then
  if [ -x /usr/bin/apt-get ]; then
  /usr/bin/apt-get check &>> $log && _ok "$var" || _error "$var"
    /usr/bin/apt-get check &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'cat /etc/network/interfaces'
# comando 'cat /etc/network/interfaces'
function _interfaces {
function _interfaces {
local var="/etc/newtork/interfaces"
  local var="/etc/newtork/interfaces"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -f /etc/network/interfaces ]; then
  if [ -f /etc/network/interfaces ]; then
  ls -l  /etc/network/interfaces &>> $log || _error "$var"
    ls -l  /etc/network/interfaces &>> $log || _error "$var"
  echo "" >> $log
    echo "" >> $log
  cat /etc/network/interfaces &>> $log && _ok "$var" || _error "$var"
    cat /etc/network/interfaces &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "File $var non trovato" >> $log && _error "$var"
    echo "File $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'cat /etc/hosts'
# comando 'cat /etc/hosts'
function _hosts {
function _hosts {
local var="/etc/hosts"
  local var="/etc/hosts"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -f /etc/hosts ]; then
  if [ -f /etc/hosts ]; then
  cat /etc/hosts &>> $log && _ok "$var" || _error "$var"
    cat /etc/hosts &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "File /etc/hosts non trovato" >> $log && _error "$var"
    echo "File /etc/hosts non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comandi 'ifconfig' e 'ifconfig -a'
# comandi 'ifconfig' e 'ifconfig -a'
function _ifconfig {
function _ifconfig {
local var="ifconfig"
  local var="ifconfig"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /sbin/ifconfig ]; then
  if [ -x /sbin/ifconfig ]; then
  /sbin/ifconfig &>> $log && _ok "$var" || _error "$var"
    /sbin/ifconfig &>> $log && _ok "$var" || _error "$var"
  _spazi
    _spazi
  nome_e_riga "$var -a"
    nome_e_riga "$var -a"
  ifconfig -a &>> $log && _ok "$var -a" || _error "$var -a"
    ifconfig -a &>> $log && _ok "$var -a" || _error "$var -a"
else  
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'ping -c3 8.8.8.8'
# comando 'ping -c3 8.8.8.8'
function _ping {
function _ping {
local var="ping"
  local var="ping"
#Ping verso l'IP del DNS di Google 8.8.8.8
  #Ping verso l'IP del DNS di Google 8.8.8.8
local host="8.8.8.8"
  local host="8.8.8.8"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /bin/ping ]; then
  if [ -x /bin/ping ]; then
  /bin/ping -c3 $host &>> $log && _ok "$var" || _error "$var"
    /bin/ping -c3 $host &>> $log && _ok "$var" || _error "$var"
else  
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'iwconfig'
# comando 'iwconfig'
function _iwconfig {
function _iwconfig {
local var="iwconfig"
  local var="iwconfig"
   local tmpfile=$(/bin/tempfile)
   local tmpfile=$(/bin/tempfile)
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /sbin/iwconfig ]; then
  if [ -x /sbin/iwconfig ]; then
     /sbin/iwconfig > $tmpfile 2>&1
     /sbin/iwconfig > $tmpfile 2>&1
     if [ $? = 0 ]; then
     if [ $? = 0 ]; then
       _ok "$var"  
       _ok "$var"
       /bin/sed -e 's/ESSID:.*/ESSID:"*script-removed*"/g' -e '/^[ ]*IE: Unknown:.*/d' $tmpfile &>> $log  
       /bin/sed -e 's/ESSID:.*/ESSID:"*script-removed*"/g' -e '/^[ ]*IE: Unknown:.*/d' $tmpfile &>> $log
     else
     else
       _error "$var"
       _error "$var"
     fi    
     fi
else
  else
     echo "Comando $var non trovato" >> $log && _error "$var"
     echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
rm $tmpfile
  rm $tmpfile
}
}


# comando 'iwlist scan'
# comando 'iwlist scan'
function _iwlist {
function _iwlist {
local var="iwlist scan"
  local var="iwlist scan"
local tmpfile=$(/bin/tempfile)
  local tmpfile=$(/bin/tempfile)
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /sbin/iwlist ]; then  
  if [ -x /sbin/iwlist ]; then
     /sbin/iwlist scan > $tmpfile 2>&1
     /sbin/iwlist scan > $tmpfile 2>&1
     if [ $? = 0 ]; then
     if [ $? = 0 ]; then
       _ok "$var"  
       _ok "$var"
       /bin/sed -e 's/ESSID:.*/ESSID:"*script-removed*"/g' -e '/^[ ]*IE: Unknown:.*/d' $tmpfile &>> $log  
       /bin/sed -e 's/ESSID:.*/ESSID:"*script-removed*"/g' -e '/^[ ]*IE: Unknown:.*/d' $tmpfile &>> $log
     else
     else
       _error "$var"
       _error "$var"
     fi  
     fi
else  
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
rm $tmpfile
  rm $tmpfile
}
}


# comandi 'ip addrr list' e 'ip route list'
# comandi 'ip addrr list' e 'ip route list'
function _ip {
function _ip {
if [ -x /bin/ip ]; then
  if [ -x /bin/ip ]; then
  nome_e_riga "ip addr list"
    nome_e_riga "ip addr list"
  /bin/ip addr list &>> $log && _ok "ip addr list" || _error "ip addr list"
    /bin/ip addr list &>> $log && _ok "ip addr list" || _error "ip addr list"
  _spazi
    _spazi
  nome_e_riga "ip route list"
    nome_e_riga "ip route list"
  /bin/ip route list &>> $log && _ok "ip route list" || _error "ip route list"
    /bin/ip route list &>> $log && _ok "ip route list" || _error "ip route list"
else  
  else
  echo "Comando ip non trovato" >> $log && _error "ip"
    echo "Comando ip non trovato" >> $log && _error "ip"
fi
  fi
}
}


# comando 'route -n'
# comando 'route -n'
function _route {
function _route {
local var="route"
  local var="route"
nome_e_riga "$var -n"
  nome_e_riga "$var -n"
if [ -x /sbin/route ]; then
  if [ -x /sbin/route ]; then
  /sbin/route -n &>> $log && _ok "$var -n" || _error "$var -n"
    /sbin/route -n &>> $log && _ok "$var -n" || _error "$var -n"
else  
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'iptables -L'
# comando 'iptables -L'
function _iptables {
function _iptables {
local var="iptables"
  local var="iptables"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -x /sbin/iptables ]; then
  if [ -x /sbin/iptables ]; then
  /sbin/iptables -L &>> $log && _ok "$var -L" || _error "$var -L"
    /sbin/iptables -L &>> $log && _ok "$var -L" || _error "$var -L"
else  
  else
  echo "Comando $var non trovato" >> $log && _error "$var"
    echo "Comando $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# comando 'cat /etc/resolv.conf'
# comando 'cat /etc/resolv.conf'
function _resolvconf2 {
function _resolvconf2 {
local var="/etc/resolv.conf"
  local var="/etc/resolv.conf"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -f /etc/resolv.conf ]; then
  if [ -f /etc/resolv.conf ]; then
  ls -l /etc/resolv.conf &>> $log || _error "$var"
    ls -l /etc/resolv.conf &>> $log || _error "$var"
  echo "" >> $log
    echo "" >> $log
  cat /etc/resolv.conf &>> $log && _ok "$var" || _error "$var"
    cat /etc/resolv.conf &>> $log && _ok "$var" || _error "$var"
else  
  else
echo "File $var non trovato" >> $log && _error "$var"
    echo "File $var non trovato" >> $log && _error "$var"
fi
  fi
}
}


# esistenza del pacchetto 'resolvconf'
# esistenza del pacchetto 'resolvconf'
function _resolvconf {
function _resolvconf {
local var="resolvconf"
  local var="resolvconf"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ $(dpkg -l | grep -ci resolvconf) -eq 0 ]; then
  if [ $(dpkg -l | grep -ci resolvconf) -eq 0 ]; then
  echo "Il pacchetto resolvconf non è installato" >> $log && _error "$var"
    echo "Il pacchetto resolvconf non è installato" >> $log && _error "$var"
else
  else
  dpkg -l | grep -i resolvconf >> $log && _ok "$var"
    dpkg -l | grep -i resolvconf >> $log && _ok "$var"
fi
  fi
}
}


# esistenza di pacchetti contenenti firmware e firmware presente sulla macchina
# esistenza di pacchetti contenenti firmware e firmware presente sulla macchina
function _firmware {
function _firmware {
local var="Firmware"
  local var="Firmware"
local i
  local i
nome_e_riga "$var"
  nome_e_riga "$var"
dpkg -l | grep -i firmware >> $log && _ok "$var"
  dpkg -l | grep -i firmware >> $log && _ok "$var"
# Array contenente tre directory
  # Array contenente tre directory
local firm_dir=(/usr/lib/firmware /usr/local/lib/firmware /lib/firmware)
  local firm_dir=(/usr/lib/firmware /usr/local/lib/firmware /lib/firmware)
   for ((i=0; i<${#firm_dir[@]}; i++)); do
   for ((i=0; i<${#firm_dir[@]}; i++)); do
  if [ -d ${firm_dir[$i]} ]; then
    if [ -d ${firm_dir[$i]} ]; then
    echo "Contenuto di ${firm_dir[$i]}" >> $log  
      echo "Contenuto di ${firm_dir[$i]}" >> $log
    ls -al ${firm_dir[$i]} >> $log
      ls -al ${firm_dir[$i]} >> $log
  else
    else
    echo "${firm_dir[$i]} non trovato" >> $log
      echo "${firm_dir[$i]} non trovato" >> $log
  fi
    fi
   done
   done
}
}
Riga 635: Riga 664:
# esistenza di pacchetti riguardanti DHCP
# esistenza di pacchetti riguardanti DHCP
function _dhcp {
function _dhcp {
local var="DHCP"
  local var="DHCP"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ $(dpkg -l | grep -ci dhcp) -eq 0 ]; then
  if [ $(dpkg -l | grep -ci dhcp) -eq 0 ]; then
  echo "Nessun pacchetto DHCP installato" >> $log && _error "$var"
    echo "Nessun pacchetto DHCP installato" >> $log && _error "$var"
else
  else
  dpkg -l | grep -i dhcp >> $log && _ok "$var"
    dpkg -l | grep -i dhcp >> $log && _ok "$var"
fi
  fi
}
}


# comando 'cat /etc/dhclient.conf'
# comando 'cat /etc/dhclient.conf'
function _dhclient {
function _dhclient {
local var="/etc/dhclient.conf"
  local var="/etc/dhclient.conf"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -f /etc/dhclient.conf ]; then
  if [ -f /etc/dhclient.conf ]; then
  cat /etc/dhclient.conf &>> $log && _ok "$var" || _error "$var"
    cat /etc/dhclient.conf &>> $log && _ok "$var" || _error "$var"
else
  else
  echo "File /etc/dhclient.conf non trovato" >> $log && _error "$var"
    echo "File /etc/dhclient.conf non trovato" >> $log && _error "$var"
fi
  fi
}
}


# esistenza di Network Manager
# esistenza di Network Manager
function _nm {
function _nm {
local var="Network Manager"
  local var="Network Manager"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -n "$(dpkg -l | cut -d ' ' -f3 | egrep -i '^network-manager$')" ]; then
  if [ -n "$(dpkg -l | cut -d ' ' -f3 | egrep -i '^network-manager$')" ]; then
  echo "Network Manager è installato (versione "$(NetworkManager --version)")" >> $log && _ok "$var"
    echo "Network Manager è installato (versione "$(NetworkManager --version)")" >> $log && _ok "$var"
  invoke-rc.d network-manager status &>/dev/null
    invoke-rc.d network-manager status &>/dev/null
  if [ $? -eq 0 ]; then
    if [ $? -eq 0 ]; then
  echo "Network Manager è in esecuzione" >> $log
      echo "Network Manager è in esecuzione" >> $log
    else
      echo "Network Manager non è in esecuzione" >> $log
    fi
   else
   else
  echo "Network Manager non è in esecuzione" >> $log
    echo "Network Manager non è installato" >> $log && _error "$var"
   fi
   fi
else
  echo "Network Manager non è installato" >> $log && _error "$var"
fi
}
}


# esistenza di Wicd
# esistenza di Wicd
function _wicd {
function _wicd {
local var="Wicd"
  local var="Wicd"
nome_e_riga "$var"
  nome_e_riga "$var"
if [ -n "$(dpkg -l | grep -i 'wicd')" ]; then
  if [ -n "$(dpkg -l | grep -i 'wicd')" ]; then
  echo "Wicd è installato" >> $log && _ok "$var"
    echo "Wicd è installato" >> $log && _ok "$var"
  if [ -n "$(invoke-rc.d wicd status | grep "is running")" ]; then
    if [ -n "$(invoke-rc.d wicd status | grep "is running")" ]; then
  echo "Wicd è in esecuzione" >> $log
      echo "Wicd è in esecuzione" >> $log
    else
      echo "Wicd non è in esecuzione" >> $log
    fi
   else
   else
  echo "Wicd non è in esecuzione" >> $log
    echo "Wicd non è installato" >> $log && _error "$var"
   fi
   fi
else
  echo "Wicd non è installato" >> $log && _error "$var"
fi
}
}


Riga 702: Riga 731:
# Ciclo sull'array di funzioni
# Ciclo sull'array di funzioni
for ((i=0; i<${#comandi[@]}; i++)); do
for ((i=0; i<${#comandi[@]}; i++)); do
${comandi[$i]}
  ${comandi[$i]}
_spazi
  _spazi
sleep 1
  sleep 1
done
done
echo -e "\nIl file $log è stato creato correttamente nella directory corrente."
echo -e "\nIl file $log è stato creato correttamente nella directory corrente."
86

contributi

Menu di navigazione