2018-04-07 16:16:29 +02:00
|
|
|
#!/bin/sh
|
2018-05-22 18:58:28 +02:00
|
|
|
#~ # shellcheck disable=SC2016,SC2034
|
2018-02-19 07:29:32 +01:00
|
|
|
|
2018-04-08 23:54:34 +02:00
|
|
|
# SC2016 Expressions don't expand in single quotes
|
|
|
|
# SC2034 variable appears unused
|
|
|
|
|
2018-05-22 18:58:28 +02:00
|
|
|
version=1.4.0
|
|
|
|
date="22/05/2018"
|
2018-04-08 23:49:31 +02:00
|
|
|
script=$( basename "$0" )
|
2018-02-19 07:29:32 +01:00
|
|
|
output="$script.md"
|
2018-03-03 23:49:45 +01:00
|
|
|
ligneRapport="Rapport du $(date '+%d/%m/%Y %H:%M %z') ◇ $(uname -n) ◇ $0 $* ◇ $script $version"
|
2018-02-19 07:29:32 +01:00
|
|
|
|
2018-02-20 20:25:48 +01:00
|
|
|
echo
|
2018-04-08 23:49:31 +02:00
|
|
|
if [ "$1" = "--help" ] || [ "$1" = "-h" ] ; then
|
2018-02-19 07:29:32 +01:00
|
|
|
echo "$script [options]"
|
|
|
|
echo
|
|
|
|
echo " -h --help : cet affichage"
|
|
|
|
echo " -n --noexport : pas d'export sur un paste, juste rapport local ($script.md)"
|
|
|
|
echo
|
2018-02-20 20:25:48 +01:00
|
|
|
echo "curl requis"
|
|
|
|
echo
|
2018-04-08 23:54:34 +02:00
|
|
|
exit
|
2018-02-20 20:25:48 +01:00
|
|
|
fi
|
|
|
|
|
2018-04-19 20:10:57 +02:00
|
|
|
if ! command -v curl >/dev/null ; then
|
2018-02-20 20:25:48 +01:00
|
|
|
echo "Erreur critique: curl requis mais non installé"
|
2018-04-19 20:10:57 +02:00
|
|
|
if command -v "dpkg" >/dev/null ; then
|
2018-04-08 23:54:34 +02:00
|
|
|
echo "Installer avec: apt install curl"
|
2018-02-20 20:25:48 +01:00
|
|
|
fi
|
|
|
|
echo
|
|
|
|
noexport="yes"
|
2018-02-19 07:29:32 +01:00
|
|
|
fi
|
|
|
|
|
2018-05-22 18:58:28 +02:00
|
|
|
get_cmd(){
|
|
|
|
|
|
|
|
if command -v "$1" >/dev/null; then
|
|
|
|
printf '* %s : ' "$1"
|
|
|
|
else
|
|
|
|
echo "* $1 **KO**"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
get_version(){
|
|
|
|
|
|
|
|
if [ -z "$2" ] && eval "$1" 1>/dev/null 2>&1; then
|
|
|
|
eval "$1" | head -n1
|
|
|
|
elif [ "$2" = error ] && eval "$1" 1>/dev/null 2>&1; then
|
|
|
|
eval "$1" 2>/dev/null | head -n1
|
|
|
|
elif [ "$2" = stderr ] && eval "$1" 1>/dev/null 2>&1; then
|
|
|
|
eval "$1" 2>&1 | head -n1
|
|
|
|
else
|
|
|
|
echo "version n/a"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2018-04-08 23:49:31 +02:00
|
|
|
if [ "$1" = "--noexport" ] || [ "$1" = "-n" ] ; then
|
2018-02-19 07:29:32 +01:00
|
|
|
noexport="yes"
|
|
|
|
fi
|
|
|
|
|
|
|
|
exec 3>&1 # sauvegarde
|
2018-03-03 23:49:45 +01:00
|
|
|
exec 1>"$output" # redirection stdout dans fichier
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "%s\\n\\n\\n" "$ligneRapport"
|
2018-04-19 20:10:57 +02:00
|
|
|
|
2018-05-22 18:58:28 +02:00
|
|
|
echo
|
|
|
|
echo "système, portabilité" # système, portabilité
|
|
|
|
echo
|
|
|
|
get_cmd "acpi" && get_version "acpi --version"
|
|
|
|
get_cmd "awk" && get_version "awk -V"
|
|
|
|
get_cmd "mawk" && get_version "mawk -W version" error # error: redirection stderr > null
|
|
|
|
get_cmd "bash" && get_version "bash --version"
|
|
|
|
get_cmd "dig" && get_version "dig -v" stderr # stderr: redirection stderr > stdout
|
|
|
|
get_cmd "drill" && get_version "drill -v" stderr
|
|
|
|
get_cmd "free" && get_version "free -V"
|
|
|
|
get_cmd "grep" && get_version "grep -V"
|
|
|
|
get_cmd "host" && get_version "host -V" stderr
|
|
|
|
get_cmd "journalctl" && get_version "journalctl --version"
|
|
|
|
get_cmd "lsblk" && get_version "lsblk -V"
|
|
|
|
get_cmd "lspci" && get_version "lspci --version"
|
|
|
|
if lspci -nnv 1>/dev/null 2>&1 ; then
|
|
|
|
echo "* lspci -nnv : ok"
|
2018-04-08 18:40:38 +02:00
|
|
|
else
|
2018-05-22 18:58:28 +02:00
|
|
|
echo "* lspci -nnk **KO**"
|
2018-04-08 18:40:38 +02:00
|
|
|
flag_lspci="ko"
|
|
|
|
fi
|
2018-05-22 18:58:28 +02:00
|
|
|
[ -e '/etc/shells' ] && echo "* /etc/shells : existe" || echo "* /etc/shells **KO**"
|
|
|
|
get_cmd "sed" && get_version "sed --version"
|
|
|
|
get_cmd "upower" && get_version "upower -v"
|
|
|
|
get_cmd "uptime" && get_version "uptime -V"
|
|
|
|
get_cmd "xargs" && get_version "xargs --version"
|
2018-02-25 19:00:40 +01:00
|
|
|
|
2018-05-22 18:58:28 +02:00
|
|
|
echo
|
|
|
|
echo "video, xorg" # video, xorg
|
|
|
|
echo
|
|
|
|
get_cmd "glxinfo" && echo 'ok'
|
|
|
|
get_cmd "xdpyinfo" && get_version "xdpyinfo -version"
|
|
|
|
get_cmd "xdriinfo" && get_version "xdriinfo nscreens" && echo
|
|
|
|
get_cmd "xprop" && echo 'ok'
|
|
|
|
get_cmd "xset" && get_version "xset -version"
|
|
|
|
get_cmd "x-window-manager" && get_version "x-window-manager -V"
|
2018-04-19 20:10:57 +02:00
|
|
|
|
2018-05-22 18:58:28 +02:00
|
|
|
echo
|
|
|
|
echo "---"
|
|
|
|
echo
|
2018-02-25 19:00:40 +01:00
|
|
|
|
2018-04-19 20:10:57 +02:00
|
|
|
###############################################################################################################
|
|
|
|
|
|
|
|
# cpuinfo
|
|
|
|
echo '## cpuinfo'
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "\\n%s\\n" '```'
|
|
|
|
if [ -e "/proc/cpuinfo" ]; then
|
|
|
|
if command -v awk >/dev/null; then
|
|
|
|
awk '{if ( $0 ~ /^$/ ) {exit} else {print}}' /proc/cpuinfo 2>/dev/null
|
|
|
|
else
|
|
|
|
echo "/proc/cpuinfo existe, mais pas de awk"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "/proc/cpuinfo inexistant"
|
|
|
|
fi
|
|
|
|
printf "%s\\n\\n" '```'
|
2018-02-25 19:00:40 +01:00
|
|
|
|
|
|
|
# upower
|
2018-04-08 23:49:31 +02:00
|
|
|
if upower --version 1>/dev/null 2>&1 ; then
|
2018-02-25 19:00:40 +01:00
|
|
|
echo "## upower"
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "\\n%s\\n" '```'
|
2018-02-25 19:00:40 +01:00
|
|
|
upower --enumerate
|
|
|
|
upower --version || echo "upower KO"
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "%s\\n\\n" '```'
|
2018-02-19 07:29:32 +01:00
|
|
|
fi
|
2018-02-23 17:21:29 +01:00
|
|
|
|
2018-02-25 19:00:40 +01:00
|
|
|
# xdriinfo Direct Rendering Interface?
|
2018-04-08 23:49:31 +02:00
|
|
|
if xdriinfo nscreens 1>/dev/null 2>&1 ; then
|
|
|
|
echo "## $( xdriinfo -version 2>/dev/null )"
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "\\n%s\\n" '```'
|
2018-04-08 23:49:31 +02:00
|
|
|
echo "xdriinfo: $( xdriinfo 2>/dev/null )"
|
|
|
|
echo "xdriinfo nscreens: $( xdriinfo nscreens 2>/dev/null )"
|
|
|
|
echo "xdriinfo driver 0: $( xdriinfo driver 0 2>/dev/null )"
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "%s\\n\\n" '```'
|
2018-02-20 20:25:48 +01:00
|
|
|
fi
|
2018-02-19 07:29:32 +01:00
|
|
|
|
2018-02-25 19:00:40 +01:00
|
|
|
# xprop
|
2018-04-19 20:10:57 +02:00
|
|
|
if command -v xprop >/dev/null 2>&1; then
|
2018-02-19 07:29:32 +01:00
|
|
|
# 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
|
2018-04-08 23:49:31 +02:00
|
|
|
xprop="$( xprop -root -notype -display "$DISPLAY" 2>/dev/null )"
|
2018-02-25 19:00:40 +01:00
|
|
|
echo "## xprop"
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "\\n%s\\n" '```'
|
2018-02-25 19:00:40 +01:00
|
|
|
echo "### xprop -id :"
|
2018-02-19 07:29:32 +01:00
|
|
|
echo "$wm_brut"
|
|
|
|
echo
|
2018-03-03 23:49:45 +01:00
|
|
|
echo "### xprop -root -notype -display $DISPLAY :"
|
2018-02-19 07:29:32 +01:00
|
|
|
echo "$xprop"
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "%s\\n\\n" '```'
|
2018-02-19 07:29:32 +01:00
|
|
|
fi
|
|
|
|
|
2018-02-25 19:00:40 +01:00
|
|
|
# /usr/share/xsessions
|
|
|
|
echo "## ls -l /usr/share/xsessions "
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "\\n%s\\n" '```'
|
2018-02-25 19:00:40 +01:00
|
|
|
ls -l /usr/share/xsessions 2>/dev/null
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "%s\\n\\n" '```'
|
|
|
|
|
|
|
|
# général
|
2018-02-25 19:00:40 +01:00
|
|
|
echo "## ps -e"
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "\\n%s\\n" '```'
|
|
|
|
ps -e
|
|
|
|
printf "%s\\n\\n" '```'
|
2018-02-19 07:29:32 +01:00
|
|
|
# env
|
|
|
|
echo "## env"
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "\\n%s\\n" '```'
|
2018-03-03 23:49:45 +01:00
|
|
|
env | sort
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "%s\\n\\n" '```'
|
2018-02-19 07:29:32 +01:00
|
|
|
|
2018-04-08 23:49:31 +02:00
|
|
|
if [ -z "$flag_lspci" ]; then
|
2018-04-08 18:40:38 +02:00
|
|
|
# lspci
|
|
|
|
echo "## lspci -nnk"
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "\\n%s\\n" '```'
|
2018-04-08 18:40:38 +02:00
|
|
|
lspci -nnk
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "%s\\n\\n" '```'
|
2018-04-08 18:40:38 +02:00
|
|
|
fi
|
|
|
|
|
2018-02-19 07:29:32 +01:00
|
|
|
exec 1>&3 # restauration
|
|
|
|
exec 3>&- # fermeture FD
|
|
|
|
|
|
|
|
if [ -z "$noexport" ]; then
|
2018-05-22 18:58:28 +02:00
|
|
|
printf "%s \\n\\n" "url du rapport:"
|
2018-04-08 23:49:31 +02:00
|
|
|
curl -s --upload-file "$output" "https://transfer.sh/$output"
|
2018-02-19 07:29:32 +01:00
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
2018-04-08 18:40:38 +02:00
|
|
|
echo "voir le rapport généré: pager $output" # output="$script.md"
|
2018-02-19 07:29:32 +01:00
|
|
|
echo "effacer le rapport généré: rm $output"
|
2018-02-20 20:25:48 +01:00
|
|
|
echo
|
2018-02-19 07:29:32 +01:00
|
|
|
|
|
|
|
exit 0
|
|
|
|
|
2018-02-23 17:21:29 +01:00
|
|
|
wget -nv -O debug_gi https://framagit.org/kyodev/kyopages/raw/master/scripts/tests/debug_gi
|
2018-02-19 07:29:32 +01:00
|
|
|
chmod +x debug_gi && ./debug_gi
|
|
|
|
|
2018-05-22 18:58:28 +02:00
|
|
|
curl -O https://framagit.org/kyodev/kyopages/raw/master/scripts/tests/debug_gi
|