6 999
contributi
S3v (discussione | contributi) (disabilitato comando "nmcli device show") |
S3v (discussione | contributi) (1.0.55) |
||
Riga 33: | Riga 33: | ||
;--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 | |||
;--base64:crea un file contenente la codifica base64 dello script | |||
;--help:visualizza informazioni sull'utilizzo dei parametri | ;--help:visualizza informazioni sull'utilizzo dei parametri | ||
Riga 85: | Riga 87: | ||
# Versione script | # Versione script | ||
readonly VERSIONE="1.0. | readonly VERSIONE="1.0.55" | ||
# 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 97: | Riga 102: | ||
# 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" | |||
# URL remoto della pagina contenente lo script codificato in base64 | |||
readonly SCRIPTURL_BASE64="http://guide.debianizzati.org/index.php?title=Aiuto:LogScript&action=edit" | |||
# nome utente | # nome utente | ||
Riga 177: | Riga 188: | ||
$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--base64$FINE | |||
viene creato un file con la codifica base64 dello script | |||
$BOLD--help$FINE | $BOLD--help$FINE | ||
Riga 187: | Riga 204: | ||
# 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 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 ;; | |||
"--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 570: | Riga 589: | ||
echo $'\n'"Ultimo aggiornamento del sistema: ${convdate}" >> "$log" | echo $'\n'"Ultimo aggiornamento del sistema: ${convdate}" >> "$log" | ||
fi | 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 "È disponibile 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 in formato base64 viene copiato nel file temporaneo | |||
wget -q -O- "$SCRIPTURL_BASE64" | sed -n "/^=S=/{n; :a /^==Fine/ ! {p; n; ba}}" | base64 -d | tar xz -O > "$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 | |||
} | |||
# funzione che crea un file con la codifica base64 dello script | |||
# Da utilizzare in caso di aggiornamenti per modificare la pagina | |||
# http://guide.debianizzati.org/Aiuto:LogScript | |||
function _base64 { | |||
echo -n "Verrà creato un file con la codifica base64 di questo script. Continuare [S/n]? " | |||
local risp | |||
read risp | |||
[ "$risp" != "" ] && [ "$risp" != "s" ] && [ "$risp" != "S" ] && _exit || | |||
local tempfile="$(mktemp)" # crea un file temporaneo | |||
tar cf - "${BASH_SOURCE[0]}" | gzip -9 | base64 > "$tempfile" | |||
if [ $? -eq 0 ]; then | |||
echo -n "Il file contenente la codifica base64 di questo script è " && _bold "$tempfile" | |||
else | |||
echo "Codifica non riuscita" | |||
fi | |||
} | } | ||
Riga 575: | Riga 653: | ||
function _exit { | function _exit { | ||
local complog="" | # se è stato effettuato un update o una codifica base64 stampa solo il messaggio finale | ||
if [ "$UPDATE" -eq 0 ] && [ "$BASE64" -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}.xz" ]; then | |||
complog="${log}.xz" | |||
elif [ -f "${log}.bz2" ]; then | |||
complog="${log}.bz2" | |||
elif [ -f "${log}.gz" ]; then | |||
complog="${log}.gz" | |||
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 | ||
Riga 666: | Riga 747: | ||
_file "/etc/NetworkManager/NetworkManager.conf" | _file "/etc/NetworkManager/NetworkManager.conf" | ||
_comando "/usr/bin/nmcli dev list" | _comando "/usr/bin/nmcli dev list" | ||
_comando "/usr/bin/nmcli device show" | |||
_demone "/usr/sbin/NetworkManager" "Network Manager" | _demone "/usr/sbin/NetworkManager" "Network Manager" | ||
_demone "/usr/sbin/wicd" "Wicd" | _demone "/usr/sbin/wicd" "Wicd" | ||
Riga 855: | Riga 936: | ||
# nasconde gli ESSID visualizzati da "nmcli device show" (solo per Jessie e superiori) | # nasconde gli ESSID visualizzati da "nmcli device show" (solo per Jessie e superiori) | ||
"/usr/bin/nmcli device show") | "/usr/bin/nmcli device show") | ||
nmcli device show 2>/dev/null | sed -r "s/(^AP[[:digit:]]*\.SSID:[[: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" >> "$log" ) ;; | ( _error && echo "Comando valido solo per Jessie" >> "$log" ) ;; | ||
/bin/dmesg*) | /bin/dmesg*) | ||
Riga 1 126: | Riga 1 207: | ||
fi | fi | ||
# Rimuove eventuali duplicati (esistono repository doppi in sources.list) | |||
release="$(echo "$release" | sort -u)" | |||
# Numero di release trovate | # Numero di release trovate | ||
local num=$(echo "$release" | local num=$(echo "$release" | wc -l) | ||
# Se il numero di release è diverso da 1, la funzione termina | # Se il numero di release è diverso da 1, la funzione termina | ||
Riga 1 167: | Riga 1 251: | ||
# Main | # Main | ||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
clear | clear | ||
_intro | _intro | ||
_avvertenze | |||
_check | if [ "$UPDATE" -eq 0 ] && [ "$BASE64" -eq 0 ]; then | ||
_scelta | _avvertenze | ||
_hide | _check | ||
_upload | _scelta | ||
_compress | _hide | ||
_upload | |||
_compress | |||
elif [ "$UPDATE" -eq 1 ]; then | |||
_self_update | |||
elif [ "$BASE64" -eq 1 ]; then | |||
_base64 | |||
fi | |||
_exit | _exit | ||
Riga 1 183: | Riga 1 274: | ||
== 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.55 | |||
:'''Opzioni per aggiornare lo script o crearne una codifica base64''' | |||
:'''Corretti ESSID in "nmcli device show" non nascosti''' | |||
:'''Rimozione duplicati in "release" (pacchetti esterni)''' | |||
:[[Utente:S3v|S3v]] 21:26, 15 giu 2015 (CEST) | |||
;1.0.54 | ;1.0.54 | ||
:''Correzioni minori legate alla compressione xz; semplificata lettura nome utente in caso di errori con logname'' | :''Correzioni minori legate alla compressione xz; semplificata lettura nome utente in caso di errori con logname'' |
contributi