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

1.0.54
(1.0.53 (corretto typo))
(1.0.54)
Riga 38: Riga 38:




*IMPORTANTE* se si modifica lo script è *necessario* seguire le istruzioni alla pagina http://guide.debianizzati.org/index.php/Aiuto:LogScript in modo da aggiornare l'archivio in formato Base64
*IMPORTANTE*
 
Se si modifica lo script è *necessario* seguire le istruzioni alla pagina:
 
http://guide.debianizzati.org/index.php/Aiuto:LogScript
 
in modo da aggiornare l'archivio in formato Base64




Riga 79: Riga 85:


# Versione script
# Versione script
readonly VERSIONE="1.0.53"
readonly VERSIONE="1.0.54"


# Codename per stable e testing. Da modificare nei successivi rilasci di Debian
# Codename per stable e testing. Da modificare nei successivi rilasci di Debian
Riga 95: Riga 101:
utente=$(logname) &&
utente=$(logname) &&
[ "$utente" != "root" ] || {
[ "$utente" != "root" ] || {
   utente=
   # NOTA: "root" è permesso (solo) se scelto esplicitamente dall'utente
  tmputente=
  tmputente2=$(getent passwd 1000 2> /dev/null | cut -d ":" -f 1) ||
  for tmputente in $(users); do
      tmputente2=""
    if [ "$tmputente" = "root" ]; then
  echo -n "Inserisci il tuo nome utente"
      continue
  if [ -n "$tmputente2" ]; then
    elif [ -z "$utente" ]; then
      echo -n " (lascia vuoto per \"$tmputente2\"): "
      utente=$tmputente
  else
    elif [ "$utente" != "$tmputente" ]; then
       echo -n ": "
      utente=
      break
    fi
  done
  if [ -z "$utente" ]; then
    # NOTA: "root" è permesso (solo) se scelto esplicitamente dall'utente
    echo -n "Inserisci il tuo nome utente: "
    read tmputente &&
    # non può contenere: spazi, tabulazioni, nuove righe; né essere vuota
    [ -n "${tmputente##*[[:space:]]*}" ] &&
    # l'utente deve aver effettuato il login (anche in altre console)
    case " $(users) " in
      *" ${tmputente} "* ) true
                          ;;
      * ) false
          ;;
    esac || {
       echo "Nome utente invalido o non ha effettuato il login!" >&2
      exit 255
    }
    utente=$tmputente
   fi
   fi
  read tmputente &&
  tmputente=${tmputente:-$tmputente2}
  # non può contenere: spazi, tabulazioni, nuove righe; né essere vuota
  [ -n "${tmputente##*[[:space:]]*}" ] &&
  # deve esistere in /etc/passwd (o equivalente)
  getent passwd "$tmputente" > /dev/null 2>&1 ||{
    echo "Nome utente invalido o non esistente!" >&2
    exit 255
  }
  utente=$tmputente
   unset tmputente
   unset tmputente
  unset tmputente2
}
}
readonly utente
readonly utente
Riga 251: Riga 247:
   # stesso nome di quelli che verranno creati, lo script chiede se cancellarli o meno
   # stesso nome di quelli che verranno creati, lo script chiede se cancellarli o meno
   local risp
   local risp
   if [ -f "$log" ] || [ -f "${log}.zip" ] || [ -f "${log}.bz2" ] || [ -f "${log}.tgz" ]; then
   if [ -f "$log" ] || [ -f "${log}.xz" ] || [ -f "${log}.bz2" ] || [ -f "${log}.gz" ]; then
     echo $'\n'"Esiste già un file ${log}, ${log}.zip, ${log}.bz2 o ${log}.tgz nella directory corrente."
     echo $'\n'"Esiste già un file ${log}, ${log}.xz, ${log}.bz2 o ${log}.gz nella directory corrente."
     echo -n "Sovrascivere [S/n]? "
     echo -n "Sovrascivere [S/n]? "
     read risp
     read risp
     case "$risp" in
     case "$risp" in
       ""|[Ss]) rm -f -- "$log" "${log}.zip" "${log}.bz2" "${log}.tgz" ;;
       ""|[Ss]) rm -f -- "$log" "${log}.xz" "${log}.bz2" "${log}.gz" > /dev/null 2>&1 ;;
       *)      _exit
       *)      exit 1
     esac
     esac
   fi
   fi
Riga 385: Riga 381:


# Funzione che crea il file compresso
# Funzione che crea il file compresso
# Prova a creare nell'ordine: un file .bz2, un file .zip o un file .tgz
# Prova a creare nell'ordine: un file .xz, un file .bz2 o un file .gz
function _compress {
function _compress {
   # La funzione termina se è stato utilizzato il parametro "--nocompress"
   # La funzione termina se è stato utilizzato il parametro "--nocompress"
Riga 398: Riga 394:
       sleep 1
       sleep 1
       if which xz > /dev/null; then
       if which xz > /dev/null; then
         xz -e "$log" && _compress_ok || _compress_err
         xz -e < "$log" > "${log}.xz" && _compress_ok || _compress_err
       elif which bzip2 > /dev/null; then
       elif which bzip2 > /dev/null; then
         bzip2 -9 "$log" && _compress_ok || _compress_err
         bzip2 -9 < "$log" > "${log}.bz2" && _compress_ok || _compress_err
       elif which gzip > /dev/null; then
       elif which gzip > /dev/null; then
         gzip -9 "$log" && _compress_ok || _compress_err
         gzip -9 < "$log" > "${log}.gz" && _compress_ok || _compress_err
       else
       else
         echo "Impossibile effettuare la compressione!" >&2
         echo "Impossibile effettuare la compressione!" >&2
Riga 588: Riga 584:
   fi
   fi


   if [ -f "${log}.bz2" ]; then
   if [ -f "${log}.xz" ]; then
    complog="${log}.xz"
  elif [ -f "${log}.bz2" ]; then
     complog="${log}.bz2"
     complog="${log}.bz2"
   elif [ -f "${log}.zip" ]; then
   elif [ -f "${log}.gz" ]; then
     complog="${log}.zip"
     complog="${log}.gz"
  elif [ -f "${log}.tgz" ]; then
    complog="${log}.tgz"
   fi
   fi


Riga 622: Riga 618:
   _comando "/usr/bin/groups" "su"
   _comando "/usr/bin/groups" "su"
   _file "/var/log/syslog"
   _file "/var/log/syslog"
   _comando "/bin/systemctl --failed"
   _comando "/bin/systemctl --failed --no-pager"
   _comando "/bin/journalctl -x -b --no-pager"  
   _comando "/bin/journalctl -x -b --no-pager"  
   _comando "/bin/journalctl -x -b --no-pager -p err"
   _comando "/bin/journalctl -x -b --no-pager -p err"
Riga 631: Riga 627:
   _comando "/usr/bin/lspci -knn"
   _comando "/usr/bin/lspci -knn"
   _comando "/usr/bin/lsusb"
   _comando "/usr/bin/lsusb"
  _file "/etc/apt/sources.list"
  _dir "/etc/apt/sources.list.d/"
   _comando "/sbin/fdisk -l"
   _comando "/sbin/fdisk -l"
   _comando "/sbin/blkid"
   _comando "/sbin/blkid"
Riga 639: Riga 633:
   _comando "/bin/lsblk"
   _comando "/bin/lsblk"
   _comando "/bin/df"
   _comando "/bin/df"
  _file "/etc/apt/sources.list"
  _dir "/etc/apt/sources.list.d/"
   _comando "/usr/bin/apt-cache policy"
   _comando "/usr/bin/apt-cache policy"
   _comando "/usr/bin/apt-cache stats"
   _comando "/usr/bin/apt-cache stats"
  _comando "/usr/bin/dpkg --audit"
   _comando "/usr/bin/apt-get check"
   _comando "/usr/bin/apt-get check"
   _firmware
   _firmware
Riga 647: Riga 644:
   _pack "linux-image"
   _pack "linux-image"
   _comando "/usr/sbin/dkms status"
   _comando "/usr/sbin/dkms status"
  _comando "/usr/bin/dpkg --audit"
}
}


Riga 1 131: Riga 1 127:


  # Numero di release trovate
  # Numero di release trovate
  local num=$(echo "$release" | sort -u | uniq | wc -l)
  local num=$(echo "$release" | sort -u | wc -l)
    
    
  # Se il numero di release è diverso da 1, la funzione termina
  # Se il numero di release è diverso da 1, la funzione termina
Riga 1 187: Riga 1 183:
== Changelog ==
== Changelog ==
<!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la versione (variabile 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 (variabile VERSIONE) all'interno del codice (la versione iniziale è 1.0.0) -->
;1.0.54
:Correzioni minori legate alla compressione xz; semplificata lettura nome utente in caso di errori con logname
:[[Utente:HAL 9000|HAL 9000]] 18:41, 31 mag 2015 (CEST)
;1.0.53
;1.0.53
:''Vengono rimosse dalla variabile "release" (pacchetti esterni) le linee duplicate''
:''Vengono rimosse dalla variabile "release" (pacchetti esterni) le linee duplicate''
3 581

contributi