getInfo 2.18.0

This commit is contained in:
kyodev 2017-10-26 05:23:33 +02:00
parent dd1f035f95
commit 7f0f9d8cc0
2 changed files with 55 additions and 52 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=2.17.4
date="25/10/2017"
version=2.18.0
date="26/10/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getInfo"
@ -305,7 +305,7 @@ f__wget_test(){ # 17/10/2017
exit 0
}
# f_display: $1 variable à afficher, $2=var|cmd|sans (type titrage) [$3 titrage] [$4 commentaire titrage dans cmd]
# f_display: $1 variable à afficher, $2=var|cmd|sans (type titrage) [$3 titrage] [$4 commentaire titrage en gras si cmd]
# f_display "variable" "type" "titrage" "titrage_commentaire"
f_display(){ # 25/10/2017
[ "$text" ] && echo -en "$text" >> "$fileOutput" # flush avant fonction de text parent
@ -314,7 +314,7 @@ f_display(){ # 25/10/2017
[[ "$2" == "sans" || "$2" == "var" || "$2" == "cmd" ]] || display="erreur script \$2 ($1 $2 $3)"
[ "$2" == "var" ] && display="**$3** \n"
[ "$2" == "cmd" ] && display="\`$3\` \n"
[[ "$2" == "cmd" && "$4" ]] && display="\`$3\` **$4** \n"
[[ "$2" == "cmd" && "$4" ]] && display="\`$3\` **$4** \n"
display+='``` \n'
display+="${!1} \n"
display+='``` \n'
@ -528,14 +528,14 @@ fi_dmesg(){ # 25/10/2017
unset text
}
fi_graph(){ # 25/10/2017
fi_graph(){ # 26/10/2017
local slotGraphCards graphCards alert_Multicarte openGl resolutions logXorg modules ig text
# graphCardsManuel="$(lspci -nnk | grep -EiA 3 'vga|display|3d')"
# graphCardsManuel="$(lspci -nnv | grep -iEA 13 'vga|display|3d)"
# graphCardsManuel="lspci -nnv -s $( lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1 )"
# debug: slotGraphCards="$(cat tests/lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1)"
# lspci
slotGraphCards="$(lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1)"
# debug: slotGraphCards="$(cat tests/lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1)"
graphCards=${graphCards::-1} # suppression dernier $'\n'
if [ $(f__cmd_exist optirun) ]; then
for ig in $slotGraphCards; do
@ -559,18 +559,18 @@ fi_graph(){ # 25/10/2017
# openGl
[ $(f__cmd_exist glxinfo) ] && openGl=$( glxinfo | grep 'OpenGL version' | sed 's/ string//' )
# résolutions
[ $(f__cmd_exist xrandr) ] && resolutions=$( xrandr --query | grep '^ *[0-9]' | head -n 10 )
[ $(f__cmd_exist xrandr) ] && resolutions=$( xrandr --query | grep -A11 'Screen [0-9]' )
# modules
modules=$(lsmod | grep -Ei 'amdgpu|ati|i915|nouveau|nvidia|radeon|video|gma')
# fonctions externes
[ "$fget_gpu" ] || figet_gpu
[ "$fget_resolution" ] || figet_resolution
[ "$fget_resolution" ] || figet_screen
###
text="## graphisme \n\n"
# cartes graphiques
text+="$(sed -E 's/(.*)/> \* \*\*\1\*\*/' <<< $fget_gpu) \n"
text+="$(sed -E 's/(.*)/> \* \*\*\1\*\*/' <<< $fget_gpu) \n\n"
# nb écran & résolution(s) active(s)
text+="\n\nnombre d'écrans: **$fget_nb_screen** \n"
text+="nombre d'écrans: **$fget_nb_screen** \n"
text+="résolution: **$fget_resolution** \n\n"
# lspci
f_display "graphCards" "cmd" "lspci -nnv | grep -iEA 13 'vga|display|3d"
@ -580,7 +580,7 @@ fi_graph(){ # 25/10/2017
[ "$openGl" ] && f_display "openGl" "cmd" "glxinfo | grep 'OpenGL version"
# résolutions possibles, pas d'affichage si mode (ssh) ou xrandr pas accessible
if [ "$resolutions" ]; then
f_display "resolutions" "cmd" "xrandr --query | grep '^ *[0-9]' | head -n 10" "(10 premières résolutions possibles)"
f_display "resolutions" "cmd" "xrandr --query | grep -A11 'Screen [0-9]'" "(10 premières résolutions possibles)"
fi
# modules vidéo
text+="### modules video \n\n"
@ -774,12 +774,12 @@ fi_nm(){ # 25/10/2017
fi_nm_wifis(){ # 25/10/2017
[ "$(f__cmd_exist nmcli)" ] || return 0
local nm_wifis nm_connected text
nm_wifis="$(nmcli -f SSID,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY device wifi list)"
nm_wifis="$(nmcli -f SSID,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY device wifi list | head -n20)"
nm_connected="$(LC_ALL=C nmcli -f SSID,ACTIVE,IN-USE device wifi list | gawk '/yes[[:space:]]+\*/ {print $1}')"
###
[ "$nm_wifis" ] || return 0
text="## wifis à proximité \n\n"
f_display "nm_wifis" "cmd" "nmcli -f SSID,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY device wifi list"
f_display "nm_wifis" "cmd" "nmcli -f SSID,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY device wifi list | head -n20"
printf "$text\n" >> "$fileOutput"
unset text
}
@ -802,33 +802,39 @@ fi_nonFree(){ # 25/09/2017
unset text
}
fi_reseau(){ # 25/10/2017
fi_reseau(){ # 26/10/2017
local slotNetCard netCard ip_a iwconfig interfaces route resolv liste_canaux_wifi ifx text pluriel
# netCardManuel="$(lspci -nnk | grep -EiA 5 'network|ethernet')"
# netCardManuel="$(lspci -nnv | grep -EiA 15 'network|ethernet')"
# netCardManuel="lspci -nnv -s $( lspci | grep -Ei 'network|ethernet' | cut -d" " -f1 )"
#lspci
slotNetCard="$(lspci | grep -Ei 'network|ethernet' | sed -En 's/^([0-9.:]+).*$/\1/gp')"
for ifx in $slotNetCard; do
netCard+="$(lspci -s $ifx -nnv)"$'\n'
done
netCard=${netCard::-1} # suppression dernier $'\n'
# 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::)
ip_a="$(sed '/inet6.*/d' <<< $ip_a)" # filtre sur inet6)
route="$(ip route show)"
# interfaces & resolv
interfaces="$(grep -Ersv '#|^$' /etc/network/interfaces*)"
interfaces="$(sed -E 's/wpa-psk [[:graph:]]+/wpa-psk <WPA key removed>/; s/:/: /' <<< $interfaces )"
resolv="$(grep -Ev '#|^$' /etc/resolv.conf)"
# iwconfig
if [ "$(f__cmd_exist iwconfig)" ]; then #paquet wireless-tools requis
iwconfig="$(iwconfig 2>&1 | grep -v 'no wireless extensions' | grep -v '^$')"
fi
# iwlist
if [ "$(f__cmd_exist iwlist)" ]; then # liste canaux wifi; paquet wireless-tools requis
liste_canaux_wifi="$(iwlist chan 2>&1 | grep -Ev 'no frequency information|^$')"
fi
# network manager
netmgrpaths=("/usr/sbin/NetworkManager" "/usr/sbin/wicd" "/usr/sbin/connmand")
netmgrnames=("NetworkManager" "Wicd" "ConnMan")
for ifx in "${!netmgrpaths[@]}"; do
if [ -f "${netmgrpaths[$ifx]}" ]; then netmgrinst+="${netmgrnames[$ifx]}"; fi
[ -f "${netmgrpaths[$ifx]}" ] && netmgrinst+="${netmgrnames[$ifx]}"
if [ "$(ps -ef | grep -c ${netmgrpaths[$ifx]})" -ge 2 ]; then
netmgrrun+="$(ps -ef | grep -o "${netmgrpaths[$ifx]}.*$" | head -n 1)"
fi
@ -837,7 +843,9 @@ fi_reseau(){ # 25/10/2017
figet_mod_net
###
text="## réseau \n\n"
#lspci
f_display "netCard" "cmd" "lspci -nnv | grep -EiA 15 'network|ethernet"
# ip locales avec type
f_display "ip_local_type" "var" "IP locale(s):"
text+="* les adresses Mac peut être affichées avec "'`./getInfo --mac` ou `getInfo --mac`'" (script installé) \n"
text+="* l'IP publique peut être connue avec: "'`./getInfo --ip` ou `getInfo --ip` (script installé) \n\n'
@ -847,22 +855,23 @@ fi_reseau(){ # 25/10/2017
text+="au pire, changer le renommage: "
text+="https://kyodev.frama.io/kyopages/trucs/interfaces-nommage-classique/ \n\n"
fi
#gateway
f_display "gateways" "var" "Passerelle(s):"
if [ "$(wc -w <<< $ifnames)" -gt 1 ]; then # si plus d'une interface réseau
f_display "if_prioritaire" "var" "interface prioritaire"
fi
# interface prioritaire
[ "$(wc -w <<< $ifnames)" -gt 1 ] && f_display "if_prioritaire" "var" "interface prioritaire"
# ip a & route & interface & resolv
f_display "ip_a" "cmd" "ip address" "(sans ipV6 et sans adresses MAC)"
f_display "route" "cmd" "ip route show"
f_display "interfaces" "cmd" "grep -Ersv '#|^$' /etc/network/interfaces*"
f_display "resolv" "cmd" "cat /etc/resolv.conf" "(serveurs de noms DNS utilisés)"
if [ "$iwconfig" ]; then
f_display "iwconfig" "cmd" "iwconfig"
fi
# iwconfig & iwlist
[ "$iwconfig" ] && f_display "iwconfig" "cmd" "iwconfig"
if [ "$liste_canaux_wifi" ]; then
f_display "liste_canaux_wifi" "cmd" "iwlist chan"
text+="* la configuration ssid utilisé peut être connue (si NetworkManager utilisé) avec "
text+="\`./getInfo --ssid\` ou \n \`getInfo --ssid\` (script installé) \n\n"
fi
# networl manager
if [ "$netmgrinst" ]; then
text+="### gestionnaire de réseau \n\n"
if [ "$netmgrinst" ]; then
@ -875,12 +884,10 @@ fi_reseau(){ # 25/10/2017
text+="en fonctionnement: "
[ "$netmgrrun" ] && text+="**$netmgrrun** \n\n" || text+="aucun \n\n"
fi
# modules réseau
text+="### modules réseau \n\n"
if [ "$fget_mod_net" ]; then
f_display "fget_mod_net" "var" "liste non garantie complète"
else
text+="**Modules chargés non reconnus**"
fi
[ "$fget_mod_net" ] && f_display "fget_mod_net" "var" "liste non garantie complète"
[ "$fget_mod_net" ] || text+="**Modules chargés non reconnus**"
printf "$text\n" >> "$fileOutput"
unset text
}
@ -1031,7 +1038,7 @@ fi_systeme(){ # 25/10/2017
figet_disk
figet_distro
figet_gpu
figet_resolution
figet_screen
figet_shell
figet_wm
###
@ -1657,33 +1664,24 @@ figet_mod_net(){ # thanks wireless-info, assigne $fget_mod_net # 01/10/2017
fget_mod_net="$(lsmod | grep -E "(^|[[:punct:] ])($MODMATCHES|$LSMODMATCHES)[^[:punct:] ]*([[:punct:] ]|$)")"
}
# assigne $fget_resolution, $fget_nb_screen
figet_resolution(){ # 25/10/2017 thanks neofetch
if [ "$ENV_SSH" ]; then
fget_resolution="n/a (ssh)"
return 0
fi
# assigne $fget_nb_screen, $fget_resolution
figet_screen(){ # 26/10/2017
local resolution
if type -p xrandr >/dev/null; then
resolution="$(xrandr --nograb --current | gawk 'match($0,/[0-9]*\.[0-9]*\*/) {printf $1 " @ " substr($0,RSTART,RLENGTH) "Hz, "}')"
resolution="${resolution//\*}"
resolution="${resolution//\.[0-9][0-9]}"
elif type -p xdpyinfo >/dev/null; then
resolution="$(xdpyinfo | gawk '/dimensions:/ {printf $2}')"
fget_nb_screen="n/a"
fget_resolution="n/a"
if [ "$ENV_SSH" ]; then
fget_resolution+=" (ssh)"
return 0
fi
if [ $(f__cmd_exist xrandr) ]; then
fget_nb_screen=$(( $( grep -c 'Screen [0-9]+:' <<< "$xrandr" ) + 1 ))
resolution=$( gawk '/[0-9]\*/ {gsub(/\*\+/,"",$2); printf "%s pixels (%dHz), ", $1, $2}' <<< $( xrandr --query ) )
elif [ $(f__cmd_exist xdpyinfo) ]; then
fget_nb_screen=$( gawk -F ':' '/number of screens/ { gsub(/ /,"",$2); print $2 }' <<< $(xdpyinfo) )
resolution=$( gawk '/dimensions/ { print $2, $3 ", " }' <<< $(xdpyinfo) )
fi
resolution="${resolution%,*}"
fget_resolution="$resolution"
### nombre d'écrans
local xrandr
if [ $( f__cmd_exist xrandr ) ]; then
xrandr=$( xrandr --query )
# fget_nb_screen=$( gawk -F ':' ' /Screen [0-9]+:/ { print $1}
# ' <<< "$xrandr" )
fget_nb_screen=$(( $( grep -c 'Screen [0-9]+:' <<< "$xrandr" ) + 1 ))
else
fget_nb_screen="-99"
fi
# echo "$fget_nb_screen"
}
figet_shell(){ # thanks neofetch, assigne $fget_shell # 04/10/2017

View File

@ -4,19 +4,24 @@
## todo
* placer ln dans /usr/local/bin au lieu de /usr/bin ?
* réseau réviser, interface name: virbr0
* réseau réviser, interface name: virbr0, docker0
* "alertifier" fi-reseau
* refaire/revoir figet_resolution
* revoir modules réseau
* réviser alert_
* revoir affichage cmd si présente sinon, juste signalement plus discret
* nombre d'écrans
---
* f__requis f__wget_test fscript_get_version fscript_update fscript_cronAnacron
* f__cmd_exist f__sudo f__requis
## 2.18.0 26/10/2017
* nouveau: figet_screen (nb écrans & résolutions)
* suppression: figet_resolution neofetch
* nouveau: xrandr multi-écrans
## 2.17.4 25/10/2017
* nouveau: nombre d'écrans