Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
utilisateurs:ar_barzh_paour:brouillons:script_pb_imp [Le 09/03/2020, 13:38] – ajout d'une version avec yad ar barzh paourutilisateurs:ar_barzh_paour:brouillons:script_pb_imp [Le 09/03/2020, 15:52] (Version actuelle) ar barzh paour
Ligne 1: Ligne 1:
 +script pour aider à la résolution de problème d'imprimante ou de scanner  amis qui utilise yad
 +il manque plein de retour chariot !!!!!! 
  
 +#!/bin/bash
 +
 +version="version 2020-03-08" #utilisation de yad 
 +
 +titre=" BASH A UTILISER EN CAS DE PROBLEME D'IMPRIMANTE OU DE SCANNER"
 +
 +echo $titre
 +
 +num=`date +%Y-%m-%d:%H-%M-%S`
 +
 +fich="ImpScan-$num.txt"
 +
 +echo "" >$fich                   #vide le fichier par précaution
 +
 +sep1="[code]"
 +
 +sep2="[/code]"
 +
 +function l-c {                   # c'est ce qui lance la commande
 +    echo $sep1                    >> "$fich"
 +    echo $1                       >> "$fich"
 +    eval "$1"                     >> "$fich"
 +    echo $sep2                    >> "$fich"
 +    echo                          >> "$fich"
 +   }
 +
 +function resultat {
 +
 +echo "fichier enregistré le $num" >> $fich
 +
 +echo "
 +
 +           Vous pouvez récupérer le fichier 
 +      $fich
 +           pour le transmettre au forum 
 +           tel quel (par copier-coller)
 +           car les balises sont incluses
 +           méthode : quand le fichier est ouvert
 +            Ctrl A   puis Ctrl C 
 +            et dans un post du forum Ctrl V "
 +   }
 +
 +function imprimante {
 +    cmd="dpkg -l | grep cups"                   ; l-c "$cmd" 
 +    cmd="lpstat -t"                             ; l-c "$cmd" 
 +    cmd="/usr/sbin/lpinfo -v"                   ; l-c "$cmd" 
 +    cmd="cat /var/log/cups/error_log"           ; l-c "$cmd" 
 +    cmd="dpkg -l | grep -v ^ii"                 ; l-c "$cmd" 
 +    }
 +
 +function scanner {
 +    cmd="echo SCANNER"                          ; l-c "$cmd"
 +    cmd="dpkg -l | grep sane"                   ; l-c "$cmd"
 +    cmd="sudo sane-find-scanner -q"             ; l-c "$cmd"
 +    cmd="scanimage -L"                          ; l-c "$cmd" 
 +    cmd="ls /etc/sane.d/                     ; l-c "$cmd"
 +    cmd="cat /etc/sane.d/dll.conf"              ; l-c "$cmd"
 +    cmd="ls  /lib/udev/rules.d | grep libsane"  ; l-c "$cmd"
 +    }
 +
 +function information {
 +    cmd="cat /etc/lsb-release"                  ; l-c "$cmd"
 +    cmd="uname -i"                              ; l-c "$cmd"
 +    cmd="groups"                                ; l-c "$cmd"
 +    cmd="lsusb"                                 ; l-c "$cmd"
 +  }
 +
 +function ImpScan { # reçoit deux paramètres : $1 Imp et $2 Scan
 +                   # $1 NON!BROTHER!EPSON!CANON!HP!SAMSUNG!Autre
 +                   # $2 NON!OUI
 +     case "$1" in
 +            "NON"         :                                                   ;;
 +            "BROTHER" )     cmd="echo 'IMPRIMANTE BROTHER'"    ; l-c "$cmd"
 +                            cmd="dpkg -l | grep -i brother"    ; l-c "$cmd"     ;;
 +            "EPSON"       cmd="echo 'IMPRIMANTE EPSON'"      ; l-c "$cmd"
 +                            cmd="dpkg -l | grep -i epson"      ; l-c "$cmd" ;;
 +            "CANON"       cmd="echo 'IMPRIMANTE CANON'"      ; l-c "$cmd"
 +                            cmd="dpkg -l | grep -i cnijfilter" ; l-c "$cmd"
 +                            cmd="dpkg -l | grep -i cndrvcups"  ; l-c "$cmd"     ;;
 +            "HP"      )     cmd="echo 'IMPRIMANTE HP'"         ; l-c "$cmd"
 +                            cmd="dpkg -l | grep -i hplip"      ; l-c "$cmd"      
 +                            cmd="hp-check"                     ; l-c "$cmd"     ;;
 +            "SAMSUNG" )     cmd="echo 'IMPRIMANTE Samsung'"    ; l-c "$cmd"
 +                            cmd="dpkg -l | grep suld"          ; l-c "$cmd"
 +                            cmd="find /etc/apt -name '*.list' /
 +                            -exec bash -c 'echo -e \"\n\$1\n\"; nl -ba \"\$1\"' _ '{}' \;"
 +                            l-c "$cmd"                                          ;;
 +            "Autre"       cmd="echo 'IMPRIMANTE Autre'"      ; l-c "$cmd"     ;;
 +     esac
 +     case "$1" in
 +           "NON" ) :          ;;
 +               ) imprimante ;;
 +     esac
 +     case "$2" in
 +            "NON"         if [[ "$1" = "NON" ]] ; then rm $fich ; fi       ;;
 +            "OUI"         scanner ;;
 +     esac     
 +     }
 +
 +function choix {
 + # en 2ème ligne il faut lire tiret tiret texte="$0 et non 1.- texte="$0
 +
 + res=$(yad   --title="$titre" --center \
 +        --text="$0
 +                IMPRIMANTE : Si l'Imprimante est concernée ou non ,  choisissez sa marque si oui
 +                SCANNER    : Indiquez s'il est concerné (oui/non) (si oui le mot de passe administrateur sera demandé) 
 +
 +                et si vous voulez visualiser le fichier résultat laissez l'option visualisation sur OUI
 +                ce qui permettra de transmettre plus facilement  le résultat sur le forum
 +                                                      "                             \
 +        --form                                                                      \
 +        --field="Imprimante:CB"        'NON!BROTHER!EPSON!CANON!HP!SAMSUNG!Autre'   \
 +        --field="Scanner:CB"           'NON!OUI'                                    \
 +        --field="Visualisation du résultat :CB"   'OUI!NON'                         \
 +        --button="gtk-close:1"                                                      \
 +        --button="gtk-ok:0"                                                             
 +        )
 +  [[ $? -eq 1 ]] && exit 0  # sort si on clic sur fermer
 +   imp=$(awk -F'|' '{print $1}' <<< $res)
 +  scan=$(awk -F'|' '{print $2}' <<< $res)
 +  visu=$(awk -F'|' '{print $3}' <<< $res)
 +}
 +
 +choix
 +
 +information
 +
 +ImpScan "$imp" "$scan"
 +
 +if [[ -e "$fich" ]] 
 +  then
 +    resultat
 +    case $visu in
 +     "OUI"   ) xdg-open "./$fich" ;;
 +     "NON" ) exit 63        ;;
 + esac
 +fi
 +
 +
 +
 +
 +Script pour aider à la résolution de problème d'imprimante ou de scanner
 +<code bash help_impscan.sh>
 +#!/bin/bash
 +
 +echo " BASH A UTILISER EN CAS DE PROBLEME D'IMPRIMANTE OU DE SCANNER"
 +num=`date +%Y-%m-%d:%H-%M-%S`
 +fich="ImpScan-$num.txt"
 +echo "" >$fich
 +sep="========================================================================================"
 +
 +function l-c {                   # c'est ce qui lance la commande
 +echo $sep                    >> "$fich"
 +echo $1                      >> "$fich"
 +eval "$1"                    >> "$fich"
 +echo $sep                    >> "$fich"
 +}
 +
 +function resultat {
 +echo "fichier enregistré le $num" >> $fich
 +echo "
 +      Vous pouvez récupérer le fichier 
 +      $fich
 +      pour le transmettre au forum"
 +}
 +   
 +function choixImp {
 +echo ""
 +titre="\!\!\!\! CHOIX IMPRIMANTE Réponses possibles  : (E ou C ou B ou H ou S ou N)"
 +texte="ce programme va renseigner un fichier en fonction de votre imprimante ....
 +répondez
 +          E  si vous avez une EPSON
 +          C  si vous avez une CANON
 +          B  si vous avez une BROTHER
 +          H  si vous avez une HP
 +          S  si vous avez une SAMSUNG
 +          A  pour une autre
 +                "
 +rep=`zenity --entry --title "$titre" --text "$texte" --width "800"`
 +case $rep in
 +          [eE]  )      cmd="echo 'IMPRIMANTE EPSON'"      ; l-c "$cmd"
 +                       cmd="dpkg -l | grep -i epson"      ; l-c "$cmd"     ;;
 +
 +         [cC]  )      cmd="echo 'IMPRIMANTE CANON'"      ; l-c "$cmd"
 +                        cmd="dpkg -l | grep -i cnijfilter" ; l-c "$cmd"
 +                        cmd="dpkg -l | grep -i cndrvcups"  ; l-c "$cmd"     ;;
 +
 +            [bB] )       cmd="echo 'IMPRIMANTE BROTHER'"    ; l-c "$cmd"
 +                        cmd="dpkg -l | grep -i brother"    ; l-c "$cmd"     ;;
 +
 +            [hH] )       cmd="echo 'IMPRIMANTE HP'"         ; l-c "$cmd"
 +                        cmd="dpkg -l | grep -i hplip"      ; l-c "$cmd"     
 +                        cmd="hp-check"                     ; l-c "$cmd"     ;;
 +
 +            [sS] )       cmd="echo 'IMPRIMANTE Samsung"     ; l-c "$cmd"
 +                        cmd="dpkg -l | grep suld"          ; l-c "$cmd"
 +                        echo $sep                                                                            >> "$fich"     
 +                        find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; nl -ba "$1"' _ '{}' \; >> "$fich"
 +                        echo $sep                                                                            >> "$fich"    ;;
 +            [aA] )                                                          ;;
 +
 +            *             echo "utilisez seulement ECBHSA S.V.P."             ;;
 +        esac   
 +        }
 +
 +function imprimante {
 +    choixImp
 +    cmd="dpkg -l | grep cups"                   ; l-c "$cmd" 
 +    cmd="lpstat -t"                             ; l-c "$cmd" 
 +    cmd="/usr/sbin/lpinfo -v"                   ; l-c "$cmd" 
 +    cmd="cat /var/log/cups/error_log"           ; l-c "$cmd" 
 +    cmd="dpkg -l | grep -v ^ii"                 ; l-c "$cmd"
 +}
 +
 +function scanner {
 +    cmd="echo SCANNER"                          ; l-c "$cmd"
 +    cmd="dpkg -l | grep sane"                   ; l-c "$cmd"
 +    cmd="sudo sane-find-scanner -q"             ; l-c "$cmd"
 +    cmd="scanimage -L"                          ; l-c "$cmd" 
 +    cmd="ls /etc/sane.d/                     ; l-c "$cmd"
 +    cmd="cat /etc/sane.d/dll.conf"              ; l-c "$cmd"
 +    cmd="ls  /lib/udev/rules.d | grep libsane"  ; l-c "$cmd"
 +}
 +
 +function ImpScan {
 +    while [[ $rep != [?([iI])?(sS)?(nN)] ]]
 +    do
 +        titre="\!\!\!\! Réponses possibles  : (I ou S ou IS ou N)"
 +        texte="ce programme va générer un fichier ....
 +               répondez
 +                        I  si vous avez un problème d' imprimante
 +                        S  si vous avez un problème de scanner
 +                        IS si vous avez un problème d'imprimante et de scanner
 +                        N  pour arrêter
 +               remarque il peut y avoir demande de mot de passe administrateur "
 +        rep=`zenity --entry --title "$titre" --text "$texte" --width "800"`
 +        case $rep in
 +            [iI]      imprimante           ;   resultat    ; exit 64  ;;
 +            [sS]      scanner              ;   resultat    ; exit 65  ;;
 +            [iI][sS] )  imprimante ; scanner ;   resultat    ; exit 66  ;;
 +            [nN]      exit 63  ;;
 +            *        )  echo "utilisez seulement iIsSnN S.V.P."         ;;
 +        esac   
 +    done
 +}
 +cmd="cat /etc/lsb-release && uname -i && groups && lsusb"                   ; l-c "$cmd"
 +ImpScan
 +
 +</code>