getInfo 2.48.0

This commit is contained in:
kyodev 2017-11-29 00:59:12 +01:00
parent 97f525a016
commit 448be59113
2 changed files with 124 additions and 34 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=2.47.0
date="27/11/2017"
version=2.48.0
date="28/11/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getInfo"
@ -260,7 +260,7 @@ f__wcv(){ # 09/11/2017
# si $2=print affiche url testée & entêtes http & location (si présente) et sortie normale fonction
# si $2=loc affiche seulement location et sortie normale fonction
# si $2=test return 0 si ok, return 1 si ko
f__wget_test(){ # 06/11/2017
f__wget_test(){ # 28/11/2017
local file_test_wget retourWget retourHttp location
file_test_wget="/tmp/testWget-$$-$RANDOM"
wget -Sq --timeout=10 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget"
@ -296,7 +296,8 @@ f__wget_test(){ # 06/11/2017
fi
if [ "$retourWget" ]; then
rm "$file_test_wget"
f__error "wget, $retourWget" "$1" "$YELLOW$retourHttp" "location"
f__error "wget, $retourWget" "$1" "$YELLOW$retourHttp" "$location"
# echo -e "$RED errur wget, $retourWget \n $1 \n $YELLOW$retourHttp \n $location"
fi
if [ "$(grep -c '200' <<< $retourHttp)" -ne 0 ]; then
echo -e "$GREEN\ntout est ok, réessayer\n$STD"
@ -531,6 +532,85 @@ toDisplay=(
echo -e "$STD\n plus d'infos: $GREEN$urlNotice\n$STD"
}
# $1 chaines à extraire (sur un grep -Ei), $2 objet raw|name
f_lspci(){ # 28/11/2017
local slots lspci display=''
# uniquement le name du device
if [ "$2" == "name" ]; then
while read field1 lspci; do
lspci=${lspci#*: } # lspci==Intel Corporation System Controller ...
lspci=${lspci% (rev*} # suppression à la fin
lspci=${lspci/Corporation } # suppression ' Corporation'
lspci=${lspci/Advanced Micro Devices, Inc. } # suppression 'Advanced Micro Devices, Inc. '
display+="$lspci"$'\n'
done <<< $( lspci | grep -Ei "$1" )
# lspci détaillé
elif [ "$2" == "raw" ]; then
slots=$( lspci | grep -Ei "$1" | cut -d" " -f1 )
if ! lspci -nnv &>/dev/null ; then # commande/option indisponible
display+="lspci -nnv -s <device> non disponible"
else
for lspci in $slots; do
display+=$( lspci -nnv -s "$lspci" )$'\n\n'
done
fi
fi
display=${display%[[:cntrl:]]} # suppression \nl finaux
echo -en "$display\n"
}
fi_audio(){ # 28/11/2017
local audio nb_audio cardsAudio cmd_cards version_alsa card_alsa mod modules text
local alert_alsa
# liste des devices
audio=$( f_lspci "Audio device|Audio controller|Multimedia audio controller" "name" )
# qte de devices
nb_audio=$(f__wcv -l "$audio")
# lspci
cardsAudio=$( f_lspci "Audio device|Audio controller|Multimedia audio controller" "raw" )
cmd_cards="lspci -nnv | grep -EiA6 'Audio device|Audio controller'"
# version ALSA
version_alsa=$( gawk '{
sub(/Advanced Linux Sound Architecture Driver /,"")
sub(/Version /,"")
sub(/.$/,"")
print $0
}' /proc/asound/version )
# cartes gérées par alsa
card_alsa=$( gawk ' { print " "$0 }' /proc/asound/cards )
if [ ! -d /proc/asound ] ; then
alert_alsa="/proc/asound : répertoire inexistant"
alert_alsa="ALSA n'est pas installé correctement"
fi
# modules alsa
mod=$( gawk '{ print $2 }' /proc/asound/modules )
mod=${mod// /}
# modules kernel
modules=$( gawk '
/'$( echo $mod )'/ { printf "%-25s %s %2s %s\n",$1, $2, $3, $4 }
' <<< $( lsmod ) )
cmd_modules="lsmod | grep '$mod'"
cmt_modules="modules kernel"
###
text="## son \n\n"
[ "$audio" ] && text+="$(sed -E 's/(.*)/> \* \*\*\1\*\*/' <<< $audio) \n\n" # mise en puces + quote
# lspci -nnv
f_display "cardsAudio" "cmd" "$cmd_cards"
f_display "version_alsa" "cmd" "/proc/asound/version" "driver alsa (Advanced Linux Sound Architecture)"
f_display "card_alsa" "cmd" "cat /proc/asound/cards" "cartes enregistées"
f_display "mod" "cmd" "cat /proc/asound/modules" "modules alsa"
f_display "modules" "cmd" "$cmd_modules" "$cmt_modules"
echo -en "$text\n" >> "$fileOutput"
unset text
}
fi_batt(){ # 10/11/2017
local pluriel
[ "$fg_nb_batt" ] || figet_batt
@ -762,7 +842,7 @@ fi_efi(){ # 20/11/2017
unset text
}
fi_graph(){ # 27/11/2017
fi_graph(){ # 28/11/2017
local slots cards cmd_cards ig
local stck_glxinfo stck_glxinfoOpt stck_glxinfoDri glx_dvc cmd_glx_dvc glx_dvc_temp openGl cmd_openGl
local providers resolutions pluriel modules cmt_modules text
@ -775,7 +855,7 @@ fi_graph(){ # 27/11/2017
# slots pci video
slots="$(lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1)"
# lspci
cmd_cards="lspci -nnv | grep -iEA11 'vga|display|3d'" # commande par défaut
cmd_cards="lspci -nnv | grep -EiA11 'VGA .* controller|Display controller|3D controller'" # commande par défaut
if ! lspci -nnv &>/dev/null ; then # commande/option indisponible
cards="lspci -nnv non disponible"$'\n'
elif [ "$fg_nb_gpu" -gt 1 ]; then # plusieurs cartes, essai optirun ou prime
@ -1534,20 +1614,21 @@ fi_pkg_x(){ #v2 23/11/2017
f_display "alert_pkg_todo" "var" "aide souhaitée"
}
fi_reseau(){ # 27/11/2017
local slots cards ip_a iwconfig interfaces route resolv canal_wifi ifx text pluriel
fi_reseau(){ # 28/11/2017
local reseau nb_reseau cards cmd_cards ip_a iwconfig interfaces route resolv canal_wifi ifx text pluriel
local slots
local alert_wlx alert_ifconfig
# cardsManuel="$(lspci -nnk | grep -EiA 5 'network|ethernet')"
# cardsManuel="$(lspci -nnv | grep -EiA 15 'network|ethernet')"
# cardsManuel="lspci -nnv -s $( lspci | grep -Ei 'network|ethernet' | cut -d" " -f1 )" si devices plusieurs slots???
#lspci
slots="$(lspci | grep -Ei 'network|ethernet' | cut -d" " -f1)"
for ifx in $slots; do
cards+=$( lspci -s $ifx -nnv )$'\n'
done
cards=${cards//(prog-if*])} #suppression (prog-if...])
[ "$cards" ] && cards=${cards::-1} # suppression dernier $'\n'
[ $( f__wcv -l "$cards" ) -eq 0 ] && cards="lspci incompatible"
# liste des devices
reseau=$( f_lspci "Ethernet controller|Network controller" "name" )
# nombre de devices
nb_reseau=$(f__wcv -l "$reseau")
# lspci
cards=$( f_lspci "Ethernet controller|Network controller" "raw" )
cmd_cards="lspci -nnv | grep -EiA 15 'network|ethernet'"
# ip a & route
ip_a=$( ip a | sed '/link\/ether/d; /valid_lft/d' ) # filtre sur adr MAC & bail
# ip_a=$( sed '/inet6.*scope global/d; /inet6.*scope link/d' <<< $ip_a ) # filtre sur inet6 scope global & scope link (fe80::)
@ -1588,8 +1669,10 @@ fi_reseau(){ # 27/11/2017
[ "$fg_mod_net" ] || figet_mod_net
###
# text="## réseau \n\n"
#lspci
f_display "cards" "cmd" "lspci -nnv | grep -EiA 15 'network|ethernet"
#echo -"$reseau"-
[ "$reseau" ] && text+="$(sed -E 's/(.*)/> \* \*\*\1\*\*/' <<< $reseau) \n\n" # mise en puces + quote
# lspci -nnv
f_display "cards" "cmd" "$cmd_cards"
# ip locales avec type
[ $(f__wcv "-l" "$fg_ip_tp") -gt 1 ] && pluriel="s" || unset pluriel
f_display "fg_ip_tp" "sans" "" "IP locale"$plurielD
@ -2705,8 +2788,7 @@ figet_dmi(){ #v2 06/11/2017
}
# assigne $fg_gpu (liste des gpu), $fg_nb_gpu
# requis: f__wcv
figet_gpu(){ #v3 10/11/2017
figet_gpu(){ #v3 27/11/2017
local lspci field1
lspci="$(lspci -mm 2>/dev/null)"
if [ "$?" -eq 0 ]; then
@ -2715,13 +2797,14 @@ figet_gpu(){ #v3 10/11/2017
sub(/ Corporation/,"",$3); sub(/Advanced Micro Devices, Inc. /,"",$3); sub(/ /," ",$3);
print $3": "$4}' <<< $lspci)"
else # lspci -mm en erreur, utilisation lspci (dans les requis)
read field1 lspci <<< $(IFS=':' lspci | grep -E 'Display |3D |VGA ') # lspci==VGA compatible controller: Intel Corporation System ...
fg_gpu=${lspci/*:/} # lspci==Intel Corporation System Controller ...
fg_gpu=${fg_gpu/ Corporation} # suppression ' Corporation'
while read field1 lspci; do
fg_gpu+="$lspci"$'\n'
done <<< $( lspci | grep -Ei 'Display |3D |VGA ' )
fg_gpu=${fg_gpu#*: } # lspci==Intel Corporation System Controller ...
fg_gpu=${fg_gpu% (rev*} # remplacement espace double par simple
fg_gpu=${fg_gpu/Corporation } # suppression ' Corporation'
fg_gpu=${fg_gpu/Advanced Micro Devices, Inc. } # suppression 'Advanced Micro Devices, Inc. '
fg_gpu=${fg_gpu/ / } # remplacement espace double par simple
fg_gpu=${fg_gpu## } # suppression du plus nombre d'espaces au début
fg_gpu=${fg_gpu%% } # suppression du plus nombre d'espaces à la fin
fg_audio=${fg_audio%[[:cntrl:]]} # suppression derniers $'\n'
fi
fg_nb_gpu=$(f__wcv -l "$fg_gpu")
}
@ -2789,7 +2872,7 @@ figet_hw(){ #v2 31/10/2017
}
# assigne $fg_ip, $fg_ip_tp, $fg_gws, $fg_gws_tp, $fg_ifn_prior, $fg_ifn, $fg_mac, fg_mac_tp
figet_ip(){ # 09/11/2017
figet_ip(){ # 27/11/2017
local ifn
[ $( f__which ip ) ] || return 1
fg_ip="$(sed '/[[:digit:]]:[[:blank:]]lo.*inet/d; /inet6.*scope/d' <<< $(ip -o a) | gawk '{print " ",$4,"(",$2,")"}')"
@ -2800,13 +2883,14 @@ figet_ip(){ # 09/11/2017
fg_ifn_prior="$(ip route get 255.255.255.255 | sed -nr 's/.*src ([0-9.]+).*/\1/p')"
for ifn in $(ls /sys/class/net/) ; do
[ "$ifn" != "lo" ] && fg_ifn+=" $ifn"$'\n'
[ "$ifn" != "lo" ] && fg_mac+=" $ifn: $(< /sys/class/net/$ifn/address)"$'\n'
[ "$ifn" != "lo" ] && fg_mac+=" $ifn: $(cat /sys/class/net/$ifn/address)"$'\n'
done
fg_ifn="$(sed '/^[[:blank:]]*$/d' <<< $fg_ifn)" # suppression lignes vides
fg_mac="$(sed '/^[[:blank:]]*$/d' <<< $fg_mac)" # suppression lignes vides
# fg_ifn="$(sed '/^[[:blank:]]*$/d' <<< $fg_ifn)" # suppression lignes vides
# fg_mac="$(sed '/^[[:blank:]]*$/d' <<< $fg_mac)" # suppression lignes vides
# voir cat /sys/class/net/wlp1s0/uevent
fg_mac_tp="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $fg_mac)"
[ "$fg_ifn" ] && fg_ifn=${fg_ifn::-1} # suppression dernier $'\n'
[ "$fg_mac" ] && fg_mac=${fg_mac::-1} # suppression dernier $'\n'
fg_ifn=${fg_ifn%[[:cntrl:]]} # suppression derniers $'\n'
fg_mac_tp=${fg_mac_tp%[[:cntrl:]]} # suppression derniers $'\n'
}
# $1=4|6, assigne $fg_public
@ -2920,7 +3004,7 @@ figet_mem(){ # 27/11/2017
[ "$a" == "SwapFree" ] && SwapFree="${b/kB}"
[ "$a" == "SwapCached" ] && SwapCached="${b/kB}"
done <<< $(< /proc/meminfo)
$IFS="$IFS_INI"
IFS="$IFS_INI"
MemUsed=$(( $MemTotal-($MemFree+$Buffers+$Cached+$SReclaimable) ))
SwapUsed=$(( $SwapTotal-$SwapFree ))
totalTotal=$(( $MemTotal+$SwapTotal ))
@ -3479,7 +3563,7 @@ prg_1(){ # début
prg_2(){ # traitements principaux 21/11/2017
if [[ "$1" == all || "$1" =~ s ]]; then #systeme, matériel -cs
echo -e "# ▷ Système \n\n" >> "$fileOutput"
for i in fi_systeme fi_cpu fi_mem fi_hw fi_batt fi_graph fi_disk fi_usb ; do
for i in fi_systeme fi_cpu fi_mem fi_hw fi_batt fi_graph fi_disk fi_audio fi_usb ; do
echo -n "•"
$i
done
@ -3602,7 +3686,7 @@ for j in $options; do
-t | --test )
prg_1 "$*"
echo -n "•"
fi_disk
fi_audio
exit ;; # test
-c* | all )
[ "$j" == "-c" ] && exec $0 "menu"

View File

@ -5,6 +5,12 @@
## 2.48.0 28/11/2017
* nouveau: début audio: fi_audio
* nouveau: f_lspci
* révision: fi_reseau, utilisation f_lspci
## 2.47.0 27/11/2017
* nouveau, révision: fi_dmesg, firmware bug, info_ucode