#!/bin/bash version=0.7.0 date="25/02/2018" script=$(basename $0) output="$script.md" ligneRapport="Rapport du $(date '+%d/%m/%Y %H:%M %z') ◇ $(uname -n) ◇ $0 $* ◇ $script $version" echo if [[ "$1" == "--help" || "$1" == "-h" ]] ; then echo "$script [options]" echo echo " -h --help : cet affichage" echo " -n --noexport : pas d'export sur un paste, juste rapport local ($script.md)" echo echo "curl requis" echo fi if ! type -p curl &>/dev/null; then echo "Erreur critique: curl requis mais non installé" if type -p "dpkg" &>/dev/null ; then echo " apt install curl" fi echo noexport="yes" fi if [[ "$1" == "--noexport" || "$1" == "-n" ]] ; then noexport="yes" fi exec 3>&1 # sauvegarde exec 1>"$output" # redirection stdout dans fichier echo -e "$ligneRapport\n" echo '```' # système, portabilité bash --version &>/dev/null && bash --version | head -n1 || echo "bash KO" free --version &>/dev/null && free --version || echo "free KO" uptime --version &>/dev/null && uptime --version || echo "uptime KO" lsblk --version &>/dev/null && lsblk --version || echo "lsblk KO" lspci --version &>/dev/null && lspci --version || echo "lspci KO" lspci --nnv &>/dev/null && echo "lspci --nnk ok" || echo "lspci --nnk KO" journalctl --version &>/dev/null && journalctl --version || echo "journalctl KO" xargs --version &>/dev/null && xargs --version | head -n1 || echo "xargs KO" upower --version &>/dev/null || echo "upower KO" [ -e '/etc/shells' ] && echo "/etc/shells existe" || echo "/etc/shells KO" # xorg, video x-window-manager --version &>/dev/null && x-window-manager --version | head -n1 || echo "x-window-manager KO" xset -version &>/dev/null && xset -version || echo "xset KO" xdpyinfo -version &>/dev/null && xdpyinfo -version || echo "xdpyinfo KO" type -p glxinfo &>/dev/null && echo "glxinfo ok" || echo "glxinfo KO" xdriinfo nscreens &>/dev/null || echo "xdriinfo KO" type -p xprop &>/dev/null || echo "xprop KO" # hardware type -p acpi &>/dev/null && acpi --version | head -n1 || echo "acpi KO" echo -e '```\n\n' # upower if upower --version &>/dev/null ; then echo "## upower" echo -e '```' upower --enumerate upower --version || echo "upower KO" echo -e '```\n' fi # xdriinfo Direct Rendering Interface? if xdriinfo nscreens &>/dev/null ; then echo "## "$( xdriinfo -version 2>/dev/null ) echo '```' echo xdriinfo: $( xdriinfo 2>/dev/null ) echo xdriinfo nscreens: $( xdriinfo nscreens 2>/dev/null ) echo xdriinfo driver 0: $( xdriinfo driver 0 2>/dev/null ) echo xdriinfo options $(xdriinfo options 0 2>/dev/null): $( xdriinfo options $(xdriinfo options 0 2>/dev/null) 2>/dev/null ) echo -e '```\n' fi # xprop if type -p xprop &>/dev/null; then # wm / compositor id=$( xprop -root -notype _NET_SUPPORTING_WM_CHECK 2>/dev/null ) id=${id##* } wm_brut=$( xprop -id "$id" -notype -len 100 2>/dev/null ) # wm annexe xprop=$( xprop -root -notype -display $DISPLAY 2>/dev/null ) echo "## xprop" echo -e '```' echo "### xprop -id :" echo "$wm_brut" echo echo "### xprop -root -notype -display $DISPLAY :" echo "$xprop" echo -e '```\n' fi # /usr/share/xsessions echo "## ls -l /usr/share/xsessions " echo '```' ls -l /usr/share/xsessions 2>/dev/null echo -e '```\n' # cpuinfo echo "## vendor id cpuinfo " echo '```' grep -m1 -A3 'vendor_id' /proc/cpuinfo echo -e '```\n' # général, wm annexe echo "## ps -ef" echo '```' ps -ef echo -e '```\n' # panel echo "## ps -e" echo '```' ps -A echo -e '```\n' # env echo "## env" echo '```' env | sort echo -e '```\n' # lspci echo "## lspci -nnk" echo '```' lspci -nnk echo -e '```\n' exec 1>&3 # restauration exec 3>&- # fermeture FD if [ -z "$noexport" ]; then echo -e "url du rapport:\n" echo $( curl -s --upload-file $output https://transfer.sh/$output ) echo fi echo "voir le rapport généré: pager $output" echo "effacer le rapport généré: rm $output" echo exit 0 wget -nv -O debug_gi https://framagit.org/kyodev/kyopages/raw/master/scripts/tests/debug_gi chmod +x debug_gi && ./debug_gi curl -o debug_gi https://framagit.org/kyodev/kyopages/raw/master/scripts/tests/debug_gi cat > debug << "END" #!/bin/bash END chmod +x debug bash debug