6 999
contributi
S3v (discussione | contributi) (1.0.11) |
S3v (discussione | contributi) (1.0.12) |
||
Riga 26: | Riga 26: | ||
<pre> | <pre> | ||
#!/bin/bash | #!/bin/bash | ||
# Path dei comandi dello script | |||
PATH=/bin:/sbin:/usr/bin:/usr/sbin | |||
# Nome del file di log | # Nome del file di log | ||
Riga 39: | Riga 42: | ||
# Funzione che stampa il messaggio introduttivo | # Funzione che stampa il messaggio introduttivo | ||
function _intro { | function _intro { | ||
echo " | |||
********************************************************************************* | ********************************************************************************* | ||
* www.debianizzati.org * | * www.debianizzati.org * | ||
* * | * * | ||
* Script che crea un log utile alla risoluzione dei problemi più comuni * | * Script che crea un log utile alla risoluzione dei problemi più comuni * | ||
* Versione 1.0. | * Versione 1.0.12 * | ||
* * | * * | ||
********************************************************************************* | *********************************************************************************" | ||
} | } | ||
Riga 53: | Riga 55: | ||
function _avvertenze { | function _avvertenze { | ||
local risp | local risp | ||
echo " | |||
-- Lo script richiede i permessi di root per essere eseguito | -- Lo script richiede i permessi di root per essere eseguito | ||
-- Per inviare il log su paste.debian.net è necessario il pacchetto 'pastebinit' | -- Per inviare il log su paste.debian.net è necessario il pacchetto 'pastebinit' | ||
-- L'invio del log a paste.debian.net avverrà solo dopo esplicito consenso | -- L'invio del log a paste.debian.net avverrà solo dopo esplicito consenso | ||
-- Verrà creato un file ($log) contenente l'output di questo script | -- Verrà creato un file ($log) contenente l'output di questo script | ||
-- Verrà creato un file in formato compresso da inviare al forum | -- Verrà creato un file in formato compresso da inviare al forum" | ||
echo -n "Continuare [S/n]? " | echo -n "Continuare [S/n]? " | ||
read risp | read risp | ||
Riga 134: | Riga 135: | ||
if [ -f $chunkfile ]; then | if [ -f $chunkfile ]; then | ||
# invia dati tramite pastebinit | |||
pastelink="$(pastebinit -a '' -b $paste_url -i $chunkfile)" | |||
if [ $? = 0 ]; then | |||
# invio apparentemente riuscito (pastebinit exit status = 0) | |||
# controlla URL restituita da pastebinit | |||
case $pastelink in | |||
# verifica in caso di url corretta | |||
"$paste_url"/[0-9]*) | |||
echo ".. inviato $chunkfile all'indirizzo $pastelink" | |||
;; | |||
# verifica in caso di url non corretta | |||
*) | |||
echo ".. $paste_url ha restituito una URL non valida ($pastelink) per $chunkfile!" | |||
paste_exit_status=1 | |||
;; | |||
esac | |||
else | |||
# Invio fallito (pastebinit exit status = 1) | |||
echo ".. non riuscito invio $chunkfile" | |||
paste_exit_status=1 | |||
fi | fi | ||
fi | fi | ||
Riga 187: | Riga 188: | ||
_split_and_send | _split_and_send | ||
if [ $? == 0 ]; then | if [ $? == 0 ]; then | ||
echo -e "\nIl log è stato inviato" | |||
else | else | ||
echo -e "\nSi sono verificati errori nell'invio del log!" | |||
fi | fi | ||
;; | ;; | ||
Riga 236: | Riga 237: | ||
} | } | ||
# -------------------------------------------------------------------------- | |||
# Funzione di stampa menù e selezione del problema | |||
# -------------------------------------------------------------------------- | |||
function _scelta { | |||
local num | |||
echo " | |||
Selezionare il tipo di problema per il quale verrà generato il file di log | |||
[1] Tutti | |||
[0] Uscita" | |||
while true; do | |||
echo -n "Scegliere il numero corrispondente: " | |||
read num | |||
case $num in | |||
1) | |||
_wait | |||
_tutti | |||
break | |||
;; | |||
0) | |||
exit 1 | |||
;; | |||
*) | |||
tput cuu1 # in alto di una riga | |||
tput ed # cancella fino alla fine dello schermo | |||
;; | |||
esac | |||
done | |||
} | |||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
Riga 249: | Riga 281: | ||
# Funzione che stampa un pallino di colore verde in caso di comando con output | # Funzione che stampa un pallino di colore verde in caso di comando con output | ||
function _ok { | function _ok { | ||
echo -e " $1" "\033[35G\033[01;32m•\033[0m" | |||
} | } | ||
# 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 { | ||
echo -e " $1" "\033[35G\033[01;31m•\033[0m" | |||
} | } | ||
Riga 261: | Riga 293: | ||
# parametro della funzione -> $1 ) | # parametro della funzione -> $1 ) | ||
function nome_e_riga { | function nome_e_riga { | ||
echo " | |||
****************************************** | ****************************************** | ||
$1 | $1 | ||
****************************************** | ******************************************" >> $log | ||
} | } | ||
Riga 276: | Riga 307: | ||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
# | # Funzioni reltive a ciascun problema selezionato | ||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
function _tutti { | |||
_dmi_decode | _dmi_decode | ||
_comando "/bin/uname -a" | |||
_file "/etc/debian_version" | |||
_file "/var/log/syslog.1" | |||
_file "/var/log/syslog" | |||
_comando "/bin/lsmod" | |||
_comando "/usr/bin/lspci -knn" | |||
_comando "/usr/bin/lsusb" | |||
_comando "/sbin/fdisk -l" | |||
_file "/etc/fstab" | |||
_comando "/bin/mount" | |||
_comando "/bin/df" | |||
_file "/var/log/Xorg.0.log" | |||
_file "/etc/apt/sources.list" | |||
_comando "/usr/bin/apt-cache policy" | |||
_comando "/usr/bin/apt-cache stats" | |||
_comando "/usr/bin/apt-get check" | |||
_file "/etc/network/interfaces" | |||
_file "/etc/hosts" | |||
_comando "/sbin/ifconfig" | |||
_comando "/sbin/ifconfig -a" | |||
_comando "/bin/ping -c3 8.8.8.8" | |||
_comando "/bin/ip addr" | |||
_comando "/bin/ip route list" | |||
_iwconfig | _iwconfig | ||
_iwlist | _iwlist | ||
_comando "/sbin/route -n" | |||
_resolvconf | _resolvconf | ||
_file "/etc/resolv.conf" | |||
_firmware | _firmware | ||
_dhcp | _dhcp | ||
_file "/etc/dhclient.conf" | |||
_nm | _nm | ||
_wicd | _wicd | ||
} | |||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
# Funzioni | # Funzioni che si occupano di inviare l'output di un comando oppure il | ||
# contenuto di un file al file di log | |||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
# Funzione che invia un file al file di log | |||
# La funzione va richiamata specificando il path completo del file che | |||
# sarà assegnato a $1 | |||
function _file { | |||
nome_e_riga $1 | |||
if [ -f $1 ]; then | |||
cat $1 &>> $log && _ok $1 || _error $1 | |||
else | |||
echo "File $1 non trovato" >> $log && _error $1 | |||
fi | |||
} | |||
# Invia l'output di un comando al file di log | |||
# La funzione va richiamata specificando il path completo del comando | |||
# (con eventuali opzioni) che sarà assegnato a $1 | |||
function _comando { | |||
local var=${1##*/} #var conterrà il comando con le opzioni ma privo del path | |||
local var2=${1%% *} #var2 conterrà il comando privo di eventuali opzioni ma con il path | |||
nome_e_riga "$var" | |||
if [ -f "$var2" ]; then | |||
$1 &>> $log && _ok "$var" || _error "$var" | |||
else | |||
echo "Comando $var2 non trovato" >> $log && _error "$var" | |||
fi | |||
} | |||
# comando 'cat /sys/class/dmi/id/{sys_vendor,product_name,product_version,bios_version}' | # comando 'cat /sys/class/dmi/id/{sys_vendor,product_name,product_version,bios_version}' | ||
Riga 335: | Riga 390: | ||
else | else | ||
echo "File /sys/class/dmi/id/sys_vendor non trovato" >> $log && _error "$var" | echo "File /sys/class/dmi/id/sys_vendor non trovato" >> $log && _error "$var" | ||
fi | fi | ||
} | } | ||
Riga 577: | Riga 399: | ||
nome_e_riga "$var" | nome_e_riga "$var" | ||
if [ -x /sbin/iwconfig ]; then | if [ -x /sbin/iwconfig ]; then | ||
iwconfig > $tmpfile 2>&1 | |||
if [ $? = 0 ]; then | if [ $? = 0 ]; then | ||
_ok "$var" | _ok "$var" | ||
sed -e 's/ESSID:.*/ESSID:"*script-removed*"/g' -e '/^[ ]*IE: Unknown:.*/d' $tmpfile &>> $log | |||
else | else | ||
_error "$var" | _error "$var" | ||
Riga 596: | Riga 418: | ||
nome_e_riga "$var" | nome_e_riga "$var" | ||
if [ -x /sbin/iwlist ]; then | if [ -x /sbin/iwlist ]; then | ||
iwlist scan > $tmpfile 2>&1 | |||
if [ $? = 0 ]; then | if [ $? = 0 ]; then | ||
_ok "$var" | _ok "$var" | ||
sed -e 's/ESSID:.*/ESSID:"*script-removed*"/g' -e '/^[ ]*IE: Unknown:.*/d' $tmpfile &>> $log | |||
else | else | ||
_error "$var" | _error "$var" | ||
Riga 607: | Riga 429: | ||
fi | fi | ||
rm $tmpfile | rm $tmpfile | ||
} | } | ||
Riga 683: | Riga 468: | ||
else | else | ||
dpkg -l | grep -i dhcp >> $log && _ok "$var" | dpkg -l | grep -i dhcp >> $log && _ok "$var" | ||
fi | fi | ||
} | } | ||
Riga 741: | Riga 515: | ||
_avvertenze | _avvertenze | ||
_check | _check | ||
_scelta | |||
_upload | _upload | ||
_compress | _compress | ||
Riga 759: | Riga 524: | ||
== Changelog == | == Changelog == | ||
<!-- Qui vanno inserite le spiegazioni di eventuali modifiche dello script (chi, cosa, quando). Ricordarsi di modificare la 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 all'interno del codice (la versione iniziale è 1.0.0) --> | ||
;1.0.12 | |||
:''Inserito il path di default'' | |||
:''Sostituito il comando cat con echo nei messaggi a video'' | |||
:''Inserito un menù di scelta e rimosso l'array delle funzioni'' | |||
:''Inserite due funzioni per inviare al log un file o un output generico'' | |||
:''lspci -knn'' | |||
:''Rimossa _dmesg (l'ouput è fornito da syslog)'' | |||
:[[Utente:S3v|S3v]] 15:25, 23 mag 2013 (CEST) | |||
;1.0.11 | ;1.0.11 | ||
:''Modificata la funzione _wicd'' | :''Modificata la funzione _wicd'' |
contributi