Creazione automatica di un file di log per inviare quesiti al forum: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
1.0.65
m (task #30)
(1.0.65)
(12 versioni intermedie di 3 utenti non mostrate)
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 nei log creato con tutte le tipologie di problema precedenti).
* 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, per esempio con nome <code>scriptlog-debianizzati.org</code> e dargli permessi di esecuzione (<code>chmod a+x scriptlog-debianizzati.org</code>).<br/>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>
# 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.


== Parametri dello script ==
== Parametri dello script ==
Lo script accetta, in maniera facoltativa, alcuni parametri:
Lo script accetta, in maniera facoltativa, alcuni parametri:
;--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
;--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
;--update:aggiorna lo script se esiste una versione recente
;--base64:crea un file contenente la codifica base64 dello script
;--base64:crea un file contenente la codifica base64 dello script
;--debug:crea un file contenente le informazioni utili per il debug dello script
;--versione:visualizza la versione dello script
;--help:visualizza informazioni sull'utilizzo dei parametri
;--help:visualizza informazioni sull'utilizzo dei parametri
'''Esempi:'''
<pre>
# ./scriptlog-debianizzati.org --tipo=rete
# ./scriptlog-debianizzati.org --tipo=apt --nocompress --nopaste
# ./scriptlog-debianizzati.org --versione
</pre>


<!-- commento (leggibile per chi modifica la pagina)
<!-- commento (leggibile per chi modifica la pagina)
Riga 87: Riga 98:


# Versione script
# Versione script
readonly VERSIONE="1.0.55"
readonly VERSIONE="1.0.65"


# Path e nome dello script
# Path e nome dello script
readonly PATH_NAME="$(readlink -f ${BASH_SOURCE[0]})"
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
readonly OLDSTABLE="wheezy"
readonly OLDSTABLE="jessie"
readonly STABLE="jessie"
readonly STABLE="stretch"
readonly TESTING="stretch"
readonly TESTING="buster"


# Path dei comandi dello script
# Path dei comandi dello script
Riga 102: Riga 113:
# 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


# URL remoto della pagina contenente lo script
# URL remoto della pagina contenente lo script
Riga 171: Riga 188:
# 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 --help non deve essere accompagnato da altri parametri" && _parm_uso
   echo "Il parametro $1 non deve essere accompagnato da altri parametri" && _parm_uso
}
}


Riga 194: Riga 211:
$BOLD--base64$FINE
$BOLD--base64$FINE
   viene creato un file con la codifica base64 dello script
   viene creato un file con la codifica base64 dello script
$BOLD--debug$FINE
  crea un file contenente le informazioni utili per il debug dello script
$BOLD--versione$FINE
  visualizza la versione dello script in esecuzione
    
    
$BOLD--help$FINE
$BOLD--help$FINE
Riga 199: Riga 222:
    
    
"  && exit
"  && exit
}
# Visualizza la versione corrente dello script
function _showvers {
  echo "$VERSIONE" && exit
}
}


Riga 205: Riga 233:
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 UPDATE=0 BASE64=0
TIPO_AUDIO=0 TIPO_MNT=0 TIPO_TOUCH=0 TIPO_COMM=0 UPDATE=0 BASE64=0
DEBUG=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 ;;
     "--update") [ $BASH_ARGC -gt 1 ] && _parm_uso_err "$1" || UPDATE=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 219: Riga 248:
     "--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           ;;
    "--debug") [ "${BASH_ARGC[@]}" -gt 1 ] && _parm_uso_err "$1" || DEBUG=1        ;;
    "--versione") [ "${BASH_ARGC[@]}" -gt 1 ] && _parm_uso_err "$1" || _showvers      ;;
     "--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 236: Riga 284:
*                                                                              *
*                                                                              *
*  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 "$VERSIONE"                                                             *
*  Versione $VERSIONE                                                              *
*                                                                              *
*                                                                              *
*********************************************************************************"
*********************************************************************************"
Riga 434: Riga 482:


   # Problemi selezionati in base al parametro passato allo script
   # Problemi selezionati in base al parametro passato allo script
   [ "$TIPO_RETE"  -eq 1 ] && _wait && echo $'### Problemi di rete ###\n'            > "$log" && _rete  && return
   [ "$TIPO_RETE"  -eq 1 ] && _wait && _header "rete"           && _rete  && return
   [ "$TIPO_VIDEO" -eq 1 ] && _wait && echo $'### Problemi video ###\n'              > "$log" && _video  && return
   [ "$TIPO_VIDEO" -eq 1 ] && _wait && _header "video"         && _video  && return
   [ "$TIPO_AUDIO" -eq 1 ] && _wait && echo $'### Problemi audio ###\n'              > "$log" && _audio  && return
   [ "$TIPO_AUDIO" -eq 1 ] && _wait && _header "audio"         && _audio  && return
   [ "$TIPO_APT"  -eq 1 ] && _wait && echo $'### Problemi APT ###\n'                > "$log" && _apt    && return
   [ "$TIPO_APT"  -eq 1 ] && _wait && _header "APT"           && _apt    && return
   [ "$TIPO_MNT"  -eq 1 ] && _wait && echo $'### Problemi mount-unmount ###\n'      > "$log" && _mount  && return
   [ "$TIPO_MNT"  -eq 1 ] && _wait && _header "mount-unmount" && _mount  && return
   [ "$TIPO_TOUCH" -eq 1 ] && _wait && echo $'### Problemi touchpad ###\n'          > "$log" && _tpad  && return
   [ "$TIPO_TOUCH" -eq 1 ] && _wait && _header "touchpad"       && _tpad  && return
   [ "$TIPO_COMM"  -eq 1 ] && _wait && echo $'### Solo informazioni generiche ###\n' > "$log" && _common && return
   [ "$TIPO_COMM"  -eq 1 ] && _wait && _header "generico"       && _common && return
    
    
   # La funzione presenta un menù di scelta nel caso non sia stato passato alcun parametro
   # La funzione presenta un menù di scelta nel caso non sia stato passato alcun parametro
Riga 463: Riga 511:
     case "$num" in
     case "$num" in
         [1-7]) _wait  ;;& # ;;& -> va alla successiva occorrenza del carattere immesso
         [1-7]) _wait  ;;& # ;;& -> va alla successiva occorrenza del carattere immesso
             1) echo $'### Problemi di rete ###\n'            > "$log" && _rete  ;;&
             1) _header "rete"         && _rete  ;;&
             2) echo $'### Problemi video ###\n'              > "$log" && _video  ;;&
             2) _header "video"         && _video  ;;&
             3) echo $'### Problemi audio ###\n'              > "$log" && _audio  ;;&
             3) _header "audio"         && _audio  ;;&
             4) echo $'### Problemi APT ###\n'                > "$log" && _apt    ;;&
             4) _header "APT"           && _apt    ;;&
             5) echo $'### Problemi mount-unmount ###\n'      > "$log" && _mount  ;;&
             5) _header "mount-unmount" && _mount  ;;&
             6) echo $'### Problemi touchpad ###\n'          > "$log" && _tpad  ;;&
             6) _header "touchpad"     && _tpad  ;;&
             7) echo $'### Solo informazioni generiche ###\n' > "$log" && _common ;;&
             7) _header "generico"     && _common ;;&
         [1-7]) break  ;; # Termina il ciclo 'while'
         [1-7]) break  ;; # Termina il ciclo 'while'
             0) _exit  ;; # È stato inserito '0' . Uscita dallo script
             0) _exit  ;; # È stato inserito '0' . Uscita dallo script
Riga 488: Riga 536:
}
}


# Funzione che stampa un pallino di colore verde in caso di comando con output
# Funzione che stampa un pallino colorato in base al primo parametro
# Visualizza a video l'eventuale stringa passata come primo parametro ($1).
function _printdot {
function _ok {
   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
   # se non ci sono parametri, viene stampato solo il pallino
   printf %b "$1•${FINE}\n" # stampa pallino e va a capo
  if [ $# -eq 0 ]; then
    printf %b "${VERDE}•${FINE}\n" # stampa pallino e va a capo
  # se c'è un parametro, viene stampato il pallino e il parametro
  elif [ $# -eq 1 ]; then
    printf %b "${VERDE}•${FINE}"
    tput cuf 3 # a destra di tre spazi
    tput el    # cancella fino a fine riga
    printf %b "$1\n" # stampa il parametro e va a capo
  fi
}
}
# 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}"; }
  echo
  tput cuu1  # in alto di una riga
  tput cuf1 # a destra di uno spazio
  # se non ci sono parametri, viene stampato solo il pallino
  if [ $# -eq 0 ]; then
    printf %b "${ROSSO}•${FINE}\n" # stampa pallino e va a capo
  # se c'è un parametro, viene stampato il pallino e il parametro
  elif [ $# -eq 1 ]; then
    printf %b "${ROSSO}•${FINE}"
    tput cuf 3 # a destra di tre spazi
    tput el    # cancella fino a fine riga
    printf %b "$1\n" # stampa il parametro e va a capo
  fi
}


# 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 539: Riga 566:
}
}


# Funzione che stampa un messaggio di attesa e aspetta 2 secondi
# Funzione che stampa un messaggio di attesa
function _wait {
function _wait {
   echo $'\nCreazione del log in corso...\n'
   echo $'\nCreazione del log in corso...\n'
}
# Intestazione del file di log
function _header {
echo "Tipo di problema: $1" >> "$log"
_data
_lastupd
echo "Versione script: $VERSIONE" >> "$log"
}
}


# Stampa la data corrente nel file di log
# Stampa la data corrente nel file di log
function _data {
function _data {
   echo "Log creato il $(date '+%d %B %Y alle %H.%M')" >> "$log"
   echo "Log creato il: $(date '+%d %B %Y alle %H.%M')" >> "$log"
}
}


Riga 553: Riga 588:


  # Sostituisce il nome utente e il nome host con 'nomeutente' e 'nomehost' se diversi da [dD]ebian
  # Sostituisce il nome utente e il nome host con 'nomeutente' e 'nomehost' se diversi da [dD]ebian
  [ "$nomehost" != "Debian" ] && [ "$nomehost" != "debian" ] && sed -i -e "s/${nomehost}/nomehost/g" "$log"
  if [[ "$nomehost" =~ .*"$utente".* ]]; then
  [ "$utente" != "Debian" ] && [ "$utente" != "debian" ] && sed -i -e "s/${utente}/nomeutente/g" "$log"
  [ "$nomehost" != "Debian" ] && [ "$nomehost" != "debian" ] && sed -i -e "s/${nomehost}/nomehost/g" "$log"
  [ "$utente" != "Debian" ] && [ "$utente" != "debian" ] && sed -i -e "s/${utente}/nomeutente/g" "$log"
  else
  [ "$utente" != "Debian" ] && [ "$utente" != "debian" ] && sed -i -e "s/${utente}/nomeutente/g" "$log"
  [ "$nomehost" != "Debian" ] && [ "$nomehost" != "debian" ] && sed -i -e "s/${nomehost}/nomehost/g" "$log"
fi 


  # Nasconde gli ESSID gestiti attraverso Network Manager
  # Nasconde gli ESSID gestiti attraverso Network Manager
Riga 570: Riga 610:
  fi
  fi


  # Nasconde nel log i i nomi delle connessioni gestite da NetworkManager
  # Nasconde nel log i nomi delle connessioni gestite da NetworkManager
  sed -i -r "s/(NetworkManager.*keyfile.*((parsing)|(read connection))).*/\1 \*script-removed\*/" "$log"
  sed -i -r "s/(NetworkManager.*keyfile.*((parsing)|(read connection))).*/\1 \*script-removed\*/" "$log"
sed -i -r "s/(NetworkManager.*keyfile: new connection.*system-connections\/)(.*)( \(.*,\").*(\"\))/\1\*script-removed\*\3\*script-removed\*\4/g" "$log"
sed -i -r "s/(NetworkManager.*policy: auto-activating connection ').*(')/\1\*script-removed\*\2/g" "$log"
sed -i -r "s/(NetworkManager.*Activation: starting connection ').*(')/\1\*script-removed\*\2/g" "$log"
sed -i -r "s/(NetworkManager.*policy: set ').*(')/\1\*script-removed\*\2/g" "$log"
}
}


Riga 587: Riga 631:
     convdate=$(date -d "$lastdate" '+%d %B %Y')
     convdate=$(date -d "$lastdate" '+%d %B %Y')
      
      
     echo $'\n'"Ultimo aggiornamento del sistema: ${convdate}" >> "$log"
     echo $"Ultimo aggiornamento del sistema: ${convdate}" >> "$log"
   fi
   fi
}
}
Riga 677: Riga 721:
       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 690: Riga 741:
# Informazioni comuni a tutti i tipi di problema
# Informazioni comuni a tutti i tipi di problema
function _common {
function _common {
  _data
  _lastupd
   _dmi_decode
   _dmi_decode
   _comando "/bin/uname -a"
   _comando "/bin/uname -a"
Riga 703: Riga 752:
   _comando "/bin/journalctl -x -b --no-pager -p err"
   _comando "/bin/journalctl -x -b --no-pager -p err"
   _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-cgls -l"
  _comando "/usr/bin/systemd-delta"
   _comando "/bin/dmesg -l err"
   _comando "/bin/dmesg -l err"
   _comando "/bin/dmesg -l warn"
   _comando "/bin/dmesg -l warn"
Riga 734: Riga 786:
   _comando "/sbin/ifconfig"
   _comando "/sbin/ifconfig"
   _comando "/sbin/ifconfig -a"
   _comando "/sbin/ifconfig -a"
  _comando "/sbin/ip -s -d link show"
   _comando "/usr/sbin/rfkill list all"
   _comando "/usr/sbin/rfkill list all"
   _comando "/bin/ping -c3 -W5 8.8.8.8" #DNS di Google 8.8.8.8
   _comando "/bin/ping -c3 -W5 8.8.8.8" #DNS di Google 8.8.8.8
Riga 758: Riga 811:
   _dir "/etc/X11/xorg.conf.d/"
   _dir "/etc/X11/xorg.conf.d/"
   _file "/var/log/Xorg.0.log"
   _file "/var/log/Xorg.0.log"
  _file "${utente}/.local/share/xorg/Xorg.0.log"
   _pack "xserver-xorg"
   _pack "xserver-xorg"
   _pack "nouveau"
   _pack "nouveau"
Riga 863: Riga 917:
     if [ -f "$1" ]; then
     if [ -f "$1" ]; then
case "$1" in
case "$1" in
            /etc/fstab)
                  # Nasconde username,password e dominio di mount cifs
                  sed -e "s/\( cifs.*username *= *\)[^,]*/\1\*script-removed\*/" \
                      -e "s/\( cifs.*password *= *\)[^,]*/\1\*script-removed\*/" \
                      -e "s/\( cifs.*domain *= *\)[^,]*/\1\*script-removed\*/" "$1" &>> "$log" && _ok || _error ;;
    /etc/network/interfaces)
    /etc/network/interfaces)
                   # Nasconde nel log gli ESSID e le password criptate contenute in /etc/network/interfaces
                   # Nasconde nel log gli ESSID e le password criptate contenute in /etc/network/interfaces
  sed -r "s/((wpa-ssid)|(wpa-psk)).*/\1 \*script-removed\*/" "$1" &>> "$log" && _ok  || _error ;;
  sed -r "s/((wpa-ssid)|(wpa-psk)|(wpa-identity)|(wpa-password)|(wireless-key)).*/\1 \*script-removed\*/" "$1" &>> "$log" && _ok  || _error ;;
    /var/log/syslog)
    /var/log/syslog)
                   # se è installato systemd, il log viene ricavato da "journalctl -x"
                   # se è installato systemd, il log viene ricavato da "journalctl -x"
Riga 916: Riga 975:
      "/usr/bin/synclient -l")
      "/usr/bin/synclient -l")
      # se $DISPLAY è vuota, usa :0 (default per il primo server X)
      # se $DISPLAY è vuota, usa :0 (default per il primo server X)
      su -c "DISPLAY=${DISPLAY:-:0} $1" "$utente" &>> "$log" _ok || _error ;;
      su -c "DISPLAY=${DISPLAY:-:0} $1" "$utente" &>> "$log" && _ok || _error ;;
      *)     
      *)     
      su -c "$1" "$utente" &>> "$log" && _ok || _error
      su -c "$1" "$utente" &>> "$log" && _ok || _error
Riga 962: Riga 1 021:
   fi
   fi


  # Variabili locali
   local file
   local file
   # numfile contiene il numero di file contenuti nella directory. Solo primo livello.
   # numfile contiene il numero di file contenuti nella directory. Solo primo livello.
Riga 972: Riga 1 030:
     echo "La directory non contiene file o directory" >> "$log" && _error
     echo "La directory non contiene file o directory" >> "$log" && _error
   else
   else
     echo "La directory contiene ${numfile} file e $(($numdir - 1)) directory" >> "$log"
     echo "La directory contiene ${numfile} file e $((numdir - 1)) directory" >> "$log" && _ok
     ls -al "$1" >> "$log"
     ls -al "$1" >> "$log"
     # invia al log il contenuto dei file della directory
     # invia al log il contenuto dei file della directory
Riga 1 076: Riga 1 134:
     if [ -d "$i" ]; then
     if [ -d "$i" ]; then
       echo "Contenuto di ${i}" >> "$log"
       echo "Contenuto di ${i}" >> "$log"
       ls -al "$i" >> "$log"
       ls -alR "$i" >> "$log"
     else
     else
       echo "${i} non trovata" >> "$log"
       echo "${i} non trovata" >> "$log"
Riga 1 139: Riga 1 197:
   # in esecuzione
   # in esecuzione
   echo -n "In esecuzione: " >> "$log"
   echo -n "In esecuzione: " >> "$log"
   if _is_running "ksmserver"; then kde4-config --version >> "$log" && _ok || _error                         # KDE4
   if _is_running "ksmserver"; then
   elif _is_running "gnome-shell"; then gnome-shell --version >> "$log" && _ok || _error                    # Gnome Shell
    kf5-config -v 2>/dev/null >> "$log" ||                                                                # KDE5
    kde4-config -v 2>/dev/null >> "$log" && _ok || _error                                                 # KDE4
   elif _is_running "gnome-shell"; then gnome-shell --version >> "$log" && _ok || _error                    # GNOME Shell
   elif _is_running "xfdesktop"; then xfce4-about -V | head -n1 | cut -d ' ' -f2- >> "$log" && _ok || _error # Xfce4
   elif _is_running "xfdesktop"; then xfce4-about -V | head -n1 | cut -d ' ' -f2- >> "$log" && _ok || _error # Xfce4
   elif _is_running "openbox"; then
   elif _is_running "openbox"; then
Riga 1 177: Riga 1 237:


     # controlla che sia un nome di release valido
     # controlla che sia un nome di release valido
     if [ "$rel" = "stable" ] || [ "$rel" = "testing" ] || [ "$rel" = "unstable" ] ||
     if [ "$rel" = "oldstable" ] || [ "$rel" = "stable" ] || [ "$rel" = "testing" ] || [ "$rel" = "unstable" ] ||
       [ "$rel" = "$STABLE" ] || [ "$rel" = "$TESTING" ] || [ "$rel" = "sid" ]; then
       [ "$rel" = "$OLDSTABLE" ] || [ "$rel" = "$STABLE" ] || [ "$rel" = "$TESTING" ] || [ "$rel" = "sid" ]; then
      
      
       # controlla che sia un repository di Debian
       # controlla che sia un repository di Debian
       # si basa sull'output di "apt-cache policy" e su o=Debian e l=Debian
       # si basa sull'output di "apt-cache policy" e su o=Debian e l=Debian
       riga="$(echo "$aptcachepol" | sed -n '/'$indirizzo'.*'$rel'\/main.*Packages$/ {N; /.*o=Debian,.*l=Debian,/p}')"
       riga="$(echo "$aptcachepol" | sed -n '/'$indirizzo'*.*'$rel'\/main.*Packages$/ {N; /.*o=Debian,.*l=Debian,/p}')"
      
      
       # se è un archivio valido, aggiorna la variabile "release"
       # se è un archivio valido, aggiorna la variabile "release"
Riga 1 198: Riga 1 258:
  _prompt "$var"
  _prompt "$var"
    
    
  # Lo script DEVE rilevare almeno una release. Se la variabile "release" è nulla, c'è un errore nei in "sources.list"
  # Lo script DEVE rilevare almeno una release. Se la variabile "release" è nulla, c'è un errore in "sources.list"
  # oppure non è stato eseguito un aggiornamento della lista dei pacchetti (update)
  # oppure non è stato eseguito un aggiornamento della lista dei pacchetti (update)
  # (vedere anche il modo in cui viene ricavata la variabile "release" in alto)
  # (vedere anche il modo in cui viene ricavata la variabile "release" in alto)
Riga 1 256: Riga 1 316:


if [ "$UPDATE" -eq 0 ] && [ "$BASE64" -eq 0 ]; then
if [ "$UPDATE" -eq 0 ] && [ "$BASE64" -eq 0 ]; then
  _debug
   _avvertenze
   _avvertenze
   _check
   _check
Riga 1 269: Riga 1 330:


_exit
_exit
</pre>
</pre>


== 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.65
:''Aggiunti "ip -s -d link show" e Xorg.0.log locale''
:''Nascosti username, password e dominio per montaggi cifs''
:''Modifiche e correzioni minori''
:[[Utente:S3v|S3v]] 20:49, 20 feb 2018 (CET)
;1.0.64
:''Aggiornamento per rilascio di Debian 9 ([[Stretch]])''
:[[Utente:HAL 9000|HAL 9000]] 10:46, 18 giu 2017 (CEST)
;1.0.63
:''Debug come parametro''
:''KDE5 tra i DE rilevati''
:[[Utente:S3v|S3v]] 22:38, 19 mag 2017 (CEST)
;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
:''Aggiunta funzione _header() (intestazione del file di log)''
:''Aggiunto parametro "--versione"''
:''Modifiche e correzioni minori''
:[[Utente:S3v|S3v]] 13:53, 10 dic 2016 (CET)
;1.0.60
:''Elenco ricorsivo delle directory contenenti firmware''
:''Nascosti (altri) ID di connessioni gestite da NM''
:[[Utente:S3v|S3v]] 20:53, 6 dic 2016 (CET)
;1.0.59
:''Modificata funzione _hide() per nascondere completamente hostname contenuto nel''
:''nome utente (e viceversa)''
:[[Utente:S3v|S3v]] 21:33, 11 nov 2016 (CET)
;1.0.58
:''Rimossa precedente istruzione e modificata regexp per far funzionare la ricerca di''
:''pacchetti esterni sia su stable che su testing''
:''Modifiche minori''
:[[Utente:S3v|S3v]] 16:44, 10 lug 2016 (CEST)
;1.0.57
:''Istruzione per rimuovere eventuale slash alla fine dell'URL in "sources.list"''
:''Aggiunti comandi "systemd-cgtop -b --iterations=5", "systemd-cgls" e "systemd-delta" a problemi comuni''
:[[Utente:S3v|S3v]] 21:27, 9 lug 2016 (CEST)
;1.0.56
:''Rimosse dal file interfaces anche le chiavi relative a wep e a wpa-enterprise''
:[[Utente:metaldaze|metaldaze]] 12:54, 04 feb 2016 (CET)
;1.0.55
;1.0.55
:''Opzioni per aggiornare lo script o crearne una codifica base64''
:''Opzioni per aggiornare lo script o crearne una codifica base64''
6 999

contributi

Menu di navigazione