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

Vai alla navigazione Vai alla ricerca
Riga 40: Riga 40:
*                                                                              *  
*                                                                              *  
*  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.4                                                               *  
*  Versione 1.0.5                                                               *  
*                                                                              *  
*                                                                              *  
*********************************************************************************
*********************************************************************************
Riga 98: Riga 98:
function _split_and_send {
function _split_and_send {
   local chunk_prefix='pastebin'
   local chunk_prefix='pastebin'
  local chunk_num=1


   # dimensione massima del singolo file da inviare a http://paste.debian.net
   # dimensione massima del singolo file da inviare a http://paste.debian.net
   local chunk_size='80k'
   local chunk_size='80k'


   # rinomina frammenti 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 frammenti 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 frammenti
   # scarta i messaggi di errore (se presenti) per log di dimensione superiore a 10 parti
   # (max 10 frammenti con l'opzione -a)
   # (max 10 parti con l'opzione -a)
   split -a 1 -d -C $chunk_size $log $chunk_prefix. > /dev/null 2>&1
   split -a 1 -d -C $chunk_size $log $chunk_prefix. > /dev/null 2>&1
    
    
   # Comunica il numero di frammenti utilizzati
   # comunica il numero di parti inviate
   echo -e "\nIl log sarà inviato in $( ls -1 $chunk_prefix.* | wc -l ) parti."
   chunk_num=$( ls -1 $chunk_prefix.* | wc -l )
  if [ $chunk_num = 1 ];
    then
      echo -e "\nIl log sarà inviato in un singolo file."
    else
      echo -e "\nIl log sarà inviato in $chunk_num parti."
  fi
    
    
   # invia al massimo 4 frammenti a http://paste.debian.net
   # invia al massimo 4 parti a http://paste.debian.net
  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  
     if [ -f $chunkfile ]; then  
       pastelink="$(pastebinit -a "" -b http://paste.debian.net -i $chunkfile)"
       pastelink="$(pastebinit -a "" -b http://paste.debian.net -i $chunkfile)"
       echo "Il log è consultabile all'indirizzo '$pastelink'"
       echo "   $pastelink"
     fi
     fi
   done
   done


   # cancella i frammenti 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
Riga 244: Riga 252:
_unamea
_unamea
_version
_version
_sources
_dmesg
_lsmod
_lspci
_lspci
_lsusb
_lsusb
_fdisk
_fstab
_mount
_df
_xorg_log
_sources
_interfaces
_interfaces
_hosts
_hosts
Riga 262: Riga 277:
_nm
_nm
_wicd
_wicd
_lsmod
_iptables
_iptables
_dmesg
)
)


Riga 277: Riga 290:
  nome_e_riga "$var"
  nome_e_riga "$var"
  if [ -x /bin/uname ]; then
  if [ -x /bin/uname ]; then
   uname -a &>> $log && _ok "$var" || _error "$var"
   /bin/uname -a &>> $log && _ok "$var" || _error "$var"
  else
  else
   echo "Il comando uname non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 290: Riga 303:
   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 esiste" >> $log && _error "$var"
   echo "Il file /etc/debian_version non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 299: Riga 312:
  nome_e_riga "$var"
  nome_e_riga "$var"
  if [ -x /bin/dmesg ]; then
  if [ -x /bin/dmesg ]; then
   dmesg &>> $log && _ok "$var" || _error "$var"
   /bin/dmesg &>> $log && _ok "$var" || _error "$var"
  else
  else
   echo "Il comando $var non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 310: Riga 323:
  nome_e_riga "$var"
  nome_e_riga "$var"
  if [ -x /bin/lsmod ]; then
  if [ -x /bin/lsmod ]; then
   lsmod &>> $log && _ok "$var" || _error "$var"
   /bin/lsmod &>> $log && _ok "$var" || _error "$var"
  else
  else
   echo "Il comando $var non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 321: Riga 334:
  nome_e_riga "$var"
  nome_e_riga "$var"
  if [ -x /usr/bin/lspci ]; then
  if [ -x /usr/bin/lspci ]; then
   lspci -knn &>> $log && _ok "$var" || _error "$var"
   /usr/bin/lspci -knn &>> $log && _ok "$var" || _error "$var"
  else
  else
   echo "Il comando $var non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 332: Riga 345:
  nome_e_riga "$var"
  nome_e_riga "$var"
  if [ -x /usr/bin/lsusb ]; then
  if [ -x /usr/bin/lsusb ]; then
   lsusb &>> $log && _ok "$var" || _error "$var"
   /usr/bin/lsusb &>> $log && _ok "$var" || _error "$var"
else
  echo "Comando $var non trovato" >> $log && _error "$var"
fi
}
 
# comando 'fdisk'
function _fdisk {
local var="fdisk -l"
nome_e_riga "$var"
if [ -x /sbin/fdisk ]; then
  /sbin/fdisk -l &>> $log && _ok "$var" || _error "$var"
else
  echo "Comando $var non trovato" >> $log && _error "$var"
fi
}
 
# file /etc/fstab
function _fstab {
local var="/etc/fstab"
nome_e_riga "$var"
if [ -f /etc/fstab ]; then
  cat /etc/fstab &>> $log && _ok "$var" || _error "$var"
  else
  else
   echo "Il comando $var non esiste" >> $log && _error "$var"
   echo "Il file $var non trovato" >> $log && _error "$var"
fi
}
 
# comando 'mount'
function _mount {
local var="mount"
nome_e_riga "$var"
if [ -x /bin/mount ]; then
  /bin/mount &>> $log && _ok "$var" || _error "$var"
else
  echo "Comando $var non trovato" >> $log && _error "$var"
fi
}
 
# comando 'df'
function _df {
local var="df -h"
nome_e_riga "$var"
if [ -x /bin/df ]; then
  /bin/df -h &>> $log && _ok "$var" || _error "$var"
else
  echo "Comando $var non trovato" >> $log && _error "$var"
fi
}
 
# log del server X
function _xorg_log {
local var="/var/log/Xorg.0.log"
nome_e_riga "$var"
if [ -f /var/log/Xorg.0.log ]; then
  cat /var/log/Xorg.0.log &>> $log && _ok "$var" || _error "$var"
else
  echo "File $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 347: Riga 415:
   cat /etc/network/interfaces &>> $log && _ok "$var" || _error "$var"
   cat /etc/network/interfaces &>> $log && _ok "$var" || _error "$var"
  else
  else
   echo "Il file $var non esiste" >> $log && _error "$var"
   echo "File $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 358: Riga 426:
   cat /etc/hosts &>> $log && _ok "$var" || _error "$var"
   cat /etc/hosts &>> $log && _ok "$var" || _error "$var"
  else
  else
   echo "Il file /etc/hosts non esiste" >> $log && _error "$var"
   echo "File /etc/hosts non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 367: Riga 435:
  nome_e_riga "$var"
  nome_e_riga "$var"
  if [ -x /sbin/ifconfig ]; then
  if [ -x /sbin/ifconfig ]; then
   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 "Il comando $var non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 383: Riga 451:
  nome_e_riga "$var"
  nome_e_riga "$var"
  if [ -x /bin/ping ]; then
  if [ -x /bin/ping ]; then
   ping -c3 $host &>> $log && _ok "$var" || _error "$var"
   /bin/ping -c3 $host &>> $log && _ok "$var" || _error "$var"
  else  
  else  
   echo "Il comando $var non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 394: Riga 462:
  nome_e_riga "$var"
  nome_e_riga "$var"
  if [ -x /sbin/iwconfig ]; then
  if [ -x /sbin/iwconfig ]; then
   iwconfig &>> $log && _ok "$var" || _error "$var"
   /sbin/iwconfig &>> $log && _ok "$var" || _error "$var"
  else
  else
   echo "Il comando $var non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 414: Riga 482:
     fi     
     fi     
  else  
  else  
   echo "Il comando $var non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
  rm $tmpfile
  rm $tmpfile
Riga 423: Riga 491:
  if [ -x /bin/ip ]; then
  if [ -x /bin/ip ]; then
   nome_e_riga "ip addr list"
   nome_e_riga "ip addr list"
   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"
   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 "Il comando ip non esiste" >> $log && _error "ip"
   echo "Comando ip non trovato" >> $log && _error "ip"
  fi
  fi
}
}
Riga 437: Riga 505:
  nome_e_riga "$var -n"
  nome_e_riga "$var -n"
  if [ -x /sbin/route ]; then
  if [ -x /sbin/route ]; then
   route -n &>> $log && _ok "$var -n" || _error "$var -n"
   /sbin/route -n &>> $log && _ok "$var -n" || _error "$var -n"
  else  
  else  
   echo "Il comando $var non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 448: Riga 516:
  nome_e_riga "$var"
  nome_e_riga "$var"
  if [ -x /sbin/iptables ]; then
  if [ -x /sbin/iptables ]; then
   iptables -L &>> $log && _ok "$var -L" || _error "$var -L"
   /sbin/iptables -L &>> $log && _ok "$var -L" || _error "$var -L"
  else  
  else  
   echo "Il comando $var non esiste" >> $log && _error "$var"
   echo "Comando $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 463: Riga 531:
   cat /etc/resolv.conf &>> $log && _ok "$var" || _error "$var"
   cat /etc/resolv.conf &>> $log && _ok "$var" || _error "$var"
  else  
  else  
  echo "Il file $var non esiste" >> $log && _error "$var"
  echo "File $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 491: Riga 559:
     ls -al ${firm_dir[$i]} >> $log
     ls -al ${firm_dir[$i]} >> $log
   else
   else
     echo "${firm_dir[$i]} non esiste" >> $log
     echo "${firm_dir[$i]} non trovato" >> $log
   fi
   fi
   done
   done
Riga 514: Riga 582:
   cat /etc/dhclient.conf &>> $log && _ok "$var" || _error "$var"
   cat /etc/dhclient.conf &>> $log && _ok "$var" || _error "$var"
  else
  else
   echo "Il file /etc/dhclient.conf non esiste" >> $log && _error "$var"
   echo "File /etc/dhclient.conf non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 527: Riga 595:
   cat /etc/apt/sources.list &>> $log && _ok "$var" || _error "$var"
   cat /etc/apt/sources.list &>> $log && _ok "$var" || _error "$var"
  else  
  else  
   echo "Il file $var non esiste" >> $log && _error "$var"
   echo "File $var non trovato" >> $log && _error "$var"
  fi
  fi
}
}
Riga 563: Riga 631:
  fi
  fi
}
}


# --------------------------------------------------------------------------
# --------------------------------------------------------------------------