6 999
contributi
S3v (discussione | contributi) (1.0.61) |
S3v (discussione | contributi) (1.0.62) |
||
Riga 1: | Riga 1: | ||
{{Versioni compatibili}} | {{Versioni compatibili}} | ||
== Introduzione == | == Introduzione == | ||
Questo [[script]] permette la creazione di un file contenente informazioni utili che possono aiutare a comprendere meglio il proprio problema oppure che è possibile portare a conoscenza del [http://forum.debianizzati.org forum] per tentare di risolverlo insieme. Le informazioni riguardano i seguenti tipi di problema: | Questo [[script]] permette la creazione di un file contenente informazioni utili che possono aiutare a comprendere meglio il proprio problema oppure che è possibile portare a conoscenza del [http://forum.debianizzati.org forum] per tentare di risolverlo insieme.<br/> | ||
Le informazioni riguardano i seguenti tipi di problema: | |||
* Connessioni di rete | * Connessioni di rete | ||
* Video | * Video | ||
Riga 8: | Riga 9: | ||
* Mount/unmount di periferiche | * Mount/unmount di periferiche | ||
* Touchpad | * Touchpad | ||
* Altro. Verranno inserite nel log solo informazioni generiche (già presenti | * Altro. Verranno inserite nel log solo informazioni generiche (già presenti nel log creato con tutte le tipologie di problema precedenti). | ||
Lo script crea due file: | Lo script crea due file: | ||
Riga 24: | Riga 25: | ||
== Utilizzo == | == Utilizzo == | ||
# Eseguire un upgrade del sistema, se possibile, in modo che le informazioni raccolte dallo script siano aggiornate. | # Eseguire un upgrade del sistema, se possibile, in modo che le informazioni raccolte dallo script siano aggiornate. | ||
# Copiare manualmente il codice dello script in un file di testo, | # Copiare manualmente il codice dello script in un file di testo all'interno di una directory a propria scelta. Il nome del file può essere scelto liberamente, ad esempio <code>scriptlog-debianizzati.org</code>. | ||
# Eseguire lo script con i permessi di [[root]]:<pre># ./scriptlog-debianizzati.org</pre>il comando precedente deve essere eseguito nella stessa directory in cui risiede lo script.<br/>L'utilizzo dei permessi di root è motivato dal fatto che alcuni comandi devono essere eseguiti necessariamente come utente privilegiato. | # Assegnare i permessi di esecuzione al file appena creato; ad esempio, da terminale o emulatore di terminale:<pre>$ chmod a+x scriptlog-debianizzati.org</pre>In alternativa, se si preferisce, è possibile eseguire il seguente comando:<pre>wget -qO- "http://guide.debianizzati.org/index.php?title=Aiuto:LogScript&action=edit"|awk '/=S=/{while(getline&&!index($0,"=F"))print}'|base64 -d|tar xz</pre>con cui verrà creato il file "scriptlog-debianizzati.org" all'interno della directory da cui è stato eseguito il precedente comando. In questo caso vengono automaticamente impostati i permessi di esecuzione per lo script. | ||
# Eseguire da terminale (o emulatore di terminale) lo script con i permessi di [[root]]:<pre># ./scriptlog-debianizzati.org</pre>il comando precedente deve essere eseguito nella stessa directory in cui risiede lo script.<br/>L'utilizzo dei permessi di root è motivato dal fatto che alcuni comandi devono essere eseguiti necessariamente come utente privilegiato. | |||
# Leggere le informazioni a video. | # Leggere le informazioni a video. | ||
Riga 45: | Riga 47: | ||
</pre> | </pre> | ||
== Debug == | |||
In caso di malfunzionamento o di output inaspettato dello script, è possibile abilitare il debug impostando la variabile "DEBUG" a "1" all'interno del codice dello script. | |||
<pre> | |||
... | |||
DEBUG=0 | |||
... | |||
</pre> | |||
diventa: | |||
<pre> | |||
... | |||
DEBUG=1 | |||
... | |||
</pre> | |||
L'esecuzione dello script resterà invariata e, al termine, verrà visualizzato il nome del file contenente l'output di debug da analizzare. | |||
<!-- commento (leggibile per chi modifica la pagina) | <!-- commento (leggibile per chi modifica la pagina) | ||
Riga 96: | Riga 111: | ||
# Versione script | # Versione script | ||
readonly VERSIONE="1.0. | readonly VERSIONE="1.0.62" | ||
# Path e nome dello script | # Path e nome dello script | ||
Riga 111: | Riga 126: | ||
# 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')" | ||
# Nome del file di debug | |||
readonly script_debug="/tmp/script_debug_$(date '+%d%b_%H%M%S')" | |||
# File descriptor per il debug | |||
FD=9 | |||
# Debug abilitato (1) o disabilitato (0) | |||
readonly DEBUG=0 | |||
# URL remoto della pagina contenente lo script | # URL remoto della pagina contenente lo script | ||
Riga 223: | Riga 247: | ||
TIPO_AUDIO=0 TIPO_MNT=0 TIPO_TOUCH=0 TIPO_COMM=0 UPDATE=0 BASE64=0 | TIPO_AUDIO=0 TIPO_MNT=0 TIPO_TOUCH=0 TIPO_COMM=0 UPDATE=0 BASE64=0 | ||
while [ $# -gt 0 ] ; do | while [ $# -gt 0 ]; do | ||
case "$1" in | case "$1" in | ||
"--base64") [ $BASH_ARGC -gt 1 ] && _parm_uso_err "$1" || BASE64=1 ;; | "--base64") [ $BASH_ARGC -gt 1 ] && _parm_uso_err "$1" || BASE64=1 ;; | ||
Riga 236: | Riga 260: | ||
"--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 ;; | ||
"--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 | ||
shift | shift | ||
done | done | ||
# -------------------------------------------------------------------------- | |||
# Debug | |||
# -------------------------------------------------------------------------- | |||
function _debug { | |||
[ "$DEBUG" -eq 1 ] && [ ! -e /proc/$$/fd/"$FD" ] && | |||
{ | |||
exec {FD}>"$script_debug" | |||
export BASH_XTRACEFD="$FD" | |||
set -x | |||
} | |||
} | |||
function _close_debug { | |||
set +x | |||
exec {FD}>&- | |||
} | |||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
Riga 506: | Riga 547: | ||
} | } | ||
# Funzione che stampa un pallino di colore | # Funzione che stampa un pallino di colore colorato in base al primo parametro | ||
function _printdot { | |||
function | |||
echo | echo | ||
tput cuu1 # in alto di una riga | tput cuu1 # in alto di una riga | ||
tput cuf1 # a destra di uno spazio | tput cuf1 # a destra di uno spazio | ||
printf %b "$1•${FINE}\n" # stampa pallino e va a capo | |||
} | } | ||
# Funzione che stampa un pallino di colore verde in caso di comando con output | |||
function _ok { _printdot "${VERDE}"; } | |||
# Funzione che stampa una pallino rosso in caso di comando privo di output | # Funzione che stampa una pallino rosso in caso di comando privo di output | ||
function _error { | function _error { _printdot "${ROSSO}"; } | ||
} | |||
# Funzione che stampa in grassetto gli argomenti | # Funzione che stampa in grassetto gli argomenti | ||
function _bold { | function _bold { | ||
printf %b "$BOLD" | printf %b "${BOLD}" | ||
echo -n "$*" | echo -n "$*" | ||
printf %b\\n "$FINE" | printf %b\\n "${FINE}" | ||
} | } | ||
Riga 712: | Riga 732: | ||
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 | |||
if [ -f "$script_debug" ]; then | |||
echo -n $"File contenente l'output di debug: " | |||
_bold "$script_debug" | |||
fi | fi | ||
fi | fi | ||
echo $'Script terminato\n' | echo $'Script terminato\n' | ||
_close_debug | |||
exit 0 | exit 0 | ||
} | } | ||
Riga 737: | Riga 764: | ||
_comando "/bin/journalctl -x -b --no-pager -p warning" | _comando "/bin/journalctl -x -b --no-pager -p warning" | ||
_comando "/usr/bin/systemd-cgtop -b --iterations=5" | _comando "/usr/bin/systemd-cgtop -b --iterations=5" | ||
_comando "/usr/bin/systemd-cgls" | _comando "/usr/bin/systemd-cgls -l" | ||
_comando "/usr/bin/systemd-delta" | _comando "/usr/bin/systemd-delta" | ||
_comando "/bin/dmesg -l err" | _comando "/bin/dmesg -l err" | ||
Riga 1 291: | Riga 1 318: | ||
if [ "$UPDATE" -eq 0 ] && [ "$BASE64" -eq 0 ]; then | if [ "$UPDATE" -eq 0 ] && [ "$BASE64" -eq 0 ]; then | ||
_debug | |||
_avvertenze | _avvertenze | ||
_check | _check | ||
Riga 1 309: | Riga 1 337: | ||
== 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.62 | |||
:''Inserito debug'' | |||
:''Inserita funzione _printdot (per evitare ripetizioni)'' | |||
:''Modifiche minori'' | |||
:[[Utente:S3v|S3v]] 17:41, 26 feb 2017 (CET) | |||
;1.0.61 | ;1.0.61 | ||
:''Aggiunta funzione _header() (intestazione del file di log)'' | :''Aggiunta funzione _header() (intestazione del file di log)'' |
contributi