From 0c5b3a9b7e4d3622e4bf05c984c081cf28a53012 Mon Sep 17 00:00:00 2001 From: kyodev <> Date: Tue, 27 Feb 2018 09:31:41 +0100 Subject: [PATCH] getInfo 3.26.0 --- scripts/getInfo | 145 +++++++++++++++++++---------------- scripts/getInfo_changelog.md | 7 ++ 2 files changed, 87 insertions(+), 65 deletions(-) diff --git a/scripts/getInfo b/scripts/getInfo index 3013157..49108b1 100755 --- a/scripts/getInfo +++ b/scripts/getInfo @@ -1,7 +1,7 @@ #!/bin/bash -version=3.25.0 -date="25/02/2018" +version=3.26.0 +date="26/02/2018" projet="simpledeb" contact="IRC freenode.net ##sdeb ou https://framagit.org/kyodev/kyopages/issues/" script="getInfo" @@ -90,8 +90,8 @@ f__dialog_oui_non(){ # 22/02/2018 # $1=-c|-l|-lc, $2 répertoire, [$3] motif exclusion sur nom fichier, affiche 0|null si répertoire inexistant # -c: compte du nombre de fichiers dans un répertoire - # -l: liste inline des noms de fichiers seuls (idem ls) - # -lc: liste en colonne des noms de fichiers seuls + # -l: liste inline des noms de fichiers seuls (sans chemin) (similaire ls) + # -lc: liste en colonne des noms de fichiers seuls (sans chemin) (similaire ls -1) # si joker (*?) sur chemin, le motif d'exclusion ne s'applique pas à un répertoire listé, juste sur le nom du fichier # attention, les jokers sont interprétés à l'appel de la fonction # exemple: f__dir -l "$dir" "lock|partial" ou "\.list" @@ -258,21 +258,14 @@ f__sudo(){ # 24/02/2018 fi } - # $1=left|right|all si erreur option: all, $2 variable à trimer -f__trim(){ - local tr="$1" display - - if [[ ! "$tr" =~ left|right|all ]]; then - echo "${RED}apple trim incorrect$STD" - return 1 - fi - while read -r ; do - REPLY=${REPLY// } - [[ "$tr" =~ left|all ]] && REPLY=${REPLY## } - [[ "$tr" =~ right|all ]] && REPLY=${REPLY%% } - display+="$REPLY"$'\n' - done <<< "$2" - echo "$display" + # $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' + # var=$( function ) presque 2x lent que eval "var=" +f__trim2(){ # 25/02/2018 + local trim=${!1} + [[ "$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 + eval "$1=\"$trim\"" } # $1=nombre à convertir en ko, affiche ko ou Mo ou Go @@ -543,7 +536,7 @@ f_grep_file(){ # 27/01/2018 echo -en "$display" } -f_help(){ # 02/02/2018 +f_help(){ # 26/02/2018 local ligne help=( "-----------------------------------------------------------------------" "$GREEN""./getInfo$STD : exécution script" @@ -562,6 +555,7 @@ f_help(){ # 02/02/2018 "$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 -t$STD$GREEN""n$STD : durée de conservation du paste de$GREEN n$STD jour(s)" + "$BLUE --debug$STD : messages d'erreur (stderr) logués et exportés avec le rapport" "-----------------------------------------------------------------------" "$BLUE./$script -i$STD : installation du script dans le système $RED(root)$STD" "$BLUE$script -h$STD, --help : affichage aide" @@ -906,15 +900,17 @@ fi_conf(){ # 21/02/2018 f_dspl cmd "$appArmor" "aa-status" "statut AppArmor" } -fi_cpu(){ # 25/02/2018 +fi_cpu(){ # 26/02/2018 local cpu_flags text iflag qte_flags text_flags="" pluriel local alert_microcode (( x_cpu == 1 )) || figet_cpu (( x_cpu_flags == 1 )) || figet_cpu_flags # appel 'base' des tags, obtention $CPU_FLAGS - cpu_flags=$( sed -n 's/^flags.*: \(.*\)$/\1/p;' /proc/cpuinfo | sed -n '1p'| \ - tr ' ' '\n' | sort | tr '\n' ' ' | xargs ) + cpu_flags=$( awk -F ': ' '/^flags/ { print $2; exit }' /proc/cpuinfo | tr ' ' '\n' | sort | tr '\n' ' ' ) + #~ cpu_flags=$( awk -F ': ' '/^flags/ { print $2; exit }' /proc/cpuinfo ) + #~ cpu_flags=$( sort <<< ${cpu_flags// /$'\n'} ) + #~ cpu_flags=${cpu_flags//$'\n'/ } for iflag in $cpu_flags; do text_flags+=$( awk -v motif="$iflag" -F '⟷' ' BEGIN { pattern = "^"toupper(motif) } # recherche sur majuscule @@ -924,7 +920,7 @@ fi_cpu(){ # 25/02/2018 } ' <<< "$CPU_FLAGS" )$'\n' done - text_flags=${text_flags%[[:cntrl:]]} # suppression \n final + text_flags=${text_flags%[[:cntrl:]]} # suppression \n final [ "$cpu_flags" ] && qte_flags=$( f__wcv -w "$cpu_flags" flags ) if ! figet_ucode ; then # retour fonction en erreur => pas d'installation mais possible alert_microcode="$fg_ucode" @@ -1681,7 +1677,7 @@ fi_packagers(){ # 23/11/2017 fi } -fi_pkg_apt(){ # 25/02/2018 +fi_pkg_apt(){ # 26/02/2018 local dateMaj nb_packages ifile info_update text pluriel local sources cmt_sources cmd_sources result local apt_v apt_version apt_prefs cmt_apt_prefs cmd_apt_prefs alert_non_pref @@ -1694,7 +1690,7 @@ fi_pkg_apt(){ # 25/02/2018 local non_ii qte_non_ii cmt_non_ii cmd_non_ii etat ligne stck_etat local deborphan qte_deborphan cmt_deborphan cmd_deborphan local holded qte_holded cmt_holded cmd_holded - local pinned qte_pinned cmd_pinned cmt_pinned + local pinned tempo qte_pinned cmd_pinned cmt_pinned local metaPkg cmd_metaPkg cmt_metaPkg kernel cmd_kernel cmt_kernel local alert_https alert_httpsPossible alert_non_list alert_httpredir alert_upgrade alert_full_upgrade local alert_apt alert_remove alert_autoclean alert_clean alert_non_ii alert_deborphan @@ -1805,9 +1801,9 @@ fi_pkg_apt(){ # 25/02/2018 # full-upgrade if [ "${qte_upgradable[1]}" -gt 0 ]; then notUpgraded=${stck_upgd%The following packages will be upgraded*} # suppression fin - notUpgraded=${notUpgraded#*The following packages have been kept back:} # suppression début + notUpgraded=${notUpgraded#*The following packages have been kept back:} # suppression début notUpgraded=$( sed '/newly/d' <<< "$notUpgraded" | sort | tr '\n' ' ' ) - notUpgraded=${notUpgraded// / } # suppression espace double + notUpgraded=${notUpgraded// / } # suppression espace double [ $(( ${qte_upgradable[1]} )) -gt 1 ] && pluriel="s" || unset pluriel cmt_notUpgraded="${qte_upgradable[1]} paquet"$pluriel" nécessitant une mise à jour profonde (dist-upgrade)" alert_full_upgrade="ces paquets peuvent être mis à jour avec avec: **apt dist-upgrade**" @@ -1921,7 +1917,12 @@ fi_pkg_apt(){ # 25/02/2018 [ "$qte_holded" -eq 0 ] && cmt_holded=${cmt_holded/0 /aucun } cmd_holded="apt-mark showhold" # paquets épinglés (pinning) - pinned=$( f__trim all "$( apt-cache policy | grep '\->' )" ) + pinned=$( apt-cache policy | grep '\->' ) + while read -r ; do + f__trim2 "REPLY" + tempo+="$REPLY"$'\n' + done <<< "$pinned" + pinned="${tempo::-1}" qte_pinned=$( f__wcv "-l" "$pinned" ) [ "$qte_pinned" -gt 1 ] && pluriel="s" || unset pluriel cmd_pinned="apt-cache policy | grep '\->'" @@ -3285,30 +3286,38 @@ figet_de(){ # 25/02/2018 # thanks neofetch # $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_fixe_nm, $fg_disk_part_amov_nm : liste partitions non montées, fixes ou amovibles -figet_disk(){ # 25/02/2018 +figet_disk(){ # 26/02/2018 local size type list_id idisk lsblk vendor model rev serial unset fg_disk_fixe fg_disk_amov x_disk=1 fg_nb_disk=0 # bug printf: caractères accentués diminuent 1 caractère sur arguments suivants, ajouter autant d'espaces - fg_disk_table="$(printf '%-5s %-8s %-6s %-10s %-18s %-6s' "disk" "taille" "type" "vendeur" "modèle" " rév.")"$'\n' - fg_disk_serial="$(printf '%-5s %-10s %-18s %-6s %-24s %s' "disk" "vendeur" "modèle " " rév." " n° série")"$'\n' - for idisk in $(f__dir -l "/sys/block/" "loop" ); do - size=$( lsblk -no SIZE -d /dev/$idisk | xargs ) #149,1G - type=$( lsblk -no HOTPLUG /dev/$idisk | sed -n '2p' | xargs ) # 0 \n 0 \n ... + fg_disk_table="$( printf '%-5s %-8s %-6s %-10s %-18s %-6s' "disk" "taille" "type" "vendeur" "modèle" " rév." )"$'\n' + fg_disk_serial="$( printf '%-5s %-10s %-18s %-6s %-24s %s' "disk" "vendeur" "modèle " " rév." " n° série" )"$'\n' + for idisk in $( f__dir -l "/sys/block/" "loop" ); do + #~ for idisk in /sys/block/* ; do + size=$( lsblk -no SIZE -d /dev/$idisk ) + f__trim2 "size" + type=$( lsblk -no HOTPLUG /dev/$idisk | sed -n '2p' ) + f__trim2 "type" [ "$type" == "0" ] && type="Fixe" || type="Amov" - vendor=$( lsblk -no VENDOR /dev/$idisk | xargs ) - model=$( lsblk -no MODEL /dev/$idisk | xargs ) - serial=$( lsblk -no SERIAL /dev/$idisk | xargs ) + vendor=$( lsblk -no VENDOR /dev/$idisk ) + f__trim2 "vendor" + model=$( lsblk -no MODEL /dev/$idisk ) + f__trim2 "model" + serial=$( lsblk -no SERIAL /dev/$idisk ) + f__trim2 "serial" if [[ -z "$vendor" || -z "$model" ]]; then # tentative extraction valeur via /dev/disk/by-id/ vendor="n/a" - vendor=$( ls -l /dev/disk/by-id/ | awk ' !/-part/ && !/wwn-/ {print $9,$11}' | xargs ) + vendor=$( ls -l /dev/disk/by-id/ | awk ' !/-part/ && !/wwn-/ {print $9,$11}' ) + f__trim2 "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_serial+=$( printf '%-5s %s %s' "$idisk" "$vendor" "$serial" )$'\n' else - rev=$( lsblk -no REV /dev/$idisk | xargs ) + rev=$( lsblk -no REV /dev/$idisk ) + f__trim2 "rev" 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' fi @@ -3319,20 +3328,20 @@ figet_disk(){ # 25/02/2018 fg_disk_amov+="$idisk " fi done - [ "$fg_disk_table" ] && fg_disk_table=${fg_disk_table::-1} # suppression dernier $'\n' + [ "$fg_disk_table" ] && fg_disk_table=${fg_disk_table::-1} # suppression dernier $'\n' [ "$fg_disk_serial" ] && fg_disk_serial=${fg_disk_serial::-1} # suppression dernier $'\n' - # nb de disques (fixe+amovible), peut servir d'indicateur fonction déja appelée + # nb de disques (fixe+amovible) fg_nb_disk=$( tr ' ' '\n' <<< "$fg_disk_fixe$fg_disk_amov" | grep -c . ) # séquences partitions fixes, montées (m) et non montées (nm) - lsblk=$( lsblk -no KNAME,MOUNTPOINT $(printf '/dev/%s ' $fg_disk_fixe) 2>/dev/null ) - fg_disk_part_fixe_m=$( echo "$lsblk" | awk '/\// {print $1}' | tr '\n' ' ' ) - fg_disk_part_fixe_nm=$( echo "$lsblk" | awk '!/\// && /[0-9]+/ && !/\[SWAP\]/{print $1}' | tr '\n' ' ' ) + lsblk=$( lsblk -no KNAME,MOUNTPOINT $( printf '/dev/%s ' $fg_disk_fixe ) 2>/dev/null ) + fg_disk_part_fixe_m=$( awk '/\// {printf "%s ",$1}' <<< "$lsblk" ) + fg_disk_part_fixe_nm=$( awk '!/\// && /[0-9]+/ && !/\[SWAP\]/{printf "%s ",$1}' <<< "$lsblk" ) # séquences partitions amovibles, montées (m) et non montées (nm) - lsblk=$( lsblk -no KNAME,MOUNTPOINT $(printf '/dev/%s ' $fg_disk_amov) 2>/dev/null ) - fg_disk_part_amov_m=$( echo "$lsblk" | awk '/\// {print $1}' | tr '\n' ' ' ) - fg_disk_part_amov_nm=$( echo "$lsblk" | awk '!/\// && /[0-9]+/ && !/\[SWAP\]/{print $1}' | tr '\n' ' ' ) + lsblk=$( lsblk -no KNAME,MOUNTPOINT $( printf '/dev/%s ' $fg_disk_amov ) 2>/dev/null ) + fg_disk_part_amov_m=$( awk '/\// {printf "%s ",$1}' <<< "$lsblk" ) + fg_disk_part_amov_nm=$( awk '!/\// && /[0-9]+/ && !/\[SWAP\]/{printf "%s ",$1}' <<< "$lsblk" ) # partitions swap - fg_disk_part_swap=$( echo "$(lsblk -no KNAME,MOUNTPOINT)" | awk '/\[SWAP\]/ {print $1}' | tr '\n' ' ' ) + fg_disk_part_swap=$( echo "$( lsblk -no KNAME,MOUNTPOINT )" | awk '/\[SWAP\]/ {printf "%s ",$1}' ) [ "$fg_disk_fixe" ] || fg_disk_fixe="-" [ "$fg_disk_amov" ] || fg_disk_amov="-" [ "$fg_disk_part_fixe_m" ] || fg_disk_part_fixe_m="-" @@ -3342,20 +3351,26 @@ figet_disk(){ # 25/02/2018 [ "$fg_disk_part_amov_nm" ] || fg_disk_part_amov_nm="-" # total espaces partitions fixes montées 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 | xargs ) - fg_disk_part_fix_tot=$( sed 's/G/Go/g; s/M/Mo/g; s/K/ko/g' <<< "$fg_disk_part_fix_tot" ) + 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" + 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//K/ko} [ "$fg_disk_part_fix_tot" ] || fg_disk_part_fix_tot="n/a" # liste des disques par type list_id=$( ls -l /dev/disk/by-id/ | awk '{print $9,$11}' ) - fg_disk_ata=$( sed '/^ata/!d; /part/d' <<< "$list_id" | awk -F '/' '{print $NF}' | tr '\n' ' ' ) - fg_disk_usb=$( sed -n '/part/d; /^usb/p' <<< "$list_id" | awk -F '/' '{print $NF}' | tr '\n' ' ' ) -# fg_disk_mmc=$( sed '/^mmc/!d; /part/d; /\/mmcblk/!d; s/^.*\(mmcblk..*\)$/\1/' <<< "$list_id" | tr '\n' ' ' ) - fg_disk_mmc=$( sed '/^mmc/!d; /part/d' <<< "$list_id" | awk -F '/' '{print $NF}' | tr '\n' ' ' ) - fg_disk_nvme=$( sed '/^nvme/!d; /part/d' <<< "$list_id" | awk -F '/' '{print $NF}' | tr '\n' ' ' ) - [ "$fg_disk_ata" ] && fg_disk_ata=$( tr ' ' '\n' <<< "$fg_disk_ata" | sort | tr '\n' ' ' ) || fg_disk_ata="-" - [ "$fg_disk_usb" ] && fg_disk_usb=$( tr ' ' '\n' <<< "$fg_disk_usb" | sort | tr '\n' ' ' ) || fg_disk_usb="-" - [ "$fg_disk_mmc" ] && fg_disk_mmc=$( tr ' ' '\n' <<< "$fg_disk_mmc" | sort | tr '\n' ' ' ) || fg_disk_mmc="-" - [ "$fg_disk_nvme" ] && fg_disk_nvme=$( tr ' ' '\n' <<< "$fg_disk_nvme" | sort | tr '\n' ' ' ) || fg_disk_nvme="-" + fg_disk_ata=$( awk -F '/' '$0 ~ /^ata/ && $0 !~ /part/{printf "%s ",$NF}' <<< "$list_id" ) + fg_disk_usb=$( awk -F '/' '$0 ~ /^usb/ && $0 !~ /-part/{printf "%s ",$NF}' <<< "$list_id" ) + fg_disk_mmc=$( awk -F '/' '$0 ~ /^mmc/ && $0 !~ /-part/{printf "%s ",$NF}' <<< "$list_id" ) + fg_disk_nvme=$( awk -F '/' '$0 ~ /^nvme/ && $0 !~ /-part/{printf "%s ",$NF}' <<< "$list_id" ) + [ "$fg_disk_ata" ] || fg_disk_ata="-" + [ "$fg_disk_usb" ] || fg_disk_usb="-" + [ "$fg_disk_mmc" ] || fg_disk_mmc="-" + [ "$fg_disk_nvme" ] || fg_disk_nvme="-" + #~ [ "$fg_disk_ata" ] && fg_disk_ata=$( tr ' ' '\n' <<< "$fg_disk_ata" | sort | tr '\n' ' ' ) || fg_disk_ata="-" + #~ [ "$fg_disk_usb" ] && fg_disk_usb=$( tr ' ' '\n' <<< "$fg_disk_usb" | sort | tr '\n' ' ' ) || fg_disk_usb="-" + #~ [ "$fg_disk_mmc" ] && fg_disk_mmc=$( tr ' ' '\n' <<< "$fg_disk_mmc" | sort | tr '\n' ' ' ) || fg_disk_mmc="-" + #~ [ "$fg_disk_nvme" ] && fg_disk_nvme=$( tr ' ' '\n' <<< "$fg_disk_nvme" | sort | tr '\n' ' ' ) || fg_disk_nvme="-" } # assigne $fg_distrib @@ -3501,9 +3516,9 @@ figet_dmi(){ # 22/02/2018 done if [ "$1" == "head" ]; then - [ "$product" ] && fg_dmi=$(printf "%-5s : %s " "prod." "$product")$'\n' - [[ "$board" && "$indic1" != "$indic2" ]] && fg_dmi+=$(printf "%-5s : %s " "board" "$board")$'\n' - [ "$bios" ] && fg_dmi+=$(printf "%-5s : %s " "bios" "$bios") + [ "$product" ] && fg_dmi=$( printf "%-5s : %s " "prod." "$product" )$'\n' + [[ "$board" && "$indic1" != "$indic2" ]] && fg_dmi+=$( printf "%-5s : %s " "board" "$board" )$'\n' + [ "$bios" ] && fg_dmi+=$( printf "%-5s : %s " "bios" "$bios" ) fi [ "$product" ] && fg_dmi="$product "$'\n' [[ "$board" && "$indic1" != "$indic2" ]] && fg_dmi+="$board "$'\n' @@ -3890,7 +3905,7 @@ figet_mem(){ # 22/02/2018 fg_mem+="$col$totalTotal$totalUsed$totalAvailable"$'\n' fi if [ "$2" == "debug" ]; then - local espace=$(printf '% 6s') + local espace=$( printf '% 6s' ) fg_mem="$espace""mém.: totale utilisée libre shared buffers cache disponible"$'\n' fg_mem+="$espace""vive:$MemTotal$MemUsed$MemFree$Shmem$Buffers$Cached$MemAvailable"$'\n' [ "$fg_mem" ] && fg_mem=${fg_mem::-1} # suppression dernier $'\n' @@ -4620,7 +4635,7 @@ for j in $options; do # deuxième passe options, actions # fi_reseau fi_nm # fi_system_analyse fi_log_xorg fi_journal # fi_bluez # long - fi_hw + fi_cpu echo [ "$DISPLAY" ] && f_prnt_md "$file_output" || pager "$file_output" ;; diff --git a/scripts/getInfo_changelog.md b/scripts/getInfo_changelog.md index b4e2693..21fbd51 100644 --- a/scripts/getInfo_changelog.md +++ b/scripts/getInfo_changelog.md @@ -1,6 +1,13 @@ # changelog getInfo + + +## getInfo 3.26.0 26/02/2018 + +* révision f__trim (fi_pkg_apt, paquets épinglés) +* révision figet_disk + ## getInfo 3.25.0 25/02/2018 * révision: suppression traces test mawk