Creazione automatica di un file di log per inviare quesiti al forum: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
S3v (discussione | contributi) (1.0.60) |
S3v (discussione | contributi) (1.0.61) |
||
Riga 30: | Riga 30: | ||
== Parametri dello script == | == Parametri dello script == | ||
Lo script accetta, in maniera facoltativa, alcuni parametri: | Lo script accetta, in maniera facoltativa, alcuni parametri: | ||
;--tipo={rete|video|audio|apt|mount|touchpad|generico}:specifica il tipo di problema | ;--tipo={rete|video|audio|apt|mount|touchpad|generico}:specifica il tipo di problema | ||
;--nocompress:non crea il file compresso del file di log | ;--nocompress:non crea il file compresso del file di log | ||
;--nopaste:non invia il file di log a paste.debian.net | ;--nopaste:non invia il file di log a paste.debian.net | ||
;--update:aggiorna lo script se esiste una versione recente | ;--update:aggiorna lo script se esiste una versione recente | ||
;--base64:crea un file contenente la codifica base64 dello script | ;--base64:crea un file contenente la codifica base64 dello script | ||
;--versione:visualizza la versione dello script | |||
;--help:visualizza informazioni sull'utilizzo dei parametri | ;--help:visualizza informazioni sull'utilizzo dei parametri | ||
'''Esempi:''' | |||
<pre> | |||
# ./scriptlog-debianizzati.org --tipo=rete | |||
# ./scriptlog-debianizzati.org --tipo=apt --nocompress --nopaste | |||
# ./scriptlog-debianizzati.org --versione | |||
</pre> | |||
<!-- commento (leggibile per chi modifica la pagina) | <!-- commento (leggibile per chi modifica la pagina) | ||
Riga 87: | Riga 96: | ||
# Versione script | # Versione script | ||
readonly VERSIONE="1.0. | readonly VERSIONE="1.0.61" | ||
# Path e nome dello script | # Path e nome dello script | ||
Riga 171: | Riga 180: | ||
# 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 | echo "Il parametro $1 non deve essere accompagnato da altri parametri" && _parm_uso | ||
} | } | ||
Riga 194: | Riga 203: | ||
$BOLD--base64$FINE | $BOLD--base64$FINE | ||
viene creato un file con la codifica base64 dello script | viene creato un file con la codifica base64 dello script | ||
$BOLD--versione$FINE | |||
visualizza la versione dello script in esecuzione | |||
$BOLD--help$FINE | $BOLD--help$FINE | ||
Riga 199: | Riga 211: | ||
" && exit | " && exit | ||
} | |||
# Visualizza la versione corrente dello script | |||
function _showvers { | |||
echo "$VERSIONE" && exit | |||
} | } | ||
Riga 219: | Riga 236: | ||
"--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 | "--versione") [ $BASH_ARGC -gt 1 ] && _parm_uso_err "$1" || _showvers ;; | ||
"--help") [ $BASH_ARGC -gt 1 ] && _parm_uso_err "$1" || _parm_uso ;; | |||
*) _parm_err | *) _parm_err | ||
esac | esac | ||
Riga 434: | Riga 452: | ||
# Problemi selezionati in base al parametro passato allo script | # Problemi selezionati in base al parametro passato allo script | ||
[ "$TIPO_RETE" -eq 1 ] && _wait && | [ "$TIPO_RETE" -eq 1 ] && _wait && _header "rete" && _rete && return | ||
[ "$TIPO_VIDEO" -eq 1 ] && _wait && | [ "$TIPO_VIDEO" -eq 1 ] && _wait && _header "video" && _video && return | ||
[ "$TIPO_AUDIO" -eq 1 ] && _wait && | [ "$TIPO_AUDIO" -eq 1 ] && _wait && _header "audio" && _audio && return | ||
[ "$TIPO_APT" -eq 1 ] && _wait && | [ "$TIPO_APT" -eq 1 ] && _wait && _header "APT" && _apt && return | ||
[ "$TIPO_MNT" -eq 1 ] && _wait && | [ "$TIPO_MNT" -eq 1 ] && _wait && _header "mount-unmount" && _mount && return | ||
[ "$TIPO_TOUCH" -eq 1 ] && _wait && | [ "$TIPO_TOUCH" -eq 1 ] && _wait && _header "touchpad" && _tpad && return | ||
[ "$TIPO_COMM" -eq 1 ] && _wait && | [ "$TIPO_COMM" -eq 1 ] && _wait && _header "generico" && _common && return | ||
# La funzione presenta un menù di scelta nel caso non sia stato passato alcun parametro | # La funzione presenta un menù di scelta nel caso non sia stato passato alcun parametro | ||
Riga 463: | Riga 481: | ||
case "$num" in | case "$num" in | ||
[1-7]) _wait ;;& # ;;& -> va alla successiva occorrenza del carattere immesso | [1-7]) _wait ;;& # ;;& -> va alla successiva occorrenza del carattere immesso | ||
1) | 1) _header "rete" && _rete ;;& | ||
2) | 2) _header "video" && _video ;;& | ||
3) | 3) _header "audio" && _audio ;;& | ||
4) | 4) _header "APT" && _apt ;;& | ||
5) | 5) _header "mount-unmount" && _mount ;;& | ||
6) | 6) _header "touchpad" && _tpad ;;& | ||
7) | 7) _header "generico" && _common ;;& | ||
[1-7]) break ;; # Termina il ciclo 'while' | [1-7]) break ;; # Termina il ciclo 'while' | ||
0) _exit ;; # È stato inserito '0' . Uscita dallo script | 0) _exit ;; # È stato inserito '0' . Uscita dallo script | ||
Riga 539: | Riga 557: | ||
} | } | ||
# Funzione che stampa un messaggio di attesa | # Funzione che stampa un messaggio di attesa | ||
function _wait { | function _wait { | ||
echo $'\nCreazione del log in corso...\n' | echo $'\nCreazione del log in corso...\n' | ||
} | |||
# Intestazione del file di log | |||
function _header { | |||
echo "Tipo di problema: $1" >> "$log" | |||
_data | |||
_lastupd | |||
echo "Versione script: "$VERSIONE"" >> "$log" | |||
} | } | ||
# Stampa la data corrente nel file di log | # Stampa la data corrente nel file di log | ||
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" | ||
} | } | ||
Riga 575: | Riga 601: | ||
fi | fi | ||
# Nasconde nel log | # Nasconde nel log 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" | ||
sed -i -r "s/(NetworkManager.*keyfile: new connection.*system-connections\/)(.*)( \(.*,\").*(\"\))/\1\*script-removed\*\3\*script-removed\*\4/g" "$log" | sed -i -r "s/(NetworkManager.*keyfile: new connection.*system-connections\/)(.*)( \(.*,\").*(\"\))/\1\*script-removed\*\3\*script-removed\*\4/g" "$log" | ||
sed -i -r "s/(NetworkManager.*policy: auto-activating connection ').*(')/\1\*script-removed\*\2/g" "$log" | sed -i -r "s/(NetworkManager.*policy: auto-activating connection ').*(')/\1\*script-removed\*\2/g" "$log" | ||
sed -i -r "s/(NetworkManager.*Activation: starting connection ').*(' | sed -i -r "s/(NetworkManager.*Activation: starting connection ').*(')/\1\*script-removed\*\2/g" "$log" | ||
sed -i -r "s/(NetworkManager.*policy: set ').*(' | sed -i -r "s/(NetworkManager.*policy: set ').*(')/\1\*script-removed\*\2/g" "$log" | ||
} | } | ||
Riga 596: | Riga 622: | ||
convdate=$(date -d "$lastdate" '+%d %B %Y') | convdate=$(date -d "$lastdate" '+%d %B %Y') | ||
echo $ | echo $"Ultimo aggiornamento del sistema: ${convdate}" >> "$log" | ||
fi | fi | ||
} | } | ||
Riga 699: | Riga 725: | ||
# Informazioni comuni a tutti i tipi di problema | # Informazioni comuni a tutti i tipi di problema | ||
function _common { | function _common { | ||
_dmi_decode | _dmi_decode | ||
_comando "/bin/uname -a" | _comando "/bin/uname -a" | ||
Riga 974: | Riga 998: | ||
fi | fi | ||
local file | local file | ||
# numfile contiene il numero di file contenuti nella directory. Solo primo livello. | # numfile contiene il numero di file contenuti nella directory. Solo primo livello. | ||
Riga 984: | Riga 1 007: | ||
echo "La directory non contiene file o directory" >> "$log" && _error | echo "La directory non contiene file o directory" >> "$log" && _error | ||
else | else | ||
echo "La directory contiene ${numfile} file e $(($numdir - 1)) directory" >> "$log" | echo "La directory contiene ${numfile} file e $(($numdir - 1)) directory" >> "$log" && _ok | ||
ls -al "$1" >> "$log" | ls -al "$1" >> "$log" | ||
# invia al log il contenuto dei file della directory | # invia al log il contenuto dei file della directory | ||
Riga 1 286: | Riga 1 309: | ||
== 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.61 | |||
:''Aggiunta funzione _header() (intestazione del file di log)'' | |||
:''Aggiunto parametro "--versione"'' | |||
:''Modifiche e correzioni minori'' | |||
:[[Utente:S3v|S3v]] 13:53, 10 dic 2016 (CET) | |||
;1.0.60 | ;1.0.60 | ||
:''Elenco ricorsivo delle directory contenenti firmware'' | :''Elenco ricorsivo delle directory contenenti firmware'' |