6 999
contributi
S3v (discussione | contributi) (1.0.51) |
S3v (discussione | contributi) (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. | 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 | 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; /^</ ! {s/\&/\&/g; s/\</</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 | |||
echo -n $'\nFile contenente il log dello script: ' | |||
_bold "$log" | |||
else | |||
echo $'\nNon è stato creato un file di log' | |||
fi | |||
if [ -f "${log}.bz2" ]; then | |||
complog="${log}.bz2" | |||
elif [ -f "${log}.zip" ]; then | |||
complog="${log}.zip" | |||
elif [ -f "${log}.tgz" ]; then | |||
complog="${log}.tgz" | |||
fi | |||
if [ -z "$complog" ]; then | |||
echo "Non è stato creato un file compresso del log" | |||
else | |||
echo -n "File compresso da allegare alla discussione sul forum: " | |||
_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]]",'' |
contributi