6 999
contributi
S3v (discussione | contributi) (1.0.35) |
|||
Riga 31: | Riga 31: | ||
<pre> | <pre> | ||
#!/bin/bash | #!/bin/bash | ||
# Codename per stable e testing. Da modificare nei successivi rilasci di Debian | |||
STABLE="wheezy" | |||
TESTING="jessie" | |||
# Path dei comandi dello script | # Path dei comandi dello script | ||
Riga 50: | Riga 54: | ||
# Codici stile carattere | # Codici stile carattere | ||
ROSSO="\033[01;31m" # colore rosso | ROSSO="\033[01;31m" # colore rosso e grassetto | ||
VERDE="\033[01;32m" # colore verde | VERDE="\033[01;32m" # colore verde e grassetto | ||
BOLD="\033[01m" | BOLD="\033[01m" # grassetto | ||
FINE="\033[0m" | FINE="\033[0m" # reset | ||
Riga 67: | Riga 71: | ||
* * | * * | ||
* 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.35 * | ||
* * | * * | ||
*********************************************************************************" | *********************************************************************************" | ||
Riga 217: | Riga 221: | ||
# -------------------------------------------------------------------------- | # -------------------------------------------------------------------------- | ||
# Funzione richiamata in caso di corretta creazione del file compresso | # Funzione richiamata in caso di corretta/scorretta creazione del file compresso | ||
function _compress_ok { | function _compress_ok { | ||
echo "File compresso creato correttamente nella directory corrente." | |||
} | } | ||
function _compress_err { | function _compress_err { | ||
echo "Errore nella creazione del file compresso." | |||
} | } | ||
Riga 276: | Riga 279: | ||
read num | read num | ||
case $num in | case $num in | ||
[1-7]) _wait ;;& # ;;& -> va alla successiva occorrenza del carattere immesso | |||
1) echo -e "### Problemi di rete ###\n" > $log && _rete ;;& | |||
2) echo -e "### Problemi video ###\n" > $log && _video ;;& | |||
3) echo -e "### Problemi audio ###\n" > $log && _audio ;;& | |||
4) echo -e "### Problemi APT ###\n" > $log && _apt ;;& | |||
5) echo -e "### Problemi mount-unmount ###\n" > $log && _mount ;;& | |||
6) echo -e "### Problemi touchpad ###\n" > $log && _tpad ;;& | |||
7) echo -e "### Solo informazioni generiche ###\n" > $log && _common ;;& | |||
[1-7]) break ;; # Termina il ciclo 'while' | |||
0) _exit ;; # È stato inserito '0' . Uscita dallo script | 0) _exit ;; # È stato inserito '0' . Uscita dallo script | ||
*) # Tutti gli altri caratteri. Cancella l'input immesso e ripete la domanda | *) # Tutti gli altri caratteri. Cancella l'input immesso e ripete la domanda | ||
Riga 330: | Riga 333: | ||
function _hide { | function _hide { | ||
# Sostituisce il nome utente e il nome host con 'nomeutente' e 'nomehost' | # Sostituisce il nome utente e il nome host con 'nomeutente' e 'nomehost' se diversi da [dD]ebian | ||
sed -i -e "s/$nomehost/nomehost/g" -e "s/$utente/nomeutente/g" $log | [ "$nomehost" != "Debian" -a "$nomehost" != "debian" ] && sed -i -e "s/$nomehost/nomehost/g" $log | ||
[ "$utente" != "Debian" -a "$utente" != "debian" ] && sed -i -e "s/$utente/nomeutente/g" $log | |||
# Nasconde gli ESSID gestiti attraverso Network Manager | # Nasconde gli ESSID gestiti attraverso Network Manager | ||
local var file mydir="/etc/NetworkManager/system-connections/" | local var file mydir="/etc/NetworkManager/system-connections/" | ||
if [ -d $mydir ]; then # se esiste la directory /etc/NetworkManager/system- | if [ -d $mydir ]; then # se esiste la directory /etc/NetworkManager/system-connections/ ... | ||
for file in $mydir/*; do # ciclo attraverso il contenuto della directory | for file in $mydir/*; do # ciclo attraverso il contenuto della directory | ||
if [ -f "$file" ]; then # se l'elemento è un file... | if [ -f "$file" ]; then # se l'elemento è un file... | ||
Riga 352: | Riga 356: | ||
# Stabilisce la data dell'ultimo aggiornamento effettuato. Viene preso in | # Stabilisce la data dell'ultimo aggiornamento effettuato. Viene preso in | ||
# considerazione il file /var/log/apt/history.log | # considerazione il file /var/log/apt/history.log oppure il file /var/log/apt/history.log.1,gz | ||
function _lastupd { | function _lastupd { | ||
local convdate lastdate file=/var/log/apt/history.log | local convdate lastdate file=/var/log/apt/history.log | ||
if [ -f "$file" ]; then | if [ -f "$file" -a -f "$file.1.gz" ]; then | ||
lastdate=`sed -n '/^Start-Date/h ; $p' $file | awk '{print $2}'` | lastdate=`sed -n '/^Start-Date/h ; $p' $file | awk '{print $2}'` | ||
# se il file history.log non contiene la data dell'ultimo aggiornamento, viene utilizzato history.log.1.gz | |||
[ -z "$lastdate" ] && lastdate=`zcat $file.1.gz | sed -n '/^Start-Date/h ; $p' | awk '{print $2}'` | |||
# variabile che contiene la data in formato "giorno mese anno" | # variabile che contiene la data in formato "giorno mese anno" | ||
convdate=`date +%d\ %B\ %Y -d "$lastdate"` | convdate=`date +%d\ %B\ %Y -d "$lastdate"` | ||
Riga 514: | Riga 521: | ||
} | } | ||
# Funzione relativa a problemi di mount/ | # Funzione relativa a problemi di mount/unmount | ||
function _mount { | function _mount { | ||
_common | _common | ||
Riga 699: | Riga 706: | ||
echo "$2 è installato (versione "$vers")" >> $log && _ok "$2" | echo "$2 è installato (versione "$vers")" >> $log && _ok "$2" | ||
invoke-rc.d "$var" status &>/dev/null | invoke-rc.d "$var" status &>/dev/null | ||
[ $? -eq 0 ] && echo "$2 è in esecuzione" >> $log || echo "$2 non è in esecuzione" >> $log | |||
else | else | ||
echo "$2 non è installato" >> $log && _error "$2" | echo "$2 non è installato" >> $log && _error "$2" | ||
Riga 757: | Riga 760: | ||
fi | fi | ||
} | } | ||
# Funzione che elenca i pacchetti non appartenenti alla release di default utilizzata | # Funzione che elenca i pacchetti non appartenenti alla release di default utilizzata | ||
Riga 800: | Riga 768: | ||
# "deb http://ftp.XX.debian.org" e che *non* contengono un nome di release. | # "deb http://ftp.XX.debian.org" e che *non* contengono un nome di release. | ||
# Con "cut" viene prelevato il terzo campo (la release voluta) | # Con "cut" viene prelevato il terzo campo (la release voluta) | ||
local release=`sed -e 's/^ *//' -e '/^deb http:\/\/ftp\...\.debian\.org.*\( | local release=`sed -e 's/^ *//' -e '/^deb http:\/\/ftp\...\.debian\.org.*\('$STABLE' \|stable \|'$TESTING' \|testing \|sid \|unstable \)/!d' /etc/apt/sources.list | cut -d ' ' -f3` | ||
# Numero di release trovate | # Numero di release trovate | ||
Riga 818: | Riga 786: | ||
# Se il numero di release è uguale a 1, la variabile pkg conterrà i pacchetti *non* facenti parte della release | # Se il numero di release è uguale a 1, la variabile pkg conterrà i pacchetti *non* facenti parte della release | ||
case $release in | case $release in | ||
$STABLE|stable) | |||
release="stable" | |||
pkg=`aptitude -F '%p %v %t' search '~i !~Astable' --disable-columns | column -t` ;; | |||
$TESTING|testing) | |||
release="testing" | |||
pkg=`aptitude -F '%p %v %t' search '~i !~Atesting' --disable-columns | column -t` ;; | |||
sid|unstable) | sid|unstable) | ||
release="unstable" | |||
pkg=`aptitude -F '%p %v %t' search '~i !~Aunstable' --disable-columns | column -t` ;; | |||
esac | esac | ||
# Invia al log il contenuto di pkg (se esiste) | # Invia al log il contenuto di pkg (se esiste) | ||
nome_e_riga "$var all'archivio \"$release\"" | nome_e_riga "$var all'archivio \"$release\"" | ||
[ -z "$pkg" ]; then | |||
echo "Nessun pacchetto esterno installato" >> $log && _error "$var" | echo "Nessun pacchetto esterno installato" >> $log && _error "$var" | ||
else | else | ||
echo "$pkg" >> $log && _ok $var | |||
fi | fi | ||
} | } | ||
Riga 856: | Riga 824: | ||
== 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.35 | |||
:''All'inizio del log viene visualizzato il tipo di problema scelto'' | |||
:''Non vengono nascosti il nome utente e il nome host se uguali a [Dd]ebian | |||
:''La data dell'ultimo aggiornamento viene prelevata da <code>history.log.1.gz</code>'' | |||
:''se non contenuta in <code>history.log</code>'' | |||
:''Rimossa la funzione <code>_extpack_supp</code> (lentissima)'' | |||
:''Modifiche minori'' | |||
:[[Utente:S3v|S3v]] 13:00, 4 lug 2014 (CEST) | |||
:'' | |||
;1.0.34 | ;1.0.34 | ||
:''Corretta la variabile contenente spazi'' | :''Corretta la variabile contenente spazi'' |
contributi