getInfo 4.0.0

This commit is contained in:
kyodev 2018-03-03 07:40:41 +01:00
parent 1ce194aea9
commit cc11992730
2 changed files with 170 additions and 96 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
version=3.28.0 version=4.0.0
date="01/03/2018" date="02/03/2018"
projet="simpledeb" projet="simpledeb"
contact="IRC freenode.net ##sdeb ou https://framagit.org/kyodev/kyopages/issues/" contact="IRC freenode.net ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getInfo" script="getInfo"
@ -270,7 +270,7 @@ f__sudo(){ # 24/02/2018
# $1=NOM de la variable à trimer (variable et non $variable), [$2=left|right|all], all si vide # $1=NOM de la variable à trimer (variable et non $variable), [$2=left|right|all], all si vide
# gain vitesse en test: 40 à 75% par rapport à '| xargs' # gain vitesse en test: 40 à 75% par rapport à '| xargs'
# var=$( function ) presque 2x lent que eval "var=" # var=$( function ) presque 2x lent que eval "var="
f__trim2(){ # 25/02/2018 f__trim(){ # 02/03/2018
local trim=${!1} local trim=${!1}
[[ "$2" == right || "$2" == all || -z "$2" ]] && trim="${trim%${trim##*[^[:space:]]}}" # fin right [[ "$2" == right || "$2" == all || -z "$2" ]] && trim="${trim%${trim##*[^[:space:]]}}" # fin right
[[ "$2" == left || "$2" == all || -z "$2" ]] && trim="${trim#${trim%%[^[:space:]]*}}" # début left [[ "$2" == left || "$2" == all || -z "$2" ]] && trim="${trim#${trim%%[^[:space:]]*}}" # début left
@ -553,7 +553,7 @@ f_grep_file(){ # 27/01/2018
echo -en "$display" echo -en "$display"
} }
f_help(){ # 26/02/2018 f_help(){ # 02/03/2018
local ligne help=( local ligne help=(
"-----------------------------------------------------------------------" "-----------------------------------------------------------------------"
"$GREEN""./getInfo$STD : exécution script" "$GREEN""./getInfo$STD : exécution script"
@ -569,6 +569,7 @@ f_help(){ # 26/02/2018
"$BLUE -us$STD : upgrade spécial du script en place (sans être installé)" "$BLUE -us$STD : upgrade spécial du script en place (sans être installé)"
"$BLUE --ip$STD : affiche ip publique (ipv4/ipv6), pas de rapport markdown" "$BLUE --ip$STD : affiche ip publique (ipv4/ipv6), pas de rapport markdown"
"$BLUE --mac$STD : affiche adresses Mac, pas de rapport markdown" "$BLUE --mac$STD : affiche adresses Mac, pas de rapport markdown"
"$BLUE --rc$STD : fetch, affiche un résumé, destiné à l'identification et appelé depuis .batchrc"
"$BLUE --serial$STD : affiche n° série disques, batterie et châssis, pas de rapport markdown" "$BLUE --serial$STD : affiche n° série disques, batterie et châssis, pas de rapport markdown"
"$BLUE --ssid$STD : affiche configurations ssid, pas de rapport markdown,$RED root & NetworkManager$STD requis" "$BLUE --ssid$STD : affiche configurations ssid, pas de rapport markdown,$RED root & NetworkManager$STD requis"
"$BLUE -t$STD$GREEN""n$STD : durée de conservation du paste de$GREEN n$STD jour(s)" "$BLUE -t$STD$GREEN""n$STD : durée de conservation du paste de$GREEN n$STD jour(s)"
@ -576,7 +577,9 @@ f_help(){ # 26/02/2018
"-----------------------------------------------------------------------" "-----------------------------------------------------------------------"
"$BLUE./$script -i$STD : installation du script dans le système $RED(root)$STD" "$BLUE./$script -i$STD : installation du script dans le système $RED(root)$STD"
"$BLUE$script -h$STD, --help : affichage aide" "$BLUE$script -h$STD, --help : affichage aide"
"$BLUE$script --irc$STD : installation fetch $RED(root)$STD"
"$BLUE$script -r$STD, --remove : désinstallation du script $RED(root)$STD" "$BLUE$script -r$STD, --remove : désinstallation du script $RED(root)$STD"
"$BLUE$script --rrc$STD : désinstallation fetch $RED(root)$STD"
"$BLUE$script -u$STD, --upgrade : mise à jour script" "$BLUE$script -u$STD, --upgrade : mise à jour script"
"$BLUE$script -v$STD, --version : version du script" "$BLUE$script -v$STD, --version : version du script"
) )
@ -688,7 +691,7 @@ f_prnt(){ # 22/02/2018
# contrainte markdown: # contrainte markdown:
# l'italique avec _ ou * n'est pas géré, trop d'interférences potentielles # l'italique avec _ ou * n'est pas géré, trop d'interférences potentielles
# liste niveau2: 3 ou 4 caractères, niveau3: 6 ou 8 caractères, puce * ou - # liste niveau2: 3 ou 4 caractères, niveau3: 6 ou 8 caractères, puce * ou -
f_prnt_md(){ # 12/12/2017 f_prnt_md(){ # 02/03/2018
local display display2 ligne margin local display display2 ligne margin
if [ ! -f "$1" ]; then if [ ! -f "$1" ]; then
f__info "pas de rapport à afficher, vous devez lancer une analyse auparavant:" \ f__info "pas de rapport à afficher, vous devez lancer une analyse auparavant:" \
@ -707,6 +710,7 @@ f_prnt_md(){ # 12/12/2017
# plus simple pour les multi-patterns, sinon matches multilignes délicats à gérer en cas d'impairage # plus simple pour les multi-patterns, sinon matches multilignes délicats à gérer en cas d'impairage
IFS=$'\n' # normalement inutile IFS=$'\n' # normalement inutile
while read -r ligne; do while read -r ligne; do
[[ "$ligne" == "------------" && "$operation" == "rc" ]] && continue
ligne=${ligne//\\/\\\\} # re echappement des antislash, utile pour efiboot, méthode bourrin, sans comprendre le pourquoi ligne=${ligne//\\/\\\\} # re echappement des antislash, utile pour efiboot, méthode bourrin, sans comprendre le pourquoi
# # TITRE 1 red # # TITRE 1 red
[[ "$ligne" =~ ^(#[^#].*)$ ]] && ligne="\x1B[31m"${BASH_REMATCH[1]}"\x1B(B\x1B[m" [[ "$ligne" =~ ^(#[^#].*)$ ]] && ligne="\x1B[31m"${BASH_REMATCH[1]}"\x1B(B\x1B[m"
@ -737,10 +741,10 @@ f_prnt_md(){ # 12/12/2017
# puces niveau 3 # puces niveau 3
[[ "$ligne" =~ ^([[:space:]]{6,8})\*(.*)$ ]] && ligne=${BASH_REMATCH[1]}'◾ '${BASH_REMATCH[2]} [[ "$ligne" =~ ^([[:space:]]{6,8})\*(.*)$ ]] && ligne=${BASH_REMATCH[1]}'◾ '${BASH_REMATCH[2]}
[[ "$ligne" =~ ^([[:space:]]{6,8})-(.*)$ ]] && ligne=${BASH_REMATCH[1]}'◾ '${BASH_REMATCH[2]} [[ "$ligne" =~ ^([[:space:]]{6,8})-(.*)$ ]] && ligne=${BASH_REMATCH[1]}'◾ '${BASH_REMATCH[2]}
display2+="$margin""$ligne\n" display2+="$margin""$ligne"$'\n'
done <<< "$display" done <<< "$display"
IFS="$IFS_INI" IFS="$IFS_INI"
echo -e "$display2" echo -e "${display2%$'\n'}"
} }
# $1=modules [$2=repertoire spécifique de recherche], affiche emplacements et modules trouvés # $1=modules [$2=repertoire spécifique de recherche], affiche emplacements et modules trouvés
@ -1573,7 +1577,7 @@ fi_mem(){ # 21/02/2018
} }
# [$1=silent], assigne fe_nb_reseau, fe_cards_reseau # [$1=silent], assigne fe_nb_reseau, fe_cards_reseau
fi_net(){ # 22/02/2018 ( matériel ) fi_net(){ # 02/03/2018 ( matériel )
local cards cmd_cards modEth cmd_modEth cmt_modEth modWln cmd_modWln cmt_modWln pluriel text local cards cmd_cards modEth cmd_modEth cmt_modEth modWln cmd_modWln cmt_modWln pluriel text
local alert_wlx local alert_wlx
@ -1582,8 +1586,8 @@ fi_net(){ # 22/02/2018 ( matériel )
# devices # devices
figet_lspci "net" "name" # noms des cartes réseau détectées, mix ethernet/wifi figet_lspci "net" "name" # noms des cartes réseau détectées, mix ethernet/wifi
fe_cards_reseau=${lspci[name]/Network controller: /Wireless: } fe_cards_reseau=${lspci[name]/Network controller: /Wireless: }
fe_cards_reseau=${fe_cards_reseau/Ethernet controller: /Ethernet: }
fe_cards_reseau=${fe_cards_reseau/Wireless Network/Wireless} fe_cards_reseau=${fe_cards_reseau/Wireless Network/Wireless}
fe_cards_reseau=${fe_cards_reseau/Ethernet controller: /Ethernet: }
fe_nb_reseau=${lspci[nb_card]} # nombre de cartes réseau détectées, mix ethernet/wifi fe_nb_reseau=${lspci[nb_card]} # nombre de cartes réseau détectées, mix ethernet/wifi
[ "$1" == "silent" ] && return [ "$1" == "silent" ] && return
[ "$fe_nb_reseau" -eq 0 ] && return 0 # pas de cartes réseau, rien à voir (en attendant usb ou autre) [ "$fe_nb_reseau" -eq 0 ] && return 0 # pas de cartes réseau, rien à voir (en attendant usb ou autre)
@ -1609,7 +1613,7 @@ fi_net(){ # 22/02/2018 ( matériel )
cmd_modWln="lsmod | grep -Ew '${lspci[srch_mod]}'" cmd_modWln="lsmod | grep -Ew '${lspci[srch_mod]}'"
[ "$( f__wcv -wv "$modWln" "^[[:alnum:]]" )" -gt 1 ] && pluriel="s" || unset pluriel [ "$( f__wcv -wv "$modWln" "^[[:alnum:]]" )" -gt 1 ] && pluriel="s" || unset pluriel
cmt_modWln="**Wifi:** $( f__wcv -wv "$modWln" "^[[:alnum:]]" ) module"$pluriel" utilisé"$pluriel cmt_modWln="**Wifi:** $( f__wcv -wv "$modWln" "^[[:alnum:]]" ) module"$pluriel" utilisé"$pluriel
(( x_ip == 1 )) || figet_ip figet_ip
if grep -iq 'wlx' <<< "$fg_ifn"; then if grep -iq 'wlx' <<< "$fg_ifn"; then
alert_wlx="Une interface wifi est en erreur: $( grep 'wlx' <<< "${fg_ifn// /$'\n'}" ) \n" alert_wlx="Une interface wifi est en erreur: $( grep 'wlx' <<< "${fg_ifn// /$'\n'}" ) \n"
alert_wlx+="l'interface n'est pas reconnue et est donc mal nommée, " alert_wlx+="l'interface n'est pas reconnue et est donc mal nommée, "
@ -1696,7 +1700,7 @@ fi_packagers(){ # 23/11/2017
fi fi
} }
fi_pkg_apt(){ # 28/02/2018 fi_pkg_apt(){ # 02/03/2018
local dateMaj nb_packages ifile info_update text pluriel local dateMaj nb_packages ifile info_update text pluriel
local sources cmt_sources cmd_sources result local sources cmt_sources cmd_sources result
local apt_v apt_version apt_prefs cmt_apt_prefs cmd_apt_prefs alert_non_pref local apt_v apt_version apt_prefs cmt_apt_prefs cmd_apt_prefs alert_non_pref
@ -1934,7 +1938,7 @@ fi_pkg_apt(){ # 28/02/2018
# paquets épinglés (pinning) # paquets épinglés (pinning)
pinned=$( apt-cache policy | grep '\->' ) pinned=$( apt-cache policy | grep '\->' )
while read -r ; do while read -r ; do
f__trim2 "REPLY" f__trim "REPLY"
tempo+="$REPLY"$'\n' tempo+="$REPLY"$'\n'
done <<< "$pinned" done <<< "$pinned"
pinned="${tempo::-1}" pinned="${tempo::-1}"
@ -2256,7 +2260,7 @@ fi_ssid(){ # 24/12/2017
rm "$file_output" rm "$file_output"
} }
fi_system(){ # 01/03/2018 fi_system(){ # 02/03/2018
local mbr uname bootImage initDaemon upstart date_install lastboot uptime uptimePure loadAverage pluriel text local mbr uname bootImage initDaemon upstart date_install lastboot uptime uptimePure loadAverage pluriel text
local enum_batt nb_desktop serverX serverType local enum_batt nb_desktop serverX serverType
local alimentation alim_total local alimentation alim_total
@ -2274,7 +2278,7 @@ fi_system(){ # 01/03/2018
(( x_dmi == 1 )) || figet_dmi (( x_dmi == 1 )) || figet_dmi
(( x_gpu == 1 )) || fi_gpu "silent" (( x_gpu == 1 )) || fi_gpu "silent"
(( x_net == 1 )) || fi_net "silent" (( x_net == 1 )) || fi_net "silent"
(( x_screen )) || figet_screen (( x_screen == 1 )) || figet_screen
(( x_shell == 1 )) || figet_shell (( x_shell == 1 )) || figet_shell
(( x_touchpad == 1 )) || fi_touchpad "silent" (( x_touchpad == 1 )) || fi_touchpad "silent"
(( x_wm == 1 )) || figet_wm (( x_wm == 1 )) || figet_wm
@ -2368,8 +2372,8 @@ fi_system(){ # 01/03/2018
# batterie(s) # batterie(s)
enum_batt=$( grep -E '[A-Z][A-Z]' <<< "$fg_batt" ) enum_batt=$( grep -E '[A-Z][A-Z]' <<< "$fg_batt" )
### ###
if [ "$1" == "rc" ]; then if [ "$operation" == "rc" ]; then
fi_systemRc fi_system_rc
return return
fi fi
[ "$ORIGIN" ] && f_prnt tit2 "système" [ "$ORIGIN" ] && f_prnt tit2 "système"
@ -2393,8 +2397,8 @@ fi_system(){ # 01/03/2018
f_prnt l2 "$uname" f_prnt l2 "$uname"
f_prnt l2 "boot: $mbr" f_prnt l2 "boot: $mbr"
f_prnt l2 "architecture système: $fu_archi" f_prnt l2 "architecture système: $fu_archi"
f_prnt l2 "date d'installation: $date_install" f_prnt l2 "installation: $date_install"
f_prnt l2 "démon d'initialisation: $initDaemon" f_prnt l2 "démon init: $initDaemon"
f_prnt l3 "$upstart" '[ "$upstart" ]' f_prnt l3 "$upstart" '[ "$upstart" ]'
f_prnt l2 "shell actif: $fg_shell" f_prnt l2 "shell actif: $fg_shell"
[ "$( f__wcv -w "$fg_shells" )" -gt 1 ] && pluriel="s" || unset pluriel [ "$( f__wcv -w "$fg_shells" )" -gt 1 ] && pluriel="s" || unset pluriel
@ -2406,8 +2410,7 @@ fi_system(){ # 01/03/2018
f_prnt l2 "nombre d'écrans: $fg_nb_screen" f_prnt l2 "nombre d'écrans: $fg_nb_screen"
[ $( f__wcv "-wv" "$fg_resolution" "pixels" ) -gt 1 ] && pluriel="s" || unset pluriel [ $( f__wcv "-wv" "$fg_resolution" "pixels" ) -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "résolution"$pluriel": $fg_resolution" f_prnt l2 "résolution"$pluriel": $fg_resolution"
[ $( wc -w <<< "$fg_dm" ) -gt 1 ] && pluriel="s" || unset pluriel f_prnt l2 "display manager: $fg_dm"
f_prnt l2 "display manager"$pluriel": $fg_dm"
f_prnt l2 "desktop (DE): $fg_de" f_prnt l2 "desktop (DE): $fg_de"
f_prnt l2 "panel: $fg_de_panel" '[ "$fg_de_panel" ]' f_prnt l2 "panel: $fg_de_panel" '[ "$fg_de_panel" ]'
f_prnt l2 "window manager: $fg_wm" f_prnt l2 "window manager: $fg_wm"
@ -2434,46 +2437,6 @@ fi_system(){ # 01/03/2018
f_dspl_alrt "$alert_slim" "alert" f_dspl_alrt "$alert_slim" "alert"
} }
fi_systemRc(){
f_prnt 2 "${fg_dmi//$'\n'/ }"
f_prnt 2 "$( sed -n '1p' <<< "$fg_cpu" )"
f_prnt 2 "$fe_gpu"
f_prnt 2 "$fe_cards_reseau"
f_prnt
f_prnt l2 "distrib: $fg_distrib"
f_prnt l2 "kernel: $uname"
f_prnt l2 "boot: $mbr"
f_prnt l2 "date d'installation: $date_install"
f_prnt l2 "démon d'initialisation: $initDaemon"
f_prnt l3 "$upstart" '[ "$upstart" ]'
f_prnt l2 "shell: $fg_shell"
f_prnt l2 "${bootImage//$'\n'/ }"
f_prnt l2 "serveur d'affichage$serverType $serverX"
f_prnt l2 "nombre d'écrans: $fg_nb_screen"
[ $( f__wcv "-wv" "$fg_resolution" "pixels" ) -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "résolution"$pluriel": $fg_resolution"
[ $( wc -w <<< "$fg_dm" ) -gt 1 ] && pluriel="s" || unset pluriel
f_prnt l2 "display manager"$pluriel": $fg_dm"
f_prnt l2 "desktop (DE): $fg_de"
f_prnt l2 "panel: $fg_de_panel" '[ "$fg_de_panel" ]'
f_prnt l2 "window manager: $fg_wm"
f_prnt
f_prnt 1 "$fg_disk_part_fix_tot"
f_prnt 1 "dernier boot: $lastboot ($uptime)"
loadAverage=$(
LC_ALL=C uptime 2>/dev/null | awk -v threads="$fg_nb_threads" -F'(, )' '{
gsub(/ load average: /,"")
if ( threads > 1 ) th="threads"; else th="thread"
la1 = $(NF-2)
la5 = $(NF-1)
la15 = $NF
printf "charge système: %s %s %s, ", la1, la5, la15
printf "soit avec %d %s : %d%% %d%% %d%% ", threads, th, la1/2*100, la5/2*100, la15/2*100
}' )
f_prnt 1 "$loadAverage"
f_prnt flush
}
fi_system_analyse(){ # 25/02/2018 fi_system_analyse(){ # 25/02/2018
[ $( f__which systemd ) ] || return 0 # pas systemd [ $( f__which systemd ) ] || return 0 # pas systemd
local bootTime cmd_bootTime cmt_bootTime pluriel text local bootTime cmd_bootTime cmt_bootTime pluriel text
@ -2546,6 +2509,61 @@ fi_system_analyse(){ # 25/02/2018
f_dspl cmd:text "$bootGraph" "$cmd_bootGraph" "$cmt_bootGraph" f_dspl cmd:text "$bootGraph" "$cmd_bootGraph" "$cmt_bootGraph"
} }
fi_system_rc(){ # 02/03/2018
local if_actif iip ip_act
if_actif=$( ip -o link | awk '/state UP/{sub(/:/,"",$2); printf "%s ",$2}' )
for iip in $if_actif; do
ip_act+=$( ip -o address show dev $iip | awk '
#~ /inet/ { sub(/wl.*/,"wifi: "$2,$2); sub(/en.*|eth.*/,"rj45: "$2,$2); sub(/\/.*/,"", $4) }
/inet/ { sub(/\/.*/,"", $4) }
/inet6/ { ip6 = $4; exit }
/inet / { ip4 = $4 }
END { printf "%s %s %s",$2,ip4,ip6 }' )
done
f_prnt code
f_prnt 2 "$( sed -n '1p' <<< "$fg_dmi" )"
f_prnt 2 "$( sed -n '1p' <<< "$fg_cpu" )"
f_prnt 2 "$fe_gpu"
#~ f_prnt 2 "$fe_cards_reseau"
if grep -q 'wl.*' <<< "$ip_act"; then
#~ toPrint=$( grep 'wl.*' <<< "$ip_act" )$'\n'" $( grep 'Wireless:' <<< "$fe_cards_reseau" )"
toPrint=$( grep 'Wireless:' <<< "$fe_cards_reseau" )$'\n'" $(grep 'wl.*' <<< "$ip_act" )"
f_prnt l2 " * ${toPrint/Wireless: }"
fi
if grep -Eq 'en.*|eth.*' <<< "$ip_act"; then
toPrint=$( grep 'Ethernet:' <<< "$fe_cards_reseau" )$'\n'" $(grep -E 'en.*|eth.*' <<< "$ip_act" )"
f_prnt l2 " * ${toPrint/Ethernet: }"
fi
f_prnt
f_prnt l2 "distrib: $fg_distrib (installation: $date_install)"
f_prnt l2 "kernel : $uname"
f_prnt l2 "boot: $mbr, init: $initDaemon $upstart"
f_prnt l2 "shell : $fg_shell"
f_prnt l2 "serveur d'affichage$serverType $serverX"
f_prnt l2 "nombre d'écrans: $fg_nb_screen"
f_prnt l2 "résolution"$pluriel": $fg_resolution"
f_prnt l2 "display manager: $fg_dm"
f_prnt l2 "desktop (DE) : $fg_de"
f_prnt l2 "window manager : $fg_wm"
f_prnt
f_prnt l3 "$fg_disk_part_syst"
f_prnt l3 "dernier boot: $lastboot ($uptime)"
loadAverage=$(
LC_ALL=C uptime 2>/dev/null | awk -v threads="$fg_nb_threads" -F'(, )' '{
gsub(/ load average: /,"")
if ( threads > 1 ) th="threads"; else th="thread"
la1 = $(NF-2)
la5 = $(NF-1)
la15 = $NF
printf "charge système: %s %s %s, ", la1, la5, la15
printf "soit avec %d %s : %d%% %d%% %d%% ", threads, th, la1/2*100, la5/2*100, la15/2*100
}' )
f_prnt l3 "$loadAverage"
f_prnt code
f_prnt flush
}
# [$1=silent], assigne $fe_touchpad, fe_nb_touchpad # [$1=silent], assigne $fe_touchpad, fe_nb_touchpad
fi_touchpad(){ # 24/02/2018 fi_touchpad(){ # 24/02/2018
local device cmd_device toScrut xfile file_logs type type_pt pilote cmd_pilote cmt_pilote info_driver local device cmd_device toScrut xfile file_logs type type_pt pilote cmd_pilote cmt_pilote info_driver
@ -3277,7 +3295,7 @@ figet_cpu_uarch(){ # 14/11/2017
} }
# assigne $fg_de, $fg_de_panel # assigne $fg_de, $fg_de_panel
figet_de(){ # 25/02/2018 # thanks neofetch figet_de(){ # 02/03/2018 # thanks neofetch
local de="n/a" ps_e version tmp_version local de="n/a" ps_e version tmp_version
x_de=1 x_de=1
@ -3321,8 +3339,8 @@ figet_de(){ # 25/02/2018 # thanks neofetch
de=$( unity --version ) de=$( unity --version )
elif [ "${de,,}" == "xfce" ]; then elif [ "${de,,}" == "xfce" ]; then
version=$( xfce4-about --version | head -n1 ) version=$( xfce4-about --version | head -n1 )
version=${version#*(Xfce} version=${version#*\(Xfce}
version=${version%)*} version=${version%\)*}
de="$de$version" de="$de$version"
fi fi
if [ "$de" ]; then if [ "$de" ]; then
@ -3342,12 +3360,12 @@ figet_de(){ # 25/02/2018 # thanks neofetch
# $fg_nb_disk : nb disk fixe & amovible, $fg_disk_table : tableau sommaire, fg_disk_serial # $fg_nb_disk : nb disk fixe & amovible, $fg_disk_table : tableau sommaire, fg_disk_serial
# $fg_disk_fixe : liste devices block fixes, $fg_disk_amov : liste devices block amovibles # $fg_disk_fixe : liste devices block fixes, $fg_disk_amov : liste devices block amovibles
# $fg_disk_part_fix_tot : espace des partitions fixes montées # $fg_disk_part_fix_tot : espace des partitions fixes montées, *fg_disk_part_syst: espace partition système
# $fg_disk_ata, $fg_disk_usb, $fg_disk_mmc, $fg_disk_nvme : liste disk ata, usb... # $fg_disk_ata, $fg_disk_usb, $fg_disk_mmc, $fg_disk_nvme : liste disk ata, usb...
# $fg_disk_part_fixe_m, $fg_disk_part_amov_m : liste partitions montées, fixes ou amovibles # $fg_disk_part_fixe_m, $fg_disk_part_amov_m : liste partitions montées, fixes ou amovibles
# $fg_disk_part_swap : liste partitions swap # $fg_disk_part_swap : liste partitions swap
# $fg_disk_part_fixe_nm, $fg_disk_part_amov_nm : liste partitions non montées, fixes ou amovibles # $fg_disk_part_fixe_nm, $fg_disk_part_amov_nm : liste partitions non montées, fixes ou amovibles
figet_disk(){ # 26/02/2018 figet_disk(){ # 02/03/2018
local size type list_id idisk lsblk vendor model rev serial local size type list_id idisk lsblk vendor model rev serial
unset fg_disk_fixe fg_disk_amov unset fg_disk_fixe fg_disk_amov
@ -3359,26 +3377,26 @@ figet_disk(){ # 26/02/2018
for idisk in $( f__dir -l "/sys/block/" "loop" ); do for idisk in $( f__dir -l "/sys/block/" "loop" ); do
#~ for idisk in /sys/block/* ; do #~ for idisk in /sys/block/* ; do
size=$( lsblk -no SIZE -d /dev/$idisk ) size=$( lsblk -no SIZE -d /dev/$idisk )
f__trim2 "size" f__trim "size"
type=$( lsblk -no HOTPLUG /dev/$idisk | sed -n '2p' ) type=$( lsblk -no HOTPLUG /dev/$idisk | sed -n '2p' )
f__trim2 "type" f__trim "type"
[ "$type" == "0" ] && type="Fixe" || type="Amov" [ "$type" == "0" ] && type="Fixe" || type="Amov"
vendor=$( lsblk -no VENDOR /dev/$idisk ) vendor=$( lsblk -no VENDOR /dev/$idisk )
f__trim2 "vendor" f__trim "vendor"
model=$( lsblk -no MODEL /dev/$idisk ) model=$( lsblk -no MODEL /dev/$idisk )
f__trim2 "model" f__trim "model"
serial=$( lsblk -no SERIAL /dev/$idisk ) serial=$( lsblk -no SERIAL /dev/$idisk )
f__trim2 "serial" f__trim "serial"
if [[ -z "$vendor" || -z "$model" ]]; then # tentative extraction valeur via /dev/disk/by-id/ if [[ -z "$vendor" || -z "$model" ]]; then # tentative extraction valeur via /dev/disk/by-id/
vendor="n/a" vendor="n/a"
vendor=$( ls -l /dev/disk/by-id/ | awk ' !/-part/ && !/wwn-/ {print $9,$11}' ) vendor=$( ls -l /dev/disk/by-id/ | awk ' !/-part/ && !/wwn-/ {print $9,$11}' )
f__trim2 "vendor" f__trim "vendor"
vendor=$( sed -E 's/.*-(.*)_[0-9]+.*$/\1/;s/_/ /g' <<< "$vendor" ) vendor=$( sed -E 's/.*-(.*)_[0-9]+.*$/\1/;s/_/ /g' <<< "$vendor" )
fg_disk_table+=$( printf '%-5s %-8s %-6s %s' "$idisk" "$size" "$type" "$vendor" )$'\n' fg_disk_table+=$( printf '%-5s %-8s %-6s %s' "$idisk" "$size" "$type" "$vendor" )$'\n'
fg_disk_serial+=$( printf '%-5s %s %s' "$idisk" "$vendor" "$serial" )$'\n' fg_disk_serial+=$( printf '%-5s %s %s' "$idisk" "$vendor" "$serial" )$'\n'
else else
rev=$( lsblk -no REV /dev/$idisk ) rev=$( lsblk -no REV /dev/$idisk )
f__trim2 "rev" f__trim "rev"
fg_disk_table+=$( printf '%-5s %-8s %-6s %-10s %-18s %-6s' "$idisk" "$size" "$type" "$vendor" "$model" "$rev")$'\n' fg_disk_table+=$( printf '%-5s %-8s %-6s %-10s %-18s %-6s' "$idisk" "$size" "$type" "$vendor" "$model" "$rev")$'\n'
fg_disk_serial+=$( printf '%-5s %-10s %-18s %-6s %-24s %s' "$idisk" "$vendor" "$model" "$rev" "$serial")$'\n' fg_disk_serial+=$( printf '%-5s %-10s %-18s %-6s %-24s %s' "$idisk" "$vendor" "$model" "$rev" "$serial")$'\n'
fi fi
@ -3413,11 +3431,15 @@ figet_disk(){ # 26/02/2018
# total espaces partitions fixes montées # total espaces partitions fixes montées
fg_disk_part_fix_tot="partitions fixes montées (total, utilisé, dispo): " fg_disk_part_fix_tot="partitions fixes montées (total, utilisé, dispo): "
fg_disk_part_fix_tot+=$( df -h --total --output=size,used,avail $( printf '/dev/%s ' $fg_disk_part_fixe_m ) 2>/dev/null | tail -n-1 ) fg_disk_part_fix_tot+=$( df -h --total --output=size,used,avail $( printf '/dev/%s ' $fg_disk_part_fixe_m ) 2>/dev/null | tail -n-1 )
f__trim2 "fg_disk_part_fix_tot" f__trim "fg_disk_part_fix_tot"
fg_disk_part_fix_tot=${fg_disk_part_fix_tot//G/Go} fg_disk_part_fix_tot=${fg_disk_part_fix_tot//G/Go}
fg_disk_part_fix_tot=${fg_disk_part_fix_tot//M/Mo} fg_disk_part_fix_tot=${fg_disk_part_fix_tot//M/Mo}
fg_disk_part_fix_tot=${fg_disk_part_fix_tot//K/ko} fg_disk_part_fix_tot=${fg_disk_part_fix_tot//K/ko}
[ "$fg_disk_part_fix_tot" ] || fg_disk_part_fix_tot="n/a" [ "$fg_disk_part_fix_tot" ] || fg_disk_part_fix_tot="n/a"
# espace partition système
fg_disk_part_syst=$(df -h --output=source,size,used,avail,target | awk '
/\/$/ {gsub(/G/,"Go"); gsub(/M/,"Mo"); gsub(/k/,"ko")
printf "partition système: %s, total: %s, occupé: %s, libre: %s %d%%",$1,$2,$3,$4, $4/$2*100}' )
# liste des disques par type # liste des disques par type
list_id=$( ls -l /dev/disk/by-id/ | awk '{print $9,$11}' ) list_id=$( ls -l /dev/disk/by-id/ | awk '{print $9,$11}' )
fg_disk_ata=$( awk -F '/' '$0 ~ /^ata/ && $0 !~ /part/{printf "%s ",$NF}' <<< "$list_id" ) fg_disk_ata=$( awk -F '/' '$0 ~ /^ata/ && $0 !~ /part/{printf "%s ",$NF}' <<< "$list_id" )
@ -3653,24 +3675,26 @@ figet_hw(){ # 25/02/2018
} }
# $1=-4|-6, assigne $fg_ip, $fg_gws, $fg_ifn, $fg_mac, fg_ip_deprec (ipv6) # $1=-4|-6, assigne $fg_ip, $fg_gws, $fg_ifn, $fg_mac, fg_ip_deprec (ipv6)
figet_ip(){ # 24/02/2018 figet_ip(){ # 02/03/2018
local target ifn local target ifn
unset fg_ip fg_ip_deprec fg_gws fg_ifn_prior fg_ifn fg_mac unset fg_ip fg_ip_deprec fg_gws fg_ifn_prior fg_ifn fg_mac
x_ip=1
[ $( f__which ip ) ] || return 1 [ $( f__which ip ) ] || return 1
[ "$1" ] && proto="$1" || proto="-4" [ "$1" ] && proto="$1" || proto="-4"
# adresses ip # adresses ip
fg_ip=$( ip $proto -o address | awk -v proto="$proto" ' fg_ip=$( ip $proto -o address | awk -v proto="$proto" '
BEGIN { if (proto == -6) esp=41; else esp=16 } BEGIN { if (proto == -6) larg=41; else larg=16 }
/scope global/ { /scope global/ {
sub(/wl.*/,$2" (wifi)",$2); sub(/.*en.*|.*eth.*/,$2" (ethernet)",$2); sub(/wl.*/,$2" (wifi)",$2); sub(/.*en.*|.*eth.*/,$2" (ethernet)",$2);
match($0,/scope .*\\/); scope=substr($0,RSTART,RLENGTH) printf "%-17s: %-"larg"s ",$2,$4
sub(/scope /,"",scope); sub(/\\/,"",scope) if (proto == -6) {
match($0,/preferred_lft .*sec/); lft=substr($0,RSTART,RLENGTH) match($0,/scope .*\\/); scope=substr($0,RSTART,RLENGTH)
sub(/sec/,"s",lft); sub(/preferred_lft/,"lft",lft) sub(/scope /,"",scope); sub(/\\/,"",scope)
printf "%-17s: %-"esp"s (%s) %s \n",$2,$4,lft,scope } match($0,/preferred_lft .*sec/); lft=substr($0,RSTART,RLENGTH)
sub(/sec/,"s",lft); sub(/preferred_lft/,"lft",lft)
printf "(%s) %s \n",lft,scope }
else printf "\n" }
/fe80::/ { /fe80::/ {
sub(/wl.*/,$2" (wifi)",$2) sub(/wl.*/,$2" (wifi)",$2)
match($0,/scope .* \\/); scope=substr($0,RSTART,RLENGTH); sub(/scope /,"",scope); sub(/ \\/,"",scope) match($0,/scope .* \\/); scope=substr($0,RSTART,RLENGTH); sub(/scope /,"",scope); sub(/ \\/,"",scope)
@ -3686,8 +3710,8 @@ figet_ip(){ # 24/02/2018
# passerelles # passerelles
fg_gws=$( ip $proto route | awk ' fg_gws=$( ip $proto route | awk '
BEGIN { if (proto == -6) esp=42; else esp=12 } BEGIN { if (proto == -6) larg=42; else larg=12 }
/default via/ { printf "%-"esp"s (%s)\n",$3,$5 } /default via/ { printf "%-"larg"s (%s)\n",$3,$5 }
' ) ' )
# interface sortante # interface sortante
if [ "$proto" == "-6" ]; then if [ "$proto" == "-6" ]; then
@ -4326,6 +4350,42 @@ fipaste_curl_markdownshare(){ # à tester/finir
#-d expire ? ou --data expire #-d expire ? ou --data expire
} }
# fonction spécifique à l'installation
fscript_install_special(){ # 02/03/2018
local bashrc
# option --rc
if [ -e "/etc/bash.bashrc" ]; then # debian
bashrc="/etc/bash.bashrc"
elif [ -e "/etc/bashrc" ]; then # redhat
bashrc="/etc/bashrc"
elif [ -e "/etc/bash.bashrc.local" ]; then # suse
bashrc="/etc/bash.bashrc.local"
else
return
fi
grep -q "$script_install --rc" "$bashrc" && return # déjà inscrit
echo -e "\n### add by getInfo" >> "$bashrc"
echo "$script_install --rc" >> "$bashrc"
}
# fonction spécifique à la désinstallation
fscript_remove_special(){ # 02/03/2018
local bashrc
# option --rc
if [ -e "/etc/bash.bashrc" ]; then # debian
bashrc="/etc/bash.bashrc"
elif [ -e "/etc/bashrc" ]; then # redhat
bashrc="/etc/bashrc"
elif [ -e "/etc/bash.bashrc.local" ]; then # suse
bashrc="/etc/bash.bashrc.local"
else
return
fi
sed -i "/$script/d" "$bashrc"
}
# tache upgrade dans anacron hebdomadaire, via cron horaire, $1=upgrade|install|remove # tache upgrade dans anacron hebdomadaire, via cron horaire, $1=upgrade|install|remove
fscript_cronAnacron(){ # 26/01/2018 fscript_cronAnacron(){ # 26/01/2018
local dirAnacron dirSpool fileAnacron local dirAnacron dirSpool fileAnacron
@ -4479,7 +4539,7 @@ prg_init(){ # 01/03/2018
shopt -u force_fignore execfail failglob shopt -u force_fignore execfail failglob
# options bash spé # options bash spé
# shopt -s nocasematch ( case, [[ ) nocaseglob ( fichier ) # shopt -s nocasematch ( case, [[ ), nocaseglob ( fichier )
# whereis script retourne vide si installé # whereis script retourne vide si installé
DIRNAME=$( dirname $0 ) DIRNAME=$( dirname $0 )
@ -4637,7 +4697,7 @@ function display_menu {
prg_init prg_init
# logo et définition couleurs # logo et définition couleurs
[ "$1" != "-rc" ] && f_affichage [ "$1" != "--rc" ] && f_affichage
# paramètres script # paramètres script
user_agent="Mozilla/5.0 Firefox" user_agent="Mozilla/5.0 Firefox"
@ -4673,7 +4733,7 @@ for j in $options; do # première passe options
-t* ) # durée de conservation standard du paste en jours -t* ) # durée de conservation standard du paste en jours
pasteDuration=$(( $( sed -En 's/-t([0-9]+)/\1/p' <<< "$j" ) )) pasteDuration=$(( $( sed -En 's/-t([0-9]+)/\1/p' <<< "$j" ) ))
;; ;;
-i | --install | -r | --remove ) # root requis si install ou remove script -i | --install | -r | --remove | --irc | --rrc ) # root requis si install ou remove script
if [ "$EUID" -ne 0 ]; then if [ "$EUID" -ne 0 ]; then
f__info "vous devez être$RED ROOT$BLUE pour cette opération" f__info "vous devez être$RED ROOT$BLUE pour cette opération"
f__sudo "exec $0 $@" f__sudo "exec $0 $@"
@ -4714,14 +4774,6 @@ for j in $options; do # deuxième passe options, actions
prg_2 "$j" prg_2 "$j"
prg_3 prg_3
;; ;;
-rc ) # essai rc
file_output="/tmp/getInfo.rc"
echo > "$file_output"
chmod 666 "$file_output" &>/dev/null
fi_system "rc"
cat "$file_output"
#~ f_prnt_md "$file_output"
exit ;;
-dx ) # essai détail, xorgOnly -dx ) # essai détail, xorgOnly
prg_1 "$*" prg_1 "$*"
fi_gpu "xorgOnly" fi_gpu "xorgOnly"
@ -4750,6 +4802,15 @@ for j in $options; do # deuxième passe options, actions
figet_ip figet_ip
f__info "adresses MAC:\n$STD$BOLD$fg_mac" f__info "adresses MAC:\n$STD$BOLD$fg_mac"
;; ;;
--rc ) # fetch
operation="rc"
file_output="/tmp/getInfo.rc"
echo > "$file_output"
chmod 666 "$file_output" &>/dev/null
fi_system "rc"
#~ cat "$file_output"
f_prnt_md "$file_output"
exit ;;
--serial ) # affiche n° série --serial ) # affiche n° série
fi_serial fi_serial
;; ;;
@ -4765,12 +4826,18 @@ for j in $options; do # deuxième passe options, actions
-r | --remove ) # remove script -r | --remove ) # remove script
fscript_remove fscript_remove
;; ;;
--irc ) # install fetch
fscript_install_special
;;
--rrc ) # remove fetch
fscript_remove_special
;;
-u | --upgrade ) # upgrade script -u | --upgrade ) # upgrade script
opType="upgrade" # log si f__error operation="upgrade" # log si f__error
fscript_update fscript_update
exit ;; exit ;;
-us | --us ) # upgrade spécial (en place) -us | --us ) # upgrade spécial (en place)
opType="upgrade" # log quand f__error operation="upgrade" # log quand f__error
script_install="$(dirname $0)/$script" script_install="$(dirname $0)/$script"
fscript_update "update en place" # redéfinition répertoire install avec celui du script fscript_update "update en place" # redéfinition répertoire install avec celui du script
exit ;; exit ;;

View File

@ -2,6 +2,13 @@
## getInfo 4.0.0 02/03/2018
nouveau: option rc, affichage résumé ala neofetch, installation incluse dans l'install standard
révision: figet_ip, ipv4
fix: figet_de, version xfce
fix: optype
## getInfo 3.28.0 01/03/2018 ## getInfo 3.28.0 01/03/2018
* nouveau: fi_system, alerte SLiM+systemd * nouveau: fi_system, alerte SLiM+systemd