getInfo 2.19.0

This commit is contained in:
kyodev 2017-10-27 14:59:30 +02:00
parent f548957c27
commit 5a8c73a65f
2 changed files with 214 additions and 203 deletions

View File

@ -1,7 +1,7 @@
#!/bin/bash
version=2.18.6
date="26/10/2017"
version=2.19.0
date="27/10/2017"
projet="simpledeb"
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
script="getInfo"
@ -119,16 +119,13 @@ f__info(){ # 15/10/2017
}
# log spécifique, fichier log limité à 10000octets, $1 message à loguer
f__log(){ # 08/09/2017
f__log(){ # 27/10/2017
if [ -w "$fileLogs" ]; then
if [ "$(stat -c %s $fileLogs)" -ge "10000" ]; then
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null > "$fileLogs"
else
echo "$(date +%Y%m%d\ %H%M%S) $1" &>/dev/null >> "$fileLogs"
fi
else
f__info "$fileLogs doit être activé" "Réinstaller un script plus récent" \
"voir $GREEN""$urlNotice#installation-rapide-du-script"
fi
}
@ -345,7 +342,7 @@ f_display_scandir(){ # 21/10/2017
echo -e "$text" >> "$fileOutput" # flush fonction
}
f_help(){ # 19/10/2017
f_help(){ # 27/10/2017
printf "$BLUE"
cat << 'EOF'
./getInfo : exécution normale, rapport markdown de la configuration
@ -373,6 +370,7 @@ cat << 'EOF'
-i, --install : installation du script dans le système, root requis
-r, --remove : suppression du script dans le système, root requis
-u, --upgrade : upgrade script si maj possible
-us : upgrade spécial du script (pas de mise à jour auto, maj du script en place)
-v, --version : version du script, en ligne et en cours d'exécution
EOF
echo -e "$STD\n plus d'infos: $GREEN$urlNotice\n$STD"
@ -380,12 +378,12 @@ echo -e "$STD\n plus d'infos: $GREEN$urlNotice\n$STD"
fi_batt(){ # 25/10/2017
local pluriel
[ "$fget_nb_batt" ] || figet_batt # appel figet_battery si pas déjà fait par fi_systeme
[[ "$fget_nb_batt" == "-1" || "$fget_nb_batt" -gt 0 ]] || return 0 # pas de batterie
[ "$fg_nb_batt" ] || figet_batt # appel figet_battery si pas déjà fait par fi_systeme
[[ "$fg_nb_batt" == "-1" || "$fg_nb_batt" -gt 0 ]] || return 0 # pas de batterie
###
[ "$fget_nb_batt" -gt 1 ] && pluriel="s" || unset pluriel
[ "$fg_nb_batt" -gt 1 ] && pluriel="s" || unset pluriel
text="## batterie$pluriel \n\n"
f_display "fget_batt" "sans"
f_display "fg_batt" "sans"
printf "$text\n" >> "$fileOutput"
unset text
}
@ -534,23 +532,22 @@ fi_dmesg(){ # 25/10/2017
unset text
}
fi_graph(){ # 26/10/2017-5
fi_graph(){ # 27/10/2017
local slots cards cmd alert_hybrid alert_3D providers preferred current openGl resolutions modules ig text
# cardsManuel="$(lspci -nnk | grep -EiA 3 'vga|display|3d')" # -nn: textual and numeric ID's, k kernel
# cardsManuel="$(lspci -nnv | grep -iEA 13 'vga|display|3d)" # v=verbose
# spci -nn | grep '\[030[02]\]'
# cardsManuel="lspci -nnv -s $( lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1 )"
# cardsManuel="lspci -nnv -s $( lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1 )" si plusieurs devices possibles??
#debug: slots="$(cat tests/lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1)"
# lspci
slots="$(lspci | grep -Ei 'vga|display|3d' | cut -d" " -f1)"
if [ $(f__cmd_exist optirun) ]; then
for ig in $slots; do
cards+=$(optirun lspci -nnv -s $ig)$'\n'
cards+="$(optirun lspci -nnv -s $ig)"$'\n'
done
cmd="optirun lspci -nnv | grep -iEA 13 'vga|display|3d'"
else
for ig in $slots; do
cards+=$(DRI_PRIME=1 lspci -nnv -s $ig)$'\n'
cards+="$(DRI_PRIME=1 lspci -nnv -s $ig)"$'\n'
done
cmd="DRI_PRIME=1 lspci -nnv | grep -iEA 13 'vga|display|3d'"
fi
@ -563,21 +560,21 @@ fi_graph(){ # 26/10/2017-5
if [ $(f__cmd_exist glxinfo) ]; then
openGl=$( glxinfo | grep -i 'direct rendering' )$'\n'
alert_3D=$(grep -i 'no' <<< $openGl )
openGl+=$( glxinfo | grep 'OpenGL vendor' )$'\n'
openGl+=$( glxinfo | grep 'OpenGL renderer' )$'\n'
openGl+=$( glxinfo | grep 'OpenGL version' )$'\n'
openGl+=$( glxinfo | grep 'OpenGL shading language version' )$'\n'
openGl+=$( glxinfo | grep 'OpenGL extensions' )$'\n'
openGl=$( sed 's/ string//g' <<< "$openGl" )
openGl+="$( glxinfo | grep 'OpenGL vendor' )"$'\n'
openGl+="$( glxinfo | grep 'OpenGL renderer' )"$'\n'
openGl+="$( glxinfo | grep 'OpenGL version' )"$'\n'
openGl+="$( glxinfo | grep 'OpenGL shading language version' )"$'\n'
openGl+="$( glxinfo | grep 'OpenGL extensions' )"$'\n'
openGl="$( sed 's/ string//g' <<< "$openGl" )"
fi
[ "$alert_3D" ] && alert_3D="l'accélération 3D n'est pas active \n\n"
# xrandr: résolutions & providers & preferred & current
[ $(f__cmd_exist xrandr) ] && resolutions=$( xrandr --query | grep -A11 'Screen [0-9]' )
[ $(f__cmd_exist xrandr) ] && providers=$( xrandr --listproviders )
[ $(f__cmd_exist xrandr) ] && current=$( xrandr --verbose | grep -A2 '*current' )
[ $(f__cmd_exist xrandr) ] && preferred=$( xrandr --verbose | grep -A2 '+preferred' )
[ $(f__cmd_exist xrandr) ] && resolutions="$( xrandr --query | grep -A11 'Screen [0-9]' )"
[ $(f__cmd_exist xrandr) ] && providers="$( xrandr --listproviders )"
[ $(f__cmd_exist xrandr) ] && current="$( xrandr --verbose | grep -A2 '*current' )"
[ $(f__cmd_exist xrandr) ] && preferred="$( xrandr --verbose | grep -A2 '+preferred' )"
# modules
modules=$(lsmod | grep -Ei 'amdgpu|ati|i915|nouveau|nvidia|radeon|video|gma')
modules="$(lsmod | grep -Ei 'amdgpu|ati|i915|nouveau|nvidia|radeon|video|gma')"
# fonctions externes
[ "$fget_gpu" ] || figet_gpu
[ "$fget_resolution" ] || figet_screen
@ -689,7 +686,7 @@ fi_journal(){ # 25/10/2017
unset text
}
fi_locale(){ # 26/10/2017
fi_locale(){ # 27/10/2017
local locale localectl timezone timedatectl
local xKeyboardMap keyboard alert_Rtc alert_Rtc_info alert_NTP alert_Ntp_info text
# locale
@ -709,7 +706,7 @@ activer le service: timedatectl set-ntp true
et/ou installer le démon Ntp: apt install ntp \n"
fi
# keyboard layout
keyboard="$(grep -Esv '#|^$' /etc/default/keyboard)"
keyboard="$(grep -EHsv '#|^$' /etc/default/keyboard*)"
[ "$(f__cmd_exist setxkbmap)" ] && xKeyboardMap="$(setxkbmap -query)"
###
text="## localisation \n\n"
@ -723,7 +720,7 @@ et/ou installer le démon Ntp: apt install ntp \n"
[ "$alert_Rtc" ] && text+="$alert_Rtc_info \n"
[ "$alert_Ntp" ] && text+="$alert_Ntp_info \n"
# keyboard layout
[ "$keyboard" ] && f_display "keyboard" "cmd" "grep -Ev '#|^$' /etc/default/keyboard"
[ "$keyboard" ] && f_display "keyboard" "cmd" "grep -EHv '#|^$' /etc/default/keyboard*"
[ "$keyboard" ] || f_display_file "/etc/default/keyboard"
[ "$xKeyboardMap" ] && f_display "xKeyboardMap" "cmd" "setxkbmap -query"
printf "$text\n" >> "$fileOutput"
@ -777,30 +774,23 @@ fi_mem(){ # 25/10/2017
unset text
}
fi_nm(){ # 26/10/2017
fi_nm(){ # 27/10/2017
[ "$(f__cmd_exist nmcli)" ] || return 0
local nm_etat nm_conf text
nm_etat="$(grep -Ev '#|^$' /var/lib/NetworkManager/NetworkManager.state)"
nm_conf="$(grep -Ev '#|^$' /etc/NetworkManager/NetworkManager.conf)"
local nm_etat nm_conf nm_wifis nm_connected text
nm_etat=$(grep -Ev '#|^$' /var/lib/NetworkManager/NetworkManager.state)
nm_conf=$(grep -Ev '#|^$' /etc/NetworkManager/NetworkManager.conf)
nm_wifis=$(nmcli -f SSID,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY device wifi list | head -n15)
nm_connected=$(LC_ALL=C nmcli -f SSID,ACTIVE,IN-USE device wifi list | gawk '/yes[[:space:]]+\*/ {print $1}')
###
text="## NetworkManager \n\n"
[ "$nm_etat" ] && f_display "nm_etat" "cmd" "grep -Ev '#|^$' /var/lib/NetworkManager/NetworkManager.state"
[ "$nm_etat" ] || f_display_file "/var/lib/NetworkManager/NetworkManager.state"
[ "$nm_conf" ] && f_display "nm_conf" "cmd" "grep -Ev '#|^$' /etc/NetworkManager/NetworkManager.conf"
[ "$nm_conf" ] || f_display_file "/etc/NetworkManager/NetworkManager.conf"
printf "$text\n" >> "$fileOutput"
unset text
}
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 | 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 | head -n20"
if [ "$nm_wifis" ]; then
text+="## wifis à proximité \n\n"
f_display "nm_wifis" "cmd" "nmcli -f SSID,BSSID,MODE,CHAN,FREQ,RATE,SIGNAL,BARS,SECURITY device wifi list | head -n15"
fi
printf "$text\n" >> "$fileOutput"
unset text
}
@ -823,83 +813,87 @@ fi_nonFree(){ # 25/09/2017
unset text
}
fi_reseau(){ # 26/10/2017
local slotNetCard netCard ip_a iwconfig interfaces route resolv canal_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 )"
fi_reseau(){ # 27/10/2017
local slots cards ip_a iwconfig interfaces route resolv canal_wifi ifx alert_wlx text pluriel
# 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
slotNetCard="$(lspci | grep -Ei 'network|ethernet' | sed -En 's/^([0-9.:]+).*$/\1/gp')"
for ifx in $slotNetCard; do
netCard+="$(lspci -s $ifx -nnv)"$'\n'
slots="$(lspci | grep -Ei 'network|ethernet' | cut -d" " -f1)"
for ifx in $slots; do
cards+=$(lspci -s $ifx -nnv)$'\n'
done
netCard=${netCard::-1} # suppression dernier $'\n'
cards=${cards::-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="$(grep -EHrsv '#|^$' /etc/network/interfaces*)"
interfaces="$(sed -E 's/wpa-psk [[:graph:]]+/wpa-psk <WPA key removed>/; s/:/: /' <<< $interfaces )"
resolv="$(grep -Ev '#|^$' /etc/resolv.conf)"
resolv="$(grep -Esv '#|^$' /etc/resolv.conf)"
# iwconfig
if [ "$(f__cmd_exist iwconfig)" ]; then #paquet wireless-tools requis
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; /sbin, paquet wireless-tools requis
if [ $(f__cmd_exist iwlist) ]; then # canal wifi utilisé; /sbin, paquet wireless-tools requis
canal_wifi="$(iwlist chan 2>&1 | grep 'Current Frequency' | grep -Eio 'channel [0-9]+')"
fi
# network manager
netmgrpaths=("/usr/sbin/NetworkManager" "/usr/sbin/wicd" "/usr/sbin/connmand")
netmgrnames=("NetworkManager" "Wicd" "ConnMan")
for ifx in "${!netmgrpaths[@]}"; do
[ -f "${netmgrpaths[$ifx]}" ] && netmgrinst+="${netmgrnames[$ifx]}"
[ -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
done
figet_ip
if grep -q 'wlx' <<< "$fg_ifn"; then
alert_wlx="**Attention:** une interface wifi est en erreur: $(grep -o 'wlx' <<< $fg_ifn) \n"
alert_wlx+="l'interface n'est pas reconnue et est donc mal nommée \n"
alert_wlx+="au pire, changer le renommage: "
alert_wlx+="https://kyodev.frama.io/kyopages/trucs/interfaces-nommage-classique/ \n\n"
fi
figet_mod_net
###
text="## réseau \n\n"
#lspci
f_display "netCard" "cmd" "lspci -nnv | grep -EiA 15 'network|ethernet"
f_display "cards" "cmd" "lspci -nnv | grep -EiA 15 'network|ethernet"
# ip locales avec type
f_display "ip_local_type" "var" "IP locale(s):"
f_display "fg_ip_tp" "var" "IP locale(s):"
[ "$alert_wlx" ] && text+="alert_wlx \n\n"
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'
if grep -q 'wlx' <<< "$ifnames"; then
text+="**Attention:** une interface wifi est en erreur: $(grep -o 'wlx' <<< $ifnames) \n"
text+="l'interface n'est pas reconnue et est donc mal nommée \n"
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):"
# gateways
f_display "fg_gws" "var" "Passerelle(s):"
# interface prioritaire
[ "$(wc -w <<< $ifnames)" -gt 1 ] && f_display "if_prioritaire" "var" "interface prioritaire"
[ $(wc -w <<< $fg_ifn) -gt 1 ] && f_display "fg_ifn_prior" "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)"
[ "$interfaces" ] && f_display "interfaces" "cmd" "grep -EHrsv '#|^$' /etc/network/interfaces*"
[ "$interfaces" ] || f_display_file "/etc/network/interfaces*"
[ "$resolv" ] && f_display "resolv" "cmd" "cat /etc/resolv.conf" "(serveurs de noms DNS utilisés)"
[ "$resolv" ] || f_display_file "/etc/resolv.conf"
# iwconfig & iwlist
[ "$iwconfig" ] && f_display "iwconfig" "cmd" "iwconfig"
[ "$iwconfig" ] && f_display "iwconfig" "cmd" "iwconfig" "état carte wifi"
if [ "$canal_wifi" ]; then
f_display "canal_wifi" "cmd" "iwlist chan | grep 'Current Frequency' | grep -Eio 'channel [0-9]+'"
text+="* la configuration ssid utilisé peut être connue (si NetworkManager utilisé) avec \n"
f_display "canal_wifi" "cmd" "iwlist chan | grep 'Current Frequency' | grep -Eio 'channel [0-9]+'" \
"canal wifi utilisé"
text+="* la configuration ssid utilisée peut être connue (si NetworkManager utilisé) avec \n"
text+="\`./getInfo --ssid\` ou \`getInfo --ssid\` (script installé) \n\n"
fi
# networl manager
# network manager
if [ "$netmgrinst" ]; then
text+="### gestionnaire de réseau \n\n"
if [ "$netmgrinst" ]; then
[ "$(wc -w <<< $netmgrinst)" -gt 1 ] && pluriel="s" || unset pluriel
[ $(wc -w <<< $netmgrinst) -gt 1 ] && pluriel="s" || unset pluriel
text+="installé$pluriel: **$netmgrinst** \n"
else
[ "$(wc -w <<< $netmgrnames[@])" -gt 1 ] && pluriel="s" || unset pluriel
[ $(wc -w <<< $netmgrnames[@]) -gt 1 ] && pluriel="s" || unset pluriel
text+="non trouvé$pluriel parmi: ${netmgrnames[@]} \n"
fi
text+="en fonctionnement: "
@ -986,7 +980,7 @@ fi_sources(){ # 25/10/2017
unset text
}
fi_ssid(){ # 25/10/2017
fi_ssid(){ # 27/10/2017
[ "$(f__cmd_exist nmcli)" ] || f__error "NetworkManager requis"
local nm_ssid file="/tmp/$$-$RANDOM-fi_ssid" text
# nm_ssid="$(grep -Ev '#|^$' /etc/NetworkManager/system-connections/*)"
@ -1003,7 +997,7 @@ fi_ssid(){ # 25/10/2017
nm_ssid="$(< $file)"
rm "$file"
###
f__info "la$RED clé du réseau wifi étant visible $STD""aucun rapport n'a été créé"
f__info "la$RED clé du réseau wifi étant visible$STD, aucun rapport n'a été créé"
text="## configuration(s) ssid networkmanager \n\n"
text+="$GREEN""grep -Ev '#|^$' /etc/NetworkManager/system-connections/*$STD \n\n"
text+="$nm_ssid \n\n"
@ -1088,10 +1082,10 @@ fi_systeme(){ # 25/10/2017
text+="shells installés: $shells \n"
text+="$fget_disk_part_fix_tot \n"
[ "$alimentation" ] && text+="$alimentation \n"
if [ "$fget_batt" ]; then
[ "$fget_nb_batt" -gt "1" ] && pluriel="s" || unset pluriel
text+="$fget_nb_batt batterie$pluriel présente$pluriel: \n"
text+="$(sed -En 's/^BAT(.*)$/ BAT\1/p' <<< $fget_batt) \n"
if [ "$fg_batt" ]; then
[ "$fg_nb_batt" -gt "1" ] && pluriel="s" || unset pluriel
text+="$fg_nb_batt batterie$pluriel présente$pluriel: \n"
text+="$(sed -En 's/^BAT(.*)$/ BAT\1/p' <<< $fg_batt) \n"
fi
text+="dernier boot: $lastboot, uptime: $uptime \n"
text+="charge système depuis les 1, 5 et 15 dernières minutes: $charge \n"
@ -1112,26 +1106,28 @@ fi_usb(){ # 25/10/2017
unset text
}
# informations batterie(s), assigne $fget_nb_batt $fget_batt
figet_batt(){ #v2 26/10/2017
# informations batterie(s), assigne $fg_nb_batt $fg_batt
figet_batt(){ #v2 27/10/2017
local batt_detail batt_nb batt_unit batt_capa_design batt_capa_full batt_capa_now batt_conso
local batt_volt_min batt_volt_now batt_status batt_cycle batt_sn alert_batt_alarm
local batt_sante batt_restant tempo batRep ibat uevent
if [ ! -d /sys/class/power_supply ]; then # anciennes interfaces ou inconnu
[ -d /proc/acpi/battery ] && batt_detail="ancienne interface ACPI non gérée (obolète)"
[ -d /proc/acpi/battery ] && batt_detail="ancienne interface ACPI non gérée (obsolète)"
[ -f /proc/apm ] && batt_detail="anciennes batteries APM non gérées (obolète)"
[ "$batt_detail" ] || batt_detail="répertoire power_supply inaccessible"
batt_nb="-1"
return 1
fi
[ $(grep -c 'BAT' <<< $(ls /sys/class/power_supply/ 2>/dev/null)) -gt 0 ] || return 0
[ "$(grep -c 'BAT' <<< $(ls /sys/class/power_supply/ 2>/dev/null))" -gt 0 ] || return 0
batt_nb="$(grep -i 'Battery' /sys/class/power_supply/*/type | grep -c .)"
[ -z "$batt_nb" ] && return
[ "$batt_nb" ] || return
batRep="/sys/class/power_supply"
unset batt_detail
for ibat in $(ls $batRep); do
grep -qi 'Battery' "$batRep/$ibat/type" || continue # plus loin si non batterie
uevent=$(grep -s . $batRep/$ibat/uevent || batt_detail="$ibat: **uevent** incorrect")
[ -e "$batRep/$ibat/uevent" ] || batt_detail="$ibat: **uevent** incorrect"
[ -e "$batRep/$ibat/uevent" ] || continue
uevent="$(grep -s . $batRep/$ibat/uevent)"
# extractions valeur de calcul selon type
if grep -q 'POWER_SUPPLY_CHARGE_' <<< $uevent ; then
batt_unit="mAh"
@ -1145,8 +1141,6 @@ figet_batt(){ #v2 26/10/2017
batt_capa_full="$(gawk -F '=' '/POWER_SUPPLY_ENERGY_FULL=/ {printf "%.2f", $2/1000000}' <<< $uevent)" # W
batt_capa_now="$(gawk -F '=' '/POWER_SUPPLY_ENERGY_NOW=/ {printf "%.2f", $2/1000000}' <<< $uevent)" # W
batt_conso="$(gawk -F '=' '/POWER_SUPPLY_POWER_NOW=/ {printf "%.2f", $2/1000000}' <<< $uevent)" # W
else
batt_capa_design="na"
fi
# extractions simples
batt_volt_min="$(gawk -F '=' '/POWER_SUPPLY_VOLTAGE_MIN_DESIGN=/ {printf "%.2f", $2/1000000}' <<< $uevent)" # V
@ -1157,15 +1151,15 @@ figet_batt(){ #v2 26/10/2017
alert_batt_alarm="$(cat $batRep/$ibat/alarm 2>/dev/null)"
[ "$alert_batt_alarm" == "0" ] && unset alert_batt_alarm || alert_batt_alarm="$ibat: $alert_batt_alarm"
# calculs
batt_sante="$(gawk '$1 != "na" && $2 != "" && $2 != "0" {printf "%.1f", $1/$2*100}' <<< "$batt_capa_full $batt_capa_design")"
batt_sante="$(gawk '$1 != "na" && $2 != "" && $2 != 0 {printf "%.1f", $1/$2*100}' <<< "$batt_capa_full $batt_capa_design")"
if [[ "$batt_status" == "Full" || "$batt_status" == "Unknown" ]]; then
batt_restant="totalement chargée"
elif [ "$batt_status" == "Discharging" ]; then
batt_restant="en décharge, reste approximativement: "
tempo="$(gawk '$1+$2 != "" && $2!="0 "{print $1*0.9/$2}' <<< "$batt_capa_now $batt_conso")"
tempo="$(gawk '$1+$2 != "" && $2!=0 {print $1*0.9/$2}' <<< "$batt_capa_now $batt_conso")"
elif [ "$batt_status" == "Charging" ]; then
batt_restant="en charge, reste approximativement: "
tempo="$(gawk '$1+$2+$3 != "" && $3 != "0" {print ($1-$2)/$3}' <<< "$batt_capa_full $batt_capa_now $batt_conso")"
tempo="$(gawk '$1+$2+$3 != "" && $3 != 0 {print ($1-$2)/$3}' <<< "$batt_capa_full $batt_capa_now $batt_conso")"
fi
batt_restant+="$(gawk '$1 != "" {printf "%d h %02d mn \n", $1, $1*60%60}' <<< $tempo) "
# mise en forme pour sortie, séparateur milliers
@ -1178,11 +1172,11 @@ figet_batt(){ #v2 26/10/2017
batt_detail+="$ibat: $(cat $batRep/$ibat/manufacturer 2>/dev/null) "
batt_detail+="($(cat $batRep/$ibat/model_name 2>/dev/null)) $(cat $batRep/$ibat/technology 2>/dev/null) "
batt_detail+="$batt_capa_design$batt_unit - $batt_volt_min""V / $batt_volt_now""V (mini/actuel) "
[ "$(xargs <<< $batt_sn)" ] && batt_detail+="n° série: $batt_sn "
[ "$(xargs <<< $batt_sn)" ] && batt_detail+="n° série: $batt_sn"
[ "$batt_cycle" != "0" ] && batt_detail+="$batt_cycle cycles"$'\n' || batt_detail+=$'\n' #ln 1fin
[ "$batt_capa_full" ] && batt_detail+="pleine charge effective: $batt_capa_full$batt_unit, "
batt_detail+="pleine charge théorique: $batt_capa_design$batt_unit => "
if [ "$batt_conso" != "0" ]; then # conso éventuelle
if [[ "$batt_conso" != "0" && "$batt_conso" != "0.00" ]]; then # conso éventuelle
if [ "$batt_unit" == "mAh" ]; then
batt_restant+="(consommation en cours: $(printf "%'d" $batt_conso)$(sed 's/h//' <<< $batt_unit), "
batt_restant+="charge actuelle: $(printf "%'d" $batt_capa_now)$batt_unit)"
@ -1203,8 +1197,8 @@ figet_batt(){ #v2 26/10/2017
batt_detail+="batterie très mal chargée (moins de 50%): mauvais état?"$'\n' #[ln 5]
fi
done
fget_nb_batt="$batt_nb"
fget_batt=${batt_detail::-1} # suppression dernier $'\n'
fg_nb_batt="$batt_nb"
fg_batt=${batt_detail::-1} # suppression dernier $'\n'
}
# assigne $fget_cpu (3 lignes description cpu)
@ -1496,33 +1490,29 @@ figet_hw(){ #v2 14/10/2017
[ "$fget_hw" ] && fget_hw=${fget_hw::-1}
}
# assigne $ip_local, $gateways, $gateways_type, $gateway, $gateway_type, $if_prioritaire
# $ip_local, $ip_local_type, $ifnames, $ifnames_type, $mac_address, mac_address_type
figet_ip(){ # 22/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(){ # 27/10/2017
local ifn
[ "$(f__cmd_exist ip)" ] || return 1
ip_local="$(sed '/[[:digit:]]:[[:blank:]]lo.*inet/d; /inet6.*scope/d' <<< $(ip -o a) | gawk '{print " ",$4,"(",$2,")"}')"
ip_local_type="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $ip_local)"
gateways="$(LC_ALL=C ip -4 route | gawk '/default via/ {print " ",$3,"(",$5,")"}')"
gateways+="$(LC_ALL=C ip -6 route | gawk '/default via/ {print " ",$3,"(",$5,")"}')"
gateways_type="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $gateways)"
gateway="$(gawk 'FNR==1 {print " ",$0}' <<< $gateways)"
gateway_type="$(gawk 'FNR==1 {print " ",$0}' <<< $gateways_type)"
if_prioritaire="$(ip route get 255.255.255.255 | sed -nr 's/.*src ([0-9.]+).*/\1/p')"
fg_ip="$(sed '/[[:digit:]]:[[:blank:]]lo.*inet/d; /inet6.*scope/d' <<< $(ip -o a) | gawk '{print " ",$4,"(",$2,")"}')"
fg_ip_tp="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $fg_ip)"
fg_gws="$(LC_ALL=C ip -4 route | gawk '/default via/ {print " ",$3,"(",$5,")"}')"
fg_gws+="$(LC_ALL=C ip -6 route | gawk '/default via/ {print " ",$3,"(",$5,")"}')"
fg_gws_tp="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $fg_gws)"
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" ] && ifnames+=" $ifn"$'\n'
[ "$ifn" != "lo" ] && mac_address+=" $ifn: $(< /sys/class/net/$ifn/address)"$'\n'
[ "$ifn" != "lo" ] && fg_ifn+=" $ifn"$'\n'
[ "$ifn" != "lo" ] && fg_mac+=" $ifn: $(< /sys/class/net/$ifn/address)"$'\n'
done
ifnames="$(sed '/^$/d' <<< $ifnames)" # suppression \n final
ifnames_type+="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $ifnames)"
mac_address="$(sed '/^$/d' <<< $mac_address)" # suppression \n final
mac_address_type="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $mac_address)"
ifnames=${ifnames::-1} # suppression dernier $'\n'
mac_address=${mac_address::-1} # suppression dernier $'\n'
fg_ifn="$(sed '/^$/d' <<< $fg_ifn)" # suppression \n final
fg_mac="$(sed '/^$/d' <<< $fg_mac)" # suppression \n final
fg_mac_tp="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $fg_mac)"
fg_ifn=${fg_ifn::-1} # suppression dernier $'\n'
fg_mac=${fg_mac::-1} # suppression dernier $'\n'
}
# $1=4|6, assigne $ip_public
figet_ip_public(){ # 22/10/2017
# $1=4|6, assigne $fg_public
figet_ip_pub(){ # 27/10/2017
local dig_test ip_test iip
list_ip4(){
ip_test+=" http://whatismyip.akamai.com"
@ -1560,7 +1550,7 @@ figet_ip_public(){ # 22/10/2017
dig_test+=" -6/myip.opendns.com/aaaa/@resolver2.ipv6-sandbox.opendns.com"
}
unset ip_public
unset fg_public
if [ "$1" == "4" ]; then
ping -4 -c1 google.com &>/dev/null || ping -4 -c1 free.fr &>/dev/null || return 1 # test connectivité
list_ip4_dig
@ -1573,38 +1563,38 @@ figet_ip_public(){ # 22/10/2017
ip_telnet=6.ifcfg.me
fi
if [ "$(f__cmd_exist dig)" ] && [ -z "$ip_public" ]; then
if [ "$(f__cmd_exist dig)" ] && [ -z "$fg_public" ]; then
for iip in $dig_test ; do
ip_public="$(dig +short $(sed 's;/; ;g' <<< $iip))"
[ "$ip_public" ] && break
fg_public="$(dig +short $(sed 's;/; ;g' <<< $iip))"
[ "$fg_public" ] && break
done
fi
if [ "$(f__cmd_exist wget)" ] && [ -z "$ip_public" ]; then
if [ "$(f__cmd_exist wget)" ] && [ -z "$fg_public" ]; then
cmd="wget --quiet --timeout=5 -O - "
for iip in $ip_test ; do
ip_public="$($cmd $iip)"
[ "$ip_public" ] && break
fg_public="$($cmd $iip)"
[ "$fg_public" ] && break
done
fi
if [ "$(f__cmd_exist curl)" ] && [ -z "$ip_public" ]; then
if [ "$(f__cmd_exist curl)" ] && [ -z "$fg_public" ]; then
cmd="curl --silent --location --retry 0 --max-time 5" #--location pour aider redirections
for iip in $ip_test ; do
ip_public="$($cmd $iip)"
[ "$ip_public" ] && break
fg_public="$($cmd $iip)"
[ "$fg_public" ] && break
done
fi
if [ "$(f__cmd_exist telnet)" ] && [ -z "$ip_public" ]; then
ip_public="$(telnet $ip_telnet 23 2>/dev/null | grep $1 | cut -d ' ' -f 4)"
if [ "$(f__cmd_exist telnet)" ] && [ -z "$fg_public" ]; then
fg_public="$(telnet $ip_telnet 23 2>/dev/null | grep $1 | cut -d ' ' -f 4)"
fi
if [ "$(f__cmd_exist nc)" ] && [ -z "$ip_public" ] && [ "$1" != "IPv6" ]; then
ip_public="$(nc $ip_telnet 23 2>/dev/null | grep $1 | cut -d ' ' -f 4)"
if [ "$(f__cmd_exist nc)" ] && [ -z "$fg_public" ] && [ "$1" != "IPv6" ]; then
fg_public="$(nc $ip_telnet 23 2>/dev/null | grep $1 | cut -d ' ' -f 4)"
fi
if [ -z "$ip_public" ]; then
if [ -z "$fg_public" ]; then
f__error "il manque une des commandes suivantes:\n" \
"dig / wget / curl / telnet / nc \n" \
"ou les ip de test sont devenues défaillantes\n" \
@ -1750,7 +1740,7 @@ figet_test_batt(){ # 23/10/2017
# scandir
[ -d /sys/class/power_supply/BAT* ] && f_display_scandir "/sys/class/power_supply/" 1
# fonction script
f_display "fget_batt" "var" "figet_batt"
f_display "fg_batt" "var" "figet_batt"
}
figet_test_dmi(){ # 21/10/2017
@ -1905,9 +1895,9 @@ fscript_cronAnacron(){ # 17/09/2017
}
# version script en ligne, assigne $versionScript, $script_aJour=ok|ko
fscript_get_version(){ # 17/10/2017
fscript_get_version(){ # 27/10/2017
f__info "raw" "$GREEN""version script en cours: $version"
versionScript="$(wget -q --timeout=15 -O - "$urlScript" | grep '^version=' | cut -d '=' -f 2)"
versionScript=$(wget -q --timeout=15 -O - "$urlScript" | grep -m1 '^version=' | cut -d'=' -f2)
if [ "$versionScript" ]; then
if [ "$version" != "$versionScript" ]; then
f__info "version script en ligne: $versionScript, mise à jour possible"
@ -1917,7 +1907,7 @@ fscript_get_version(){ # 17/10/2017
script_aJour="ok"
fi
else
f__info "version script en ligne $RED""non accessible"
f__info "version script en ligne$RED non accessible"
fi
}
@ -1973,28 +1963,29 @@ fscript_remove(){ # 08/10/2017
f__info "log" "$script $version supprimé du système."
}
# mise à jour script si dispo
fscript_update(){ # 17/10/2017
if ! grep -q 'bin' <<< "$(dirname $0)" ; then
# mise à jour script si dispo, v2, +update spécifique
# à tester avant généraliser fileInstall="/opt/bin/$script" ?
fscript_update(){ # 27/10/2017
local dirTemp="/tmp/$script-$RANDOM"
[ $(type -t fscript_update_special) ] && fscript_update_special # test, si fonction spécifique, appel
if [ -z "$updateSpecial" ] && ! grep -q 'bin' <<< "$(dirname $0)" ; then
f__info "$RED""cette fonction doit être appelée depuis le script installé dans le système $GREEN($script -u)"
return
return 1
fi
[ "$(type -t fscript_update_special)" ] && fscript_update_special # test, si fonction spécifique, appel
fscript_get_version
if [ "$script_aJour" == "ok" ]; then
f__info "log" "pas de mise à jour disponible pour $script $version"
return 0
fi
local dirTemp="/tmp/$script-$RANDOM"
mkdir -p "$dirTemp"
wget -q --timeout=15 -O "$dirTemp/$script" "$urlScript"
wget -q --tries=2 --timeout=15 -O "$dirTemp/$script" "$urlScript"
if [ "$?" != "0" ]; then f__wget_test "$urlScript"; fi
chmod 775 "/opt/bin/$script" # rwx rwx r-x, proprio user_
chown "$user_:" "$dirTemp/$script"
cp -d "$dirTemp/$script" "/opt/bin/$script"
cp -d "$dirTemp/$script" "$fileInstall"
rm -rf "$dirTemp/"
fscript_cronAnacron "upgrade"
f__info "log" "$script mis à jour en version $versionScript"
chmod 775 "$fileInstall" # rwx rwx r-x, proprio user_
chown "$user_:" "$fileInstall"
[ -z "$updateSpecial" ] && fscript_cronAnacron "upgrade"
f__info "log" "$script mis à jour en version $versionScript $updateSpecial"
}
prg_1(){ # début
@ -2022,7 +2013,7 @@ prg_2(){ # traitements principaux
fi
if [[ "$1" == all || "$1" =~ r ]]; then #reseau -cr
echo -e "# Réseau \n\n" >> "$fileOutput"
for i in fi_reseau fi_nm fi_nm_wifis ; do
for i in fi_reseau fi_nm ; do
$i
printf "."
done
@ -2100,7 +2091,7 @@ prg_alert_init(){ # 23/10/2017
fi
}
######## début script / initialisation
######## début script / initialisation
PATH='/usr/sbin:/usr/bin:/sbin:/bin'; TERM=xterm ; IFS=$' \t\n'
export PATH TERM IFS
[[ "$SSH_CLIENT" || "$SSH_CLIENT" || "$SSH_CLIENT" ]] && ENV_SSH="ssh"
@ -2108,7 +2099,7 @@ export PATH TERM IFS
# logo et définition couleurs
f__affichage
# quelques tests au démarrage
# tests au démarrage
prg_alert_init
# requis pour fonctionnement programme
@ -2130,11 +2121,12 @@ options="$(sed -E 's/--debug-paste//g; s/-t[0-9]+//g' <<< $options | xargs)" # n
[ "$options" ] || options="all"
# quelques paramètres généraux
# paramètres généraux
[ "$pasteDuration" ] || pasteDuration=7 # durée de conservation standard du paste en jours
fileOutput="getInfo_rapport.md"
fileLogs="/var/log/sdeb_$script.log"
fileDev="/opt/bin/fileDev"
fileInstall="/opt/bin/$script"
urlScript="https://frama.link/getInfo"
urlNotice="https://frama.link/doc-getInfo"
# test sur frama.link ok, sinon fallback sur framagit
@ -2158,7 +2150,7 @@ for j in $options; do
case $j in
-t | --test )
prg_1 "$*"
fi_graph
fi_batt
prg_3
exit ;; # test seulement
-c* | all )
@ -2206,20 +2198,20 @@ for j in $options; do
prg_3
exit ;; # test hwmon avec affichage /sys/class/hwmon/
--ip )
if figet_ip_public "4" ; then
f__info "raw" " ipv4 publique: $GREEN$ip_public"
if figet_ip_pub "4" ; then
f__info "raw" " ipv4 publique: $GREEN$fg_public"
else
f__info "$BLUE pas de connectivité ipv4"
fi
if figet_ip_public "6" ; then
f__info "raw" " ipv6 publique: $GREEN$ip_public"
if figet_ip_pub "6" ; then
f__info "raw" " ipv6 publique: $GREEN$fg_public"
else
f__info "$BLUE pas de connectivité ipv6"
fi
exit ;; # affiche ip public
--mac )
figet_ip
f__info "mac_address:\n$GREEN$mac_address_type"
f__info "fg_mac:\n$GREEN$fg_mac_tp"
exit ;; # affiche adresses mac
--ssid )
fi_ssid
@ -2231,9 +2223,15 @@ for j in $options; do
fscript_remove
exit ;; # suppression du script dans le système
-u | --upgrade )
opType="upgrade"
opType="upgrade" # log si f__error
fscript_update
exit ;; # upgrade script si maj possible
-us )
opType="upgrade" # log si f__error
updateSpecial="update spécial actif"
fileInstall="$(dirname $0)/$script"
fscript_update
exit ;; # upgrade spécial
-v | --version )
fscript_get_version
exit ;; # version du script, en ligne et exécuté

View File

@ -5,14 +5,28 @@
* placer ln dans /usr/local/bin au lieu de /usr/bin ?
* réseau réviser, interface name: virbr0, docker0
* "alertifier" fi-reseau
* revoir modules réseau
* réviser alert_
---
* f__requis f__wget_test fscript_get_version fscript_update fscript_cronAnacron
* f__cmd_exist f__sudo f__requis
* f__log f__requis f__wget_test fscript_get_version fscript_update fscript_cronAnacron
* f__cmd_exist f__sudo f__log
* + f__cmd_exist
## 2.19.0 27/10/2017
* nouveau: option update spécial, script en place
* fscript_update: update spécial, révision
* révision: f__log: plus d'avertissement si filelog absent, création
* révision: fi_reseau, affichage
* révision: figet_ip_pub, renommage fonction & variable public
* révision: figet_ip, renommage variable public
* révision: fi_reseau, alerte wlx
* suppression: fi_nm_wifis, fusion avec fi_nm
* fix: fi_reseau, détection slot pci, bug sur un pc sour arch
* fix: figet_batt formatage 0 en décimale si unité batterie en W
## 2.18.6 26/10/2017
@ -70,7 +84,7 @@
## 2.13.1 22/10/2017
* nouveau: f__cmd_exist, émule et remplace which
* f__cmd_exist: nouveau émule et remplace which debian
* bug fedora: which à supprimer/émuler
* révision affichage avec f_display, fin pour tous les fi_
* pluriel sur titrages markdown
@ -111,20 +125,20 @@
* nouveau: figet_hw_test, acpi -V si disponible, tests (temporaires) sur
/sys/class/thermal/ & /sys/devices/virtual/thermal/ & hwmon0(méthode neofetch)
* nouveau: fi_disk, si hddtemp dispo (obsolète?), température et alerte température
* f__requis: pluriel, formatage code
* figet_ip_public, fscript_get_version, f__wget_test, fscript_update: révision, suppression option tries
personnalisée
* révision: fi_disk, comptage avec wc
* révision: f__requis, pluriel, formatage code
* révision: _test, appel modifié f__scandir pour reporter affichage f__requis à l'écran (et non dans le
fichier de sortie)
* révision: figet_ip_public, fscript_get_version, f__wget_test, fscript_update, suppression option tries
personnalisée
* révision: figet_cpu, suppression affichage température core en attendant mieux
* fix: sr0 compté en disque hotplug (et non fixe)
## 2.7.0 16/10/2017
* f__error f__info f__requis f__wget_test: mineur
* révision f__scandir, requis "strings>binutils" dans fonction pour utiliser le script principal en dehors
des --debug-*
* mineur f__error f__info f__requis f__wget_test
* fix: figet_batt, n° de série
* fix: figet_ip, erreur possible entre lo/certain ifn
@ -169,12 +183,12 @@
* nouveau: figet_dmi, figet_dmi_test
* figet_disk, fi_disk: révision, présentation, espace disk dans détails, alert resume
* figet_battery: erreur anciennes batteries APM ou interface ACPI
* fix: f__sudo : fonctionnement avec sudo
* f__sudo : fix fonctionnement avec sudo
## 2.1.0 10/10/2017
* nouveau: fi_ssid: géré via f__sudo (oubli)
* nouveau: fi_systeme: charge système
* nouveau: fi_ssid géré via f__sudo (oubli)
* nouveau: fi_systeme charge système
* nouveau: alarm batterie éventuelle
* figet_cpu: révision présentation et $fget_core
* option --dmesg au lieu de -d + log xorg
@ -184,18 +198,18 @@
## 2.0.0 09/10/2017
* nouveau: 4 catégories de rapport possible, avec menu éventuel pour choix catégorie
* nouveau: f__sudo, dmesg pour user, avec gestion su ou sudo
* f__sudo: nouveau: dmesg pour user, avec gestion su ou sudo
* nouveau: intégration f__sudo dans install & remove script
* révision option debug
* simplification syntaxe options
* fileOutput géré par chmod
* log xorg passés en catégorie analyse
* f__user, premier essai root only, fonctionnement en root only en console
* révision f__color: utilisation terminfo pour retour au std (et non noir), donc modifs:
* f__color f__error f__info f__wget_test f__dialog_oui_non
* fscript_get_version fscript_install fscript_remove fscript_update
* f__color: utilisation terminfo pour retour au std (et non noir), donc modifs:
* f__color f__error f__info f__wget_test f__dialog_oui_non fscript_get_version fscript_install
fscript_remove fscript_update: révision
* force gawk pour éviter incompatibilités
* début révision réseau
* mini révision réseau
## 1.35.0 05/10/2017
@ -240,6 +254,7 @@
## 1.29.0 29/09/2017
* nouveau: figet_battery: voltage, conso si 0
* f__wget_test: fix: correction code retour lors "test"
* fi_sources:
* révision
* nb de packages installés
@ -247,14 +262,13 @@
* figet_cpu, remplacement wc -l par grep -c
* plus de dépendances wc
* fi_disk, correction si pas de fichier resume
* fix: f__wget_test: correction code retour lors "test"
## 1.28.0 28/09/2017
* nouveau: figet_battery
* f__wget_test: révision nouveau nommage fichier temp
* suppression figet_battery neofetch
* retour en f_user "général"
* révision f__wget_test, nouveau nommage fichier temp
* fix: figet_disk
## 1.27.0 27/09/2017
@ -272,7 +286,7 @@
## 1.25.0 25/09/2017
* f__wget_test(): nouvelle option test
* f__wget_test: nouvelle option test
* liens raccourcis frama.link
* présentation des commandes au format markdown
@ -317,12 +331,12 @@ fix: id resume dans fi_disk
## 1.15.0 07/09/2017
* f__wget_test, fscript_get_version, f__log: révision
* correction f_help
* révision f__wget_test, fscript_get_version, f__log
## 1.14.0 06/09/2017
* maj fscript_cronAnacron, fscript_update, fscript_install, fscript_remove
* fscript_cronAnacron, fscript_update, fscript_install, fscript_remove: maj
* cosmétique user_
## 1.13.0 04/09/2017
@ -339,7 +353,7 @@ fix: id resume dans fi_disk
* mieux: test connectivité avant recherche ip public pour éviter timeout, figet_ip_public
* révision figet_ip: 2 espaces préliminaires pour meilleure présentation
* révision appel fscript_remove, fscript_install & fscript_update
* fscript_remove, fscript_install & fscript_update: révision appel
## 1.10.0 02/09/2017
@ -347,30 +361,30 @@ fix: id resume dans fi_disk
## 1.9.1 01/09/2017
* révision mineure f__wget_test
* f__wget_test: révision mineure
## 1.9.0 30/08/2017
* révision f__requis, f__user, f__wget_test, fscript_cronAnacron
* f__requis, f__user, f__wget_test, fscript_cronAnacron: révision
* révision déclaration local
## 1.8.0 30/08/2017
* révision conditions d'utilisations, fscript_install, fscript_remove(), fscript_update
* révision appel, fscript_install, fscript_remove(), fscript_update
* fscript_install, fscript_remove(), fscript_update: révision conditions d'utilisations
* fscript_install, fscript_remove(), fscript_update: révision appel
* renommage f_help
* options debug et pasteDuration
## 1.7.0 28/08/2017
* révision f__wget_test
* f__wget_test: révision
* fix: localisation fileDev
## 1.6.0 27/08/2017
* fscript_cronAnacron, fscript_install : changement lognameDev ->fileDev
* révision présentation fscript_get_version, fscript_install, fscript_remove
* fscript_get_version, fscript_install, fscript_remove: révision présentation
## 1.5.0 27/08/2017
@ -379,10 +393,9 @@ fix: id resume dans fi_disk
## 1.4.3 26/08/2017
* maj fscript_install pour éventuel fscript_install_special
* renommage fscript_dl en fscript_update
* révision fscript_install, fscript_update, fscript_get_version
* révision f__wget_test
* révision f__error, f__info
* fscript_update: renommage de fscript_dl
* fscript_install, fscript_update, fscript_get_version: révision
* f__wget_test f__error, f__info: révision
## 1.3.0 24/08/2017
@ -390,11 +403,11 @@ fix: id resume dans fi_disk
## 1.2.1 23/08/2017
* changement délais anacron, fscript_cronAnacron
* fscript_cronAnacron: changement délais anacron
## 1.2.0 22/08/2017
* maj mineure fscript_dl
* fscript_dl: maj mineure
* fix: f__log manquant
## 1.1.0 21/08/2017
@ -405,27 +418,27 @@ fix: id resume dans fi_disk
## 1.0.9 20/08/2017
* fix: fscript_cronAnacron appel fscript_cronAnacron_special
* fscript_cronAnacron: fix appel fscript_cronAnacron_special
* fix: $TERM
## 1.0.8 19/08/2017
* révision mise en page
* maj fscript_cronAnacron & plus de redémarrage service cron inutile & fonction spécifique pour certains scripts
* fscript_cronAnacron: maj & plus de redémarrage service cron inutile & fonction spécifique pour certains scripts
service cron restart &>/dev/null || /etc/init.d/cron restart &>/dev/null || f__info "redémarrer cron ou le PC"
* fscript_dl plus de sortie progression download
* fscript_get_version inclut version en cours
* fscript_get_version: inclut version en cours
* fscript_install mise en page
## 1.0.6 18/08/2017
* maj fscript_cronAnacron lors upgrade et spécial pour dev
* fscript_cronAnacron: maj lors upgrade et spécial pour dev
* adresse MAC non affichée
* révision ip locales, système et réseau
* protection absence iproute
* révision test sur which
* vérification requis pour fonctionnement script
* maj fscript_get_version, fscript_dl, fscript_install
* fscript_get_version, fscript_dl, fscript_install: maj
* fix: publication version test
* fix: affichage ipv6, filtre sur inet6 & scope global & adr MAC