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

1.0.69
(1.0.68)
(1.0.69)
Riga 125: Riga 125:


# Versione script
# Versione script
readonly VERSIONE="1.0.68"
readonly VERSIONE="1.0.69"


# Path e nome dello script
# Path e nome dello script
Riga 271: Riga 271:
     "--tipo=apt") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_APT=1  ;;
     "--tipo=apt") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_APT=1  ;;
     "--tipo=video") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_VIDEO=1 ;;
     "--tipo=video") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_VIDEO=1 ;;
     "--tipo=boot") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_BOOT=1 ;;
     "--tipo=boot") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_BOOT=1 ;;
     "--tipo=audio") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_AUDIO=1 ;;
     "--tipo=audio") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_AUDIO=1 ;;
     "--tipo=mount") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_MNT=1  ;;
     "--tipo=mount") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_MNT=1  ;;
     "--tipo=touchpad") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_TOUCH=1 ;;
     "--tipo=touchpad") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_TOUCH=1 ;;
     "--tipo=generico") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_COMM=1  ;;
     "--tipo=generico") [ "$TIPO" -eq 1 ] && _parm_tipo_err || TIPO=1 && TIPO_COMM=1  ;;
     "--debug") [ "${BASH_ARGC[@]}" -gt 1 ] && _parm_uso_err "$1" || DEBUG=1         ;;
     "--debug") [ "${BASH_ARGC[@]}" -gt 1 ] && _parm_uso_err "$1" || DEBUG=1 ;;
     "--versione") [ "${BASH_ARGC[@]}" -gt 1 ] && _parm_uso_err "$1" || _showvers       ;;
     "--versione") [ "${BASH_ARGC[@]}" -gt 1 ] && _parm_uso_err "$1" || _showvers ;;
     "--help") [ "${BASH_ARGC[@]}" -gt 1 ] && _parm_uso_err "$1" || _parm_uso       ;;
     "--help") [ "${BASH_ARGC[@]}" -gt 1 ] && _parm_uso_err "$1" || _parm_uso ;;
     *) _parm_err
     *) _parm_err
   esac
   esac
Riga 359: Riga 359:
# 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 paste_url='https://paste.debian.net'
   local chunk_prefix='pastebin'
   local chunk_prefix='pastebin'
   local chunk_num=1
   local chunk_num=1
Riga 488: Riga 488:
       echo "Sta per essere creato un file compresso..."
       echo "Sta per essere creato un file compresso..."
       sleep 1
       sleep 1
       if which xz > /dev/null; then
       if [ "$(command -v xz)" ]; then
         xz -e < "$log" > "${log}.xz" && _compress_ok || _compress_err
         xz -e < "$log" > "${log}.xz" && _compress_ok || _compress_err
       elif which bzip2 > /dev/null; then
       elif [ "$(command -v bzip2)" ]; then
         bzip2 -9 < "$log" > "${log}.bz2" && _compress_ok || _compress_err
         bzip2 -9 < "$log" > "${log}.bz2" && _compress_ok || _compress_err
       elif which gzip > /dev/null; then
       elif [ "$(command -v gzip)" ]; then
         gzip -9 < "$log" > "${log}.gz" && _compress_ok || _compress_err
         gzip -9 < "$log" > "${log}.gz" && _compress_ok || _compress_err
       else
       else
Riga 613: Riga 613:
function _data {
function _data {
   echo "Log creato il: $(date '+%d %B %Y alle %H.%M')" >> "$log"
   echo "Log creato il: $(date '+%d %B %Y alle %H.%M')" >> "$log"
}
# Quota i caratteri specificati per le parole da nascondere con sed
# Es: abc.def -> abc\.def
function _sed_quote {
  # array di caratteri da quotare
  quotearr=("." "/")
  retstr="$1"
  for char in "${quotearr[@]}"; do
    retstr="${retstr//$char/\\$char}"
  done
  echo "$retstr"
}
}


Riga 655: Riga 668:


   for i in "${interfaces[@]}"; do
   for i in "${interfaces[@]}"; do
     # indirizzo MAC dell'interfaccia solo se l'interfaccia
     # indirizzo MAC dell'interfaccia solo se questa ne ha uno
    # ne ha uno. Non viene considerata l'interfaccia di loopback
     line="$(ip -br link show $i)"
     line="$(ip -br link show $i)"
     if [ "$(echo $line | wc -w)" -gt 3 ] && [ $i != "lo" ]; then
     if [ "$(echo $line | wc -w)" -gt 3 ]; then
       macaddress="$(awk '{ print $3 }' <<< $line)"
       macaddress="$(awk '{ print $3 }' <<< $line)"
      macaddress="$(_sed_quote $macaddress)"
       # l'indirizzo MAC viene nascosto nel file
       # l'indirizzo MAC viene nascosto nel file
       sed -i "s/$macaddress/\*script-removed\*/g" "$log"
       sed -i 's/'$macaddress'/\*script-removed\*/g' "$log"
     fi
     fi
   done
   done
Riga 699: Riga 712:
    
    
   # Controlla l'esistenza di wget
   # Controlla l'esistenza di wget
   [ ! "$(which wget)" ] && echo "Impossibile eseguire l'aggiornamento. Installare il pacchetto wget." && _exit
   [ ! "$(command -v wget)" ] && echo "Impossibile eseguire l'aggiornamento. Installare il pacchetto wget." && _exit
    
    
   # Ricava la versione remota dello script
   # Ricava la versione remota dello script
Riga 806: Riga 819:
   _file "/var/log/syslog"
   _file "/var/log/syslog"
   _comando "/bin/systemctl --failed --no-pager"
   _comando "/bin/systemctl --failed --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"
   _comando "/bin/journalctl -x -b --no-pager -p warning"
   _comando "/bin/journalctl -x -b --no-pager -p warning"
  _comando "/bin/journalctl -x -b --no-pager"
   _comando "/usr/bin/systemd-cgtop -b --iterations=5"
   _comando "/usr/bin/systemd-cgtop -b --iterations=5"
   _comando "/usr/bin/systemd-cgls -l"
   _comando "/usr/bin/systemd-cgls -l"
Riga 879: Riga 892:
   _pack "mesa"
   _pack "mesa"
   _pack "fglrx"
   _pack "fglrx"
  _pack "amdgpu"
}
}


Riga 968: Riga 982:
function _mount {
function _mount {
   _common
   _common
  _comando "/usr/bin/udisks --dump"
   _comando "/usr/bin/udisksctl dump"
   _comando "/usr/bin/udisksctl dump"
   _pack "usbmount"
   _pack "usbmount"
Riga 1 277: Riga 1 290:
     _x_window_manager
     _x_window_manager
     # installati
     # installati
     _soddisfa "x-session-manager"
     if [ "$(command -v aptitude)" ]; then
    #_soddisfa "x-window-manager" # non essenziale e impiega già tanto
      _soddisfa "x-session-manager"
      # _soddisfa "x-window-manager" # non essenziale e impiega già tanto
    fi
   } >> "$log"
   } >> "$log"
   # in esecuzione
   # in esecuzione
Riga 1 299: Riga 1 314:
# Funzione che elenca i pacchetti non appartenenti alla release di default utilizzata
# Funzione che elenca i pacchetti non appartenenti alla release di default utilizzata
function _extpack {
function _extpack {
local var="Pacchetti esterni"
_prompt "$var"
# La funzione termina se aptitude non è installato
if [ ! "$(command -v aptitude)" ]; then
  _nome_e_riga "$var"
  echo "Aptitude non è installato" >> "$log" && _error
  return 1
fi


  local riga indirizzo rel linea release=""
  local riga indirizzo rel linea release=""
Riga 1 316: Riga 1 341:


     # sostituisce / con \/ (necessario per il successivo sed)
     # sostituisce / con \/ (necessario per il successivo sed)
     indirizzo="${indirizzo//\//\\/}"
     indirizzo="$(_sed_quote "$indirizzo")"


     # release della riga corrente (es. wheezy o testing o sid)
     # release della riga corrente (es. wheezy o testing o sid)
Riga 1 339: Riga 1 364:
     fi
     fi
  done <<< "$sourceslist"
  done <<< "$sourceslist"
local var="Pacchetti esterni"
_prompt "$var"
    
    
  # Lo script DEVE rilevare almeno una release. Se la variabile "release" è nulla, c'è un errore in "sources.list"
  # Lo script DEVE rilevare almeno una release. Se la variabile "release" è nulla, c'è un errore in "sources.list"
Riga 1 419: Riga 1 441:
== 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.69
:''http->https per paste.debian.net''
:''Sostituito "which" con "command -v"''
:''Aggiunto _pack "amdgpu"''
:''Aggiunta funzione per quotare stringhe prima di passarle a sed''
:''Rimosso comando "udisks --dump" (non più presente in Debian)''
:''Gestita la mancanza di aptitude''
:''Modifiche minori''
:[[Utente:S3v|S3v]] 13:21, 23 ott 2020 (CEST)
;1.0.68
;1.0.68
:''Nascosti indirizzi MAC delle interfacce wireless''
:''Nascosti indirizzi MAC delle interfacce wireless''
6 999

contributi