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

1.0.71
m (enabled syntaxhighlight (nolines))
(1.0.71)
Riga 28: Riga 28:
;log_''data''.{xz,bz2,gz}:il file precedente ma in formato compresso. Può essere allegato ad una discussione sul forum
;log_''data''.{xz,bz2,gz}:il file precedente ma in formato compresso. Può essere allegato ad una discussione sul forum


Se si vuole, attraverso lo script è anche possibile inviare il file direttamente a [http://paste.debian.net paste.debian.net] per poterlo condividere pubblicamente, in questo caso il file non potrà superare la grandezza complessiva di 240K circa (diviso in parti della dimensione massima di 60K circa) e le informazioni saranno disponibili a chiunque per una settimana.<br/>
Se si vuole, attraverso lo script è anche possibile inviare il file direttamente a [https://paste.debian.net paste.debian.net] per poterlo condividere pubblicamente, in questo caso il file non potrà superare la grandezza complessiva di 240K circa (diviso in parti della dimensione massima di 60K circa) e le informazioni saranno disponibili a chiunque per una settimana.<br/>
Prima di effettuare l'invio, lo script chiede un esplicito consenso all'utente.<br/>
Prima di effettuare l'invio, e nel caso sia installato il pacchetto facoltativo <code>pastebinit</code>, lo script chiede un esplicito consenso all'utente.


Per usufruire del servizio offerto da paste.debian.net è necessaria l'installazione del pacchetto <code>pastebinit</code>:
== Pacchetti opzionali ==
<pre># apt-get install pastebinit</pre>
Lo script utilizza alcuni comandi che potrebbero non essere installati di default sulla propria macchina. La loro installazione è del tutto facoltativa e non pregiudica in alcun modo le funzionalità messe a disposizione dallo script.<br>
;aptitude:Viene utilizzato per ricavare informazioni quali il gestore di sessione e i pacchetti non appartenenti alla [[release]] di Debian predefinita. Per installarlo:<pre># apt install aptitude</pre>
;pastebinit:Permette di usufruire del servizio offerto da paste.debian.net per la condivisione del testo. Per installarlo:<pre># apt install pastebinit</pre>


{{Box|Nota|Lo script è liberamente modificabile.<br/>Per ogni segnalazione, informazione o suggerimento fare riferimento a [http://forum.debianizzati.org/viewtopic.php?f{{=}}13&t{{=}}45098 questa] discussione sul forum.}}
{{Box|Nota|Lo script è liberamente modificabile.<br/>Per ogni segnalazione, informazione o suggerimento fare riferimento a [http://forum.debianizzati.org/viewtopic.php?f{{=}}13&t{{=}}45098 questa] discussione sul forum.}}
Riga 135: Riga 137:


# Versione script
# Versione script
readonly VERSIONE="1.0.70"
readonly VERSIONE="1.0.71"


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


# Codename per oldstable, stable e testing. Da modificare nei successivi rilasci di Debian
# Codename per oldoldstable, oldstable, stable e testing.
# Da modificare nei successivi rilasci di Debian
readonly OLDOLDSTABLE="jessie"
readonly OLDOLDSTABLE="jessie"
readonly OLDSTABLE="stretch"
readonly OLDSTABLE="stretch"
Riga 855: Riga 858:
   _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/apt-mark showhold"
   _comando "/usr/bin/dpkg --audit"
   _comando "/usr/bin/dpkg --audit"
  _comando "/usr/bin/dpkg -l"
   _comando "/usr/bin/apt-get check"
   _comando "/usr/bin/apt-get check"
   _firmware
   _firmware
Riga 1 090: Riga 1 095:
  (iwconfig | sed -e '/ESSID:/{/off\/any/! s/ESSID:.*/ESSID:"*script-removed*"/g}' -e '/^[ ]*IE: Unknown:.*/d') &>> "$log" && _ok || _error
  (iwconfig | sed -e '/ESSID:/{/off\/any/! s/ESSID:.*/ESSID:"*script-removed*"/g}' -e '/^[ ]*IE: Unknown:.*/d') &>> "$log" && _ok || _error
  ;;
  ;;
      "/sbin/iwlist scan")
      "/sbin/iwlist scan")
  (iwlist scan | sed -e '/ESSID:.*/{/off\/any/! s/ESSID:.*/ESSID:"*script-removed*"/g}' -e '/^[ ]*IE: Unknown:.*/d') &>> "$log" && _ok || _error
  (iwlist scan | sed -e '/ESSID:.*/{/off\/any/! s/ESSID:.*/ESSID:"*script-removed*"/g}' -e '/^[ ]*IE: Unknown:.*/d') &>> "$log" && _ok || _error
  ;;
  ;;
               # nasconde gli ESSID visualizzati da "nmcli dev list" (fino a Wheezy)
               # nasconde gli ESSID visualizzati da "nmcli dev list" (fino a Wheezy)
               # L'array PIPESTATUS mostra il codice d'uscita dei comandi della pipe. PIPESTATUS[0] è il codice d'uscita di "nmcli dev list" (0=successo)
               # L'array PIPESTATUS mostra il codice d'uscita dei comandi della pipe. PIPESTATUS[0] è il codice d'uscita di "nmcli dev list" (0=successo)
Riga 1 098: Riga 1 105:
                   nmcli dev list 2>/dev/null | sed -r "s/(^AP[[:digit:]]*\.SSID:[[:space:]]*).*/\1\*script removed\*/" >> "$log" && [ "${PIPESTATUS[0]}" -eq 0 ] && _ok || \
                   nmcli dev list 2>/dev/null | sed -r "s/(^AP[[:digit:]]*\.SSID:[[:space:]]*).*/\1\*script removed\*/" >> "$log" && [ "${PIPESTATUS[0]}" -eq 0 ] && _ok || \
                       ( _error && echo "Comando valido solo per Wheezy" >> "$log" ) ;;
                       ( _error && echo "Comando valido solo per Wheezy" >> "$log" ) ;;
               # nasconde gli ESSID visualizzati da "nmcli device show" (da Jessie in poi)
               # nasconde gli ESSID visualizzati da "nmcli device show" (da Jessie in poi)
               "/usr/bin/nmcli device show")
               "/usr/bin/nmcli device show")
                   LANG=C nmcli device show 2>/dev/null | sed -r "s/(^AP[[:digit:]]*\.SSID:[[:space:]]*|GENERAL.CONNECTION:[[:space:]]*).*/\1\*script removed\*/" >> "$log" && [ "${PIPESTATUS[0]}" -eq 0 ] && _ok || \
                   LANG=C nmcli device show 2>/dev/null | sed -r "s/(^AP[[:digit:]]*\.SSID:[[:space:]]*|GENERAL.CONNECTION:[[:space:]]*).*/\1\*script removed\*/" >> "$log" && [ "${PIPESTATUS[0]}" -eq 0 ] && _ok || \
                       ( _error && echo "Comando valido solo per Jessie e versioni superiori" >> "$log" ) ;;
                       ( _error && echo "Comando valido solo per Jessie e versioni superiori" >> "$log" ) ;;
               /bin/dmesg*)
               /bin/dmesg*)
  # Il comando viene eseguito solo se è non installato systemd
  # Il comando viene eseguito solo se è non installato systemd
  [ $systemd -eq 0 ] && $1 &>> "$log" && _ok || _error ;;
  [ $systemd -eq 0 ] && $1 &>> "$log" && _ok || _error ;;
               "/usr/sbin/grub-mkdevicemap")
               "/usr/sbin/grub-mkdevicemap")
  local devicemaptempfile="$(mktemp)" && \
  local devicemaptempfile="$(mktemp)" && \
  grub-mkdevicemap -m "$devicemaptempfile" && \
  grub-mkdevicemap -m "$devicemaptempfile" && \
  if [ -f "$devicemaptempfile" ]; then cat "$devicemaptempfile" >> "$log"; fi && _ok || _error ;;
  if [ -f "$devicemaptempfile" ]; then cat "$devicemaptempfile" >> "$log"; fi && _ok || _error ;;
      # lista dei pacchetti con stato diverso da ii
      "/usr/bin/dpkg -l")
  echo "Elenco dei pacchetti installati con stato diverso da ii" >> "$log"
  echo >> "$log"
  dpkg -l | egrep -v '^ii' >> "$log" && _ok || _error ;;
      *)
      *)
  # per tutti gli altri comandi non specificati in precedenza, l'output del comando è inviato inalterato al log
  # per tutti gli altri comandi non specificati in precedenza, l'output del comando è inviato inalterato al log
Riga 1 360: Riga 1 377:
     if [ "$rel" = "oldstable" ] || [ "$rel" = "stable" ] || [ "$rel" = "testing" ] || [ "$rel" = "unstable" ] ||
     if [ "$rel" = "oldstable" ] || [ "$rel" = "stable" ] || [ "$rel" = "testing" ] || [ "$rel" = "unstable" ] ||
       [ "$rel" = "$OLDSTABLE" ] || [ "$rel" = "$STABLE" ] || [ "$rel" = "$TESTING" ] || [ "$rel" = "sid" ] ||
       [ "$rel" = "$OLDSTABLE" ] || [ "$rel" = "$STABLE" ] || [ "$rel" = "$TESTING" ] || [ "$rel" = "sid" ] ||
       [ "$rel" = "oldoldstable" ] || [ "$rel" = "OLDOLDSTABLE" ]; then
       [ "$rel" = "oldoldstable" ] || [ "$rel" = "$OLDOLDSTABLE" ]; then
      
      
       # controlla che sia un repository di Debian
       # controlla che sia un repository di Debian
Riga 1 405: Riga 1 422:
     "$OLDOLDSTABLE"|oldoldstable)
     "$OLDOLDSTABLE"|oldoldstable)
                     release="oldoldstable"
                     release="oldoldstable"
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Aoldoldstable' --disable-columns | column -t) ;;
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Aoldoldstable') ;;
     "$OLDSTABLE"|oldstable)
     "$OLDSTABLE"|oldstable)
                     release="oldstable"
                     release="oldstable"
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Aoldstable'   --disable-columns | column -t) ;;
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Aoldstable') ;;
     "$STABLE"|stable)
     "$STABLE"|stable)
                     release="stable"
                     release="stable"
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Astable'       --disable-columns | column -t) ;;
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Astable') ;;
     "$TESTING"|testing)
     "$TESTING"|testing)
                     release="testing"
                     release="testing"
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Atesting'     --disable-columns | column -t) ;;
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Atesting') ;;
     sid|unstable)   
     sid|unstable)   
                     release="unstable"
                     release="unstable"
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Aunstable'     --disable-columns | column -t) ;;
                     pkg=$(aptitude -F '%p %v %t' search '~S ~i !~Aunstable') ;;
  esac
  esac


Riga 1 423: Riga 1 440:
  _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
  echo "Nessun pacchetto esterno installato" >> "$log" && _error
  else
  else
  if [ "$(command -v column)" ]; then
    echo "$pkg" | column -t >> "$log" && _ok
  else
     echo "$pkg" >> "$log" && _ok
     echo "$pkg" >> "$log" && _ok
  fi
  fi
  fi
}
}
Riga 1 456: Riga 1 477:
== 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.71
:''Aggiunti "apt-mark showhold" e "dpkg -l" (solo per pacchetti con stato != ii)''
:''Gestita la mancanza di column''
:''Corretto typo "OLDOLDSTABLE" -> "$OLDOLDSTABLE"''
:''Modifiche minori''
:[[Utente:S3v|S3v]] 08:54, 10 apr 2021 (UTC)
;1.0.70
;1.0.70
:''Aggiunta oldoldstable''
:''Aggiunta oldoldstable''
6 999

contributi