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

Vai alla navigazione Vai alla ricerca
1.0.32
(1.0.32)
Riga 22: Riga 22:


== Utilizzo ==
== Utilizzo ==
# Eseguire un upgrade del sistema, se possibile, in modo che le informazioni raccolte dallo script siano aggiornate.
# Copiare il codice dello script in un file di testo. Il nome del file può essere scelto liberamente.
# Copiare il codice dello script in un file di testo. Il nome del file può essere scelto liberamente.
# Dare i permessi di esecuzione al file appena creato. Supponendo che si chiami ''nomefile'':<pre>$ chmod +x nomefile</pre>
# Dare i permessi di esecuzione al file appena creato. Supponendo che si chiami ''nomefile'':<pre>$ chmod +x nomefile</pre>
Riga 51: Riga 52:
ROSSO="\033[01;31m" # colore rosso
ROSSO="\033[01;31m" # colore rosso
VERDE="\033[01;32m" # colore verde
VERDE="\033[01;32m" # colore verde
BOLD="\033[01m" # grassetto
BOLD="\033[01m"     # grassetto
FINE="\033[0m" # reset
FINE="\033[0m"     # reset




Riga 66: Riga 67:
*                                                                              *
*                                                                              *
*  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.31                                                             *
*  Versione 1.0.32                                                             *
*                                                                              *
*                                                                              *
*********************************************************************************"
*********************************************************************************"
Riga 93: Riga 94:
   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
  # file compressi con lo stesso nome di quelli che verranno
  # 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 -o -f $log.zip -o -f $log.bz2 -o -f $log.tgz ]; then
   if [ -f $log -o -f $log.zip -o -f $log.bz2 -o -f $log.tgz ]; then
Riga 307: Riga 307:
}
}


# Funzione che invia nel file di log due righe tra le quali viene visualizzato il nome del comando
# Funzione che invia nel file di log due righe tra le quali viene visualizzato il
# (passato come primo parametro della funzione -> $1)
# nome del comando (passato come primo parametro della funzione -> $1)
function nome_e_riga {
function nome_e_riga {
   echo "
   echo "
Riga 349: Riga 349:
  # Nasconde nel log i i nomi delle connessioni gestite da NetworkManager
  # Nasconde nel log i i nomi delle connessioni gestite da NetworkManager
  sed -i -r "s/(NetworkManager.*keyfile.*((parsing)|(read connection))).*/\1 \*script-removed\*/" $log
  sed -i -r "s/(NetworkManager.*keyfile.*((parsing)|(read connection))).*/\1 \*script-removed\*/" $log
}
# Stabilisce la data dell'ultimo aggiornamento effettuato. Viene preso in
# considerazione il file /var/log/apt/history.log
function _lastupd {
  local convdate lastdate file=/var/log/apt/history.log
 
  if [ -f "$file" ]; then
    lastdate=`sed -n '/^Start-Date/h ; $p' $file | awk '{print $2}'`
    # variabile che contiene la data in formato "giorno mese anno"
    convdate=`date +%d\ %B\ %Y -d "$lastdate"`
   
    echo -e "\nUltimo aggiornamento del sistema: $convdate" >> $log
  fi
}
}


Riga 376: Riga 390:
function _common {
function _common {
   _data
   _data
  _lastupd
   _dmi_decode
   _dmi_decode
   _comando "/bin/uname -a"
   _comando "/bin/uname -a"
Riga 392: Riga 407:
   _comando "/sbin/fdisk -l"
   _comando "/sbin/fdisk -l"
   _file "/etc/fstab"
   _file "/etc/fstab"
   _comando "/bin/mount"
   _comando "/bin/findmnt"
   _comando "/bin/df"
   _comando "/bin/df"
   _comando "/usr/bin/apt-cache policy"
   _comando "/usr/bin/apt-cache policy"
Riga 442: Riga 457:
   _pack "alsa"
   _pack "alsa"
    
    
   local alsaurl="http://www.alsa-project.org/alsa-info.sh"
   local risp alsaurl="http://www.alsa-project.org/alsa-info.sh"
  local risp
    
    
   echo -e "\nI log relativi ai problemi audio sono ricavati attraverso lo script di debug"
   echo -e "\nI log relativi ai problemi audio sono ricavati attraverso lo script di debug"
Riga 524: Riga 538:
# Funzione che invia il contenuto di un file al file di log
# Funzione che invia il contenuto di un file al file di log
# La funzione va richiamata specificando il path completo del file che sarà assegnato a $1
# La funzione va richiamata specificando il path completo del file che sarà assegnato a $1
# Il contenuto dei file viene inviato inalterato al file di log. Se si ha necessità di modificare
# Il contenuto dei file viene inviato inalterato al file di log. Se si ha necessità di
# questo comportamento, creare una entry nel ciclo "case"
# modificare questo comportamento, creare una entry nel ciclo "case"


function _file {
function _file {
Riga 743: Riga 757:
   fi
   fi
}
}
# Funzione di supporto a _extpack.
# Aggiunge alla lista dei pacchetti esterni l'origine dalla quale provengono
function _extpack_supp {
  local origine linea var2 var3
  # Variabile che contiene le fonti di pacchetti disponibili
  local listaorigini=`apt-cache policy | sed -e '/o=/!d' -e 's/^.*o=//' -e 's/,.*$//' | sort | uniq`
  # File temporaneo
  local filetemporaneo=`mktemp`
  # ciclo sulle origini
  while read origine; do
      # solo nome dei pacchetti installati, non appartenenti a stable e provenienti da origini
      # elencate nella variabile "origini". Vanno in filetemporaneo
      var3="aptitude -F '%p' search '~i ?not(?archive($2)) ?origin($origine)' > $filetemporaneo"
      eval $var3
     
      # ciclo sui pacchetti. Viene aggiunta ad ogni riga l'origine del pacchetto
      while read linea; do
  var2=`echo "$1" | sed -e "/$linea/ s/$/ $origine/"`
      done < $filtemporaneo
  done <<< "$listaorigini"
 
  echo "$var2" >> $log && _ok "$3"
 
  # Rimuove il file temporaneo
  rm -f $filetemporaneo
}


# Funzione che elenca i pacchetti non appartenenti alla release di default utilizzata
# Funzione che elenca i pacchetti non appartenenti alla release di default utilizzata
Riga 755: Riga 798:
   # Numero di release trovate
   # Numero di release trovate
   local num=`echo "$release" | wc -l`
   local num=`echo "$release" | wc -l`
 
  local var="Pacchetti esterni"


  local pkg="" var="Pacchetti esterni" linea linea2 var3
  # Variabile che contiene le fonti di pacchetti disponibili
  local origini=`apt-cache policy | sed -e '/o=/!d' -e 's/^.*o=//' -e 's/,.*$//' | sort | uniq`
  # File temporanei
  local filetemporaneo1=`mktemp`
  local filetemporaneo2=`mktemp`
 
   # Se il numero di release è diverso da 1, la funzione termina
   # Se il numero di release è diverso da 1, la funzione termina
   if [ $num -ne 1 ]; then
   if [ $num -ne 1 ]; then
Riga 770: Riga 806:
     echo "Sono presenti $num release in sources.list" >> $log && _error "$var"
     echo "Sono presenti $num release in sources.list" >> $log && _error "$var"
     return
     return
   else
   fi
 
  local pkg=""
 
   # Se il numero di release è uguale a 1, la variabile pkg conterrà i pacchetti *non* facenti parte della release
   # Se il numero di release è uguale a 1, la variabile pkg conterrà i pacchetti *non* facenti parte della release
    case $release in
  case $release in
         wheezy|stable)
         wheezy|stable)
pkg=`aptitude -F '%p %v %t' search '~i !~Astable' --disable-columns | column -t`
release="stable"
if [ "$pkg" ]; then
pkg=`aptitude -F '%p %v %t' search '~i !~Astable'   --disable-columns | column -t` ;;
  echo "$pkg" > $filetemporaneo1
 
  while read linea; do
      # nome dei pacchetti installati, non appartenenti a stable e provenienti da origini
      # elencate nella variabile "origini". Vanno in filetemporaneo2
      var3="aptitude -F '%p' search '~i ?not(?archive(stable)) ?origin($linea)' > $filetemporaneo2"
      eval $var3
      while read linea2; do
  sed -i "/$linea2/ s/$/ $linea/" $filetemporaneo1
      done < $filetemporaneo2
  done <<< "$origini"
fi ;;
         jessie|testing)
         jessie|testing)
pkg=`aptitude -F '%p %v %t' search '~i !~Atesting'  --disable-columns | column -t`
release="testing"
if [ "$pkg" ]; then
pkg=`aptitude -F '%p %v %t' search '~i !~Atesting'  --disable-columns | column -t` ;;
  echo "$pkg" > $filetemporaneo1
        sid|unstable)
release="unstable"
pkg=`aptitude -F '%p %v %t' search '~i !~Aunstable' --disable-columns | column -t` ;;
  esac


  while read linea; do
   # Invia al log il contenuto di pkg (se esiste) attraverso _extpack_supp
      # nome dei pacchetti installati, non appartenenti a testing e provenienti da origini
      # elencate nellaa variabile "origini". Vanno in filetemporaneo2
      var3="aptitude -F '%p' search '~i ?not(?archive(testing)) ?origin($linea)' > $filetemporaneo2"
      eval $var3
      # aggiunge l'origine del pacchetto in filetemporaneo1
      while read linea2; do
  sed -i "/$linea2/ s/$/ $linea/" $filetemporaneo1
      done < $filetemporaneo2
  done <<< "$origini"
fi ;;
        sid|unstable)
pkg=`aptitude -F '%p %v %t' search '~i !~Aunstable' --disable-columns | column -t`
if [ "$pkg" ]; then
  echo "$pkg" > $filetemporaneo1
 
  while read linea; do
      # nome dei pacchetti provenienti da un'origine. Vanno in filetemporaneo2
      var3="aptitude -F '%p' search '~i ?not(?archive(unstable)) ?origin($linea)' > $filetemporaneo2"
      eval $var3
      while read linea2; do
  sed -i "/$linea2/ s/$/ $linea/" $filetemporaneo1
      done < $filetemporaneo2
  done <<< "$origini"
fi ;;
    esac
  fi
 
   # Invia al log il contenuto di pkg (se esiste)
   nome_e_riga "$var all'archivio \"$release\""
   nome_e_riga "$var all'archivio \"$release\""
   if [ -z "$pkg" ]; then
   if [ -z "$pkg" ]; then
     echo "Nessun pacchetto esterno installato" >> $log && _error "$var"
     echo "Nessun pacchetto esterno installato" >> $log && _error "$var"
   else
   else
     cat $filetemporaneo1 >> $log && _ok "$var"
     _extpack_supp "$pkg" "$release" "$var"
   fi
   fi
  # Rimuove i file temporanei
  rm -f $filetemporaneo1 $filetemporaneo2
}
}


Riga 854: Riga 850:
== Changelog ==
== Changelog ==
<!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la versione all'interno del codice (la versione iniziale è 1.0.0) -->
<!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la versione all'interno del codice (la versione iniziale è 1.0.0) -->
;1.0.32
:''- Creata le funzioni _lastupd (visualizza la data dell'ultimo aggiornamento),''
:''_extpack_supp (inserisce l'origine da cui provengono i pacchetti esterni)''
:''- Sostituito il comando mount con findmnt''
;1.0.31
;1.0.31
:''Modificata la funzione _comando per renderla più breve''
:''Modificata la funzione _comando per renderla più breve''
6 999

contributi

Menu di navigazione