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

1.0.52
(1.0.51)
(1.0.52)
Riga 31: Riga 31:
== Parametri dello script ==
== Parametri dello script ==
Lo script accetta, in maniera facoltativa, alcuni parametri:
Lo script accetta, in maniera facoltativa, alcuni parametri:
;--update:effettua l'aggiornamento dello script se disponibile una nuova versione
;--tipo={rete|video|audio|apt|mount|touchpad|generico}:specifica il tipo di problema<br/>Es: --tipo=apt
;--tipo={rete|video|audio|apt|mount|touchpad|generico}:specifica il tipo di problema<br/>Es: --tipo=apt
;--nocompress:non crea il file compresso del file di log
;--nocompress:non crea il file compresso del file di log
Riga 73: Riga 74:


# Versione script
# Versione script
readonly VERSIONE="1.0.51"
readonly VERSIONE="1.0.52"
 
# Path e nome dello script
readonly PATH_NAME="$(readlink -f ${BASH_SOURCE[0]})"


# 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 85: Riga 89:
# Nome del file di log in base alla data corrente
# Nome del file di log in base alla data corrente
readonly log="log_$(date '+%d%b_%H%M%S')"
readonly log="log_$(date '+%d%b_%H%M%S')"
# URL remoto della pagina contenente lo script
readonly SCRIPTURL="http://guide.debianizzati.org/index.php?title=Creazione_automatica_di_un_file_di_log_per_inviare_quesiti_al_forum&action=edit"


# nome utente
# nome utente
Riga 158: Riga 165:
# Messaggio visualizzato nel caso in cui --help non sia l'unico parametro specificato
# Messaggio visualizzato nel caso in cui --help non sia l'unico parametro specificato
function _parm_uso_err {
function _parm_uso_err {
   echo "Il parametro --help non deve essere accompagnato da altri parametri" && _parm_uso
   echo "Il parametro "$1" non deve essere accompagnato da altri parametri" && _parm_uso
}
}


Riga 175: Riga 182:
$BOLD--nopaste$FINE
$BOLD--nopaste$FINE
   non viene inviato il log a paste.debian.net
   non viene inviato il log a paste.debian.net
 
$BOLD--update$FINE
  viene aggiornato lo script se è disponibile una nuova versione
    
    
$BOLD--help$FINE
$BOLD--help$FINE
Riga 185: Riga 195:
# nel passaggio del parametro tipo=blabla
# nel passaggio del parametro tipo=blabla
NOCOMPRESS=0 NOPASTE=0 TIPO=0 TIPO_RETE=0 TIPO_APT=0 TIPO_VIDEO=0
NOCOMPRESS=0 NOPASTE=0 TIPO=0 TIPO_RETE=0 TIPO_APT=0 TIPO_VIDEO=0
TIPO_AUDIO=0 TIPO_MNT=0 TIPO_TOUCH=0 TIPO_COMM=0
TIPO_AUDIO=0 TIPO_MNT=0 TIPO_TOUCH=0 TIPO_COMM=0 UPDATE=0


while [ $# -gt 0 ] ; do
while [ $# -gt 0 ] ; do
   case "$1" in
   case "$1" in
    "--update") [ $BASH_ARGC -gt 1 ] && _parm_uso_err "$1" || UPDATE=1 ;;
     "--nocompress") [ "$NOCOMPRESS" -eq 1 ] && _parm_rip_err || NOCOMPRESS=1      ;;
     "--nocompress") [ "$NOCOMPRESS" -eq 1 ] && _parm_rip_err || NOCOMPRESS=1      ;;
     "--nopaste") [ "$NOPASTE" -eq 1 ] && _parm_rip_err || NOPASTE=1       ;;
     "--nopaste") [ "$NOPASTE" -eq 1 ] && _parm_rip_err || NOPASTE=1       ;;
Riga 198: Riga 209:
     "--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  ;;
     "--help") [ $BASH_ARGC -gt 1 ] && _parm_uso_err || _parm_uso            ;;
     "--help") [ $BASH_ARGC -gt 1 ] && _parm_uso_err "$1" || _parm_uso            ;;
     *) _parm_err
     *) _parm_err
   esac
   esac
Riga 565: Riga 576:
      
      
     echo $'\n'"Ultimo aggiornamento del sistema: ${convdate}" >> "$log"
     echo $'\n'"Ultimo aggiornamento del sistema: ${convdate}" >> "$log"
  fi
}
# Funzione che effettua l'aggiornamento automatico dello script
function _self_update {
  echo -n "Aggiornare questo script [S/n]? "
  local risp
  read risp
  [ "$risp" != "" ] && [ "$risp" != "s" ] && [ "$risp" != "S" ] && _exit || echo "Aggiornamento in corso..."
 
  # Controlla l'esistenza di wget
  [ ! "$(which wget)" ] && echo "Impossibile eseguire l'aggiornamento. Installare il pacchetto wget." && _exit
 
  # Ricava la versione remota dello script
  local vers="$(wget -q -O- "$SCRIPTURL" | sed -n '/^readonly VERSIONE.*/{p;q}' | cut -d '"' -f2)"
  if [ "$vers" = "" ]; then
    echo "Connessione non riuscita" && _exit
  fi
  if [ "$vers" = "$VERSIONE" ]; then
    echo "Lo script è gia alla versione più recente"
  else
    echo -n "È stata trovata una nuova versione dello script: " && _bold "$vers"
    echo -n "Procedere con l'aggiornamento [S/n]? "
    read risp
    case "$risp" in
      [Ss]|"")
          local tempfile="$(mktemp)" # viene creato un file temporaneo
          # lo script remoto viene copiato nel file temporaneo
          wget -q -O- "$SCRIPTURL" | sed -n "/^== Script/{n;:a n; /^&lt/ ! {s/\&amp;/\&/g; s/\&lt;/</g; p; ba}}" > "$tempfile"
          if [ ! -s "$tempfile" ]; then # Controlla se il file è vuoto
            echo "Connessione non riuscita"
          else
            cp "$tempfile" "$PATH_NAME"
            [ $? -eq 0 ] && echo "Aggiornamento effettuato" || echo "Aggiornamento fallito"
            rm -f "$tempfile" # Rimuove il file temporaneo
          fi ;;
      *)
          echo "Non è stato eseguito alcun aggiornamento"
    esac
   fi
   fi
}
}
Riga 571: Riga 623:
function _exit {
function _exit {


   local complog=""
   # se è stato effettuato un update stampa solo il messaggio finale
  if [ "$UPDATE" -eq 0 ]; then
    local complog=""


  if [ -f "$log" ]; then
    if [ -f "$log" ]; then
    echo -n $'\nFile contenente il log dello script: '
      echo -n $'\nFile contenente il log dello script: '
    _bold "$log"
      _bold "$log"
  else
    else
    echo $'\nNon è stato creato un file di log'
      echo $'\nNon è stato creato un file di log'
  fi
    fi


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


  if [ -z "$complog" ]; then   
    if [ -z "$complog" ]; then   
    echo "Non è stato creato un file compresso del log"
      echo "Non è stato creato un file compresso del log"
  else
    else
    echo -n "File compresso da allegare alla discussione sul forum: "
      echo -n "File compresso da allegare alla discussione sul forum: "
    _bold "$complog"
      _bold "$complog"
    fi
   fi
   fi
 
   
   echo $'Script terminato\n'
   echo $'Script terminato\n'
   exit 0
   exit 0
Riga 1 167: Riga 1 222:


_intro
_intro
_avvertenze
 
_check
if [ "$UPDATE" -eq 0 ]; then
_scelta
  _avvertenze
_hide
  _check
_upload
  _scelta
_compress
  _hide
  _upload
  _compress
else
  _self_update
fi
 
_exit
_exit


Riga 1 179: Riga 1 240:
== 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.52
:''Possibilità di auto-aggiornamento dello script (parametro "--update")''
[[Utente:S3v|S3v]] 16:39, 5 mag 2015 (CEST)
;1.0.51
;1.0.51
:''Aggiunti comandi "systemctl --failed", "journal -x -b --no-pager [-p [err, warning]]",''
:''Aggiunti comandi "systemctl --failed", "journal -x -b --no-pager [-p [err, warning]]",''
6 999

contributi