mirror of https://framagit.org/kyodev/kyopages.git
getInfo 2.43.0
This commit is contained in:
parent
52da9ff67e
commit
fa21b1e200
316
scripts/getInfo
316
scripts/getInfo
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
version=2.42.3
|
version=2.43.0
|
||||||
date="21/11/2017"
|
date="22/11/2017"
|
||||||
projet="simpledeb"
|
projet="simpledeb"
|
||||||
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
|
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
|
||||||
script="getInfo"
|
script="getInfo"
|
||||||
|
@ -372,22 +372,23 @@ f_dspl_alert(){ # 21/11/2017
|
||||||
echo -en "$display\n" >> "$fileOutput" # flush fonction
|
echo -en "$display\n" >> "$fileOutput" # flush fonction
|
||||||
}
|
}
|
||||||
|
|
||||||
# conversion markdown pour affichage en console, $1 file à parser
|
# conversion markdown pour affichage en console, $1 file à parser, [$2=marge] margin left 2 espaces
|
||||||
# tout en bash pour regex par défaut non-greedy (non gourmand) comme sed ou gawk
|
# tout en bash regex par défaut non-greedy (non gourmand) comme sed ou gawk
|
||||||
# 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_dspl_md(){ # 20/11/2017
|
f_dspl_md(){ # 22/11/2017
|
||||||
local display display2 ifs_origin ligne
|
local display display2 ifs_origin 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:" \
|
||||||
"$GREEN$script -l$BLUE ou afficher l'aide $GREEN$script -h"
|
"$GREEN$script -l$BLUE ou afficher l'aide $GREEN$script -h"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
if [ "$(stat -c %s $1)" -gt "100000" ]; then # taille en octets, > 100ko
|
if [ "$(stat -c %s $1)" -gt "100000" ]; then # si taille en octets > 100ko pager
|
||||||
pager "$1" || less "$1" || more "$1"
|
pager "$1" || less "$1" || more "$1"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
[ "$2" == "marge" ] && margin=" "
|
||||||
display=$(< $1)
|
display=$(< $1)
|
||||||
display=${display//\`\`\`/---} # transforme ``` en ---, plus visibles
|
display=${display//\`\`\`/---} # transforme ``` en ---, plus visibles
|
||||||
# traitement par lignes, à là sed, obligatoire pour les titres #
|
# traitement par lignes, à là sed, obligatoire pour les titres #
|
||||||
|
@ -426,7 +427,7 @@ f_dspl_md(){ # 20/11/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+="$ligne\n"
|
display2+="$margin""$ligne\n"
|
||||||
done <<< "$display"
|
done <<< "$display"
|
||||||
IFS="$ifs_origin"
|
IFS="$ifs_origin"
|
||||||
echo -e "$display2"
|
echo -e "$display2"
|
||||||
|
@ -450,64 +451,72 @@ f_dspl_scandir(){ # 21/10/2017
|
||||||
echo -e "$text" >> "$fileOutput" # flush fonction
|
echo -e "$text" >> "$fileOutput" # flush fonction
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1=liste fichier(s) à grepper, [$2]: largeur 1ère colonne &| ' nofile' &| ' novide'
|
# $1=liste fichier(s) à grepper, [$2]: largeur 1ère colonne &| nofile &| novide &| ligneVide
|
||||||
# si 'nofile' pas d'énumération de fichier greppé, si aucun fichier retour 'nofile',
|
# si 'nofile' pas d'énumération de fichier greppé, si aucun fichier retour 'nofile',
|
||||||
# concatène les fichiers, induit novide
|
## concatène les fichiers, induit novide
|
||||||
# si novide pas d'indication vide, ex. cumul option: " 10 novide" bien que '10-novide-nofile' fonctionne
|
# si novide pas d'indication vide,
|
||||||
f_grep_file(){ # 19/11/2017
|
# ex. cumul option: " 10 novide" '10-novide-nofile' fonctionne
|
||||||
local file var_temp display
|
# si ligneVide, pas de suppression des lignes vides
|
||||||
|
# grep -Ersv '^[[:blank:]]*#|^[[:blank:]]*$' file|dossier
|
||||||
|
f_grep_file(){ # 22/11/2017
|
||||||
|
local file content display
|
||||||
for file in $1; do
|
for file in $1; do
|
||||||
var_temp="$(grep -Ersv '^[[:blank:]]*#|^[[:blank:]]*$' $file)"
|
content=$( grep -Ersv '^[[:blank:]]*#|^[[:blank:]]*$' "$file")
|
||||||
|
[[ ${2,,} =~ lignevide ]] && content=$( grep -Ersv '^[[:blank:]]*#' "$file")
|
||||||
[ -d "$file" ] && file+='/' # si répertoire, ajout / final
|
[ -d "$file" ] && file+='/' # si répertoire, ajout / final
|
||||||
var_temp=${var_temp//$file} # pour esthétique, suppression de $file dans les noms de fichiers
|
content=${content//$file} # joli, suppression de $file dans les noms de fichiers en tête de ligne
|
||||||
[[ "$2" =~ nofile ]] || display+=" $file \n" # nom fichier greppé si $2 ne contient pas 'file'
|
if [[ "$2" =~ [0-9] ]]; then # si $2 contient des chiffres, largeur, gawk
|
||||||
if [ "$var_temp" ]; then
|
content=$(gawk -v "larg=${2//[[:alpha:]]}" '
|
||||||
if [[ "$2" =~ [0-9] ]]; then # si $2 contient des chiffres, largeur, gawk
|
{ printf "%-"larg"s",$1; $1=""; printf "%s\n",$0 }
|
||||||
display+=$(gawk -v "larg=${2//[[:alpha:]]}" '
|
' <<< "$content")
|
||||||
{ printf "%-"larg"s",$1; $1=""; printf "%s\n",$0 }
|
|
||||||
' <<< "$var_temp")
|
|
||||||
display+="\n" #?? pk gawk n'honore pas \n final pour la dernière ligne ?!
|
|
||||||
else
|
|
||||||
display+="$var_temp\n"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ ! "$2" =~ file ]]; then
|
|
||||||
[[ "$2" =~ novide || "$var_temp" ]] && display+=$'\n' || display+=" ‣ vide"$'\n'
|
|
||||||
fi
|
fi
|
||||||
|
echo "***"
|
||||||
|
#[ -z "$content" ] && unset content
|
||||||
|
content=${content%%[[:space:]]}
|
||||||
|
echo -n "$content"
|
||||||
|
echo "***"
|
||||||
|
content+=$'\n'
|
||||||
|
[[ "$2" =~ nofile ]] || display+=" $file \n" # nom fichier greppé si $2 pas 'nofile'
|
||||||
|
[[ "$2" =~ novide || "$content" ]] && display+="$content"$'\n' || display+=" ‣ vide"$'\n'
|
||||||
done
|
done
|
||||||
[ "$display" ] || display="nofile" # display vide, inscription 'nofile'
|
display=${display::-1}
|
||||||
|
[ "$display" ] || display="nofile" # si display vide, inscription 'nofile'
|
||||||
echo -en "$display"
|
echo -en "$display"
|
||||||
}
|
}
|
||||||
|
|
||||||
f_help(){ # 06/11/2017
|
f_help(){ # 22/11/2017
|
||||||
printf "$BLUE"
|
local toDisplay ligne
|
||||||
cat << 'EOF'
|
toDisplay=(
|
||||||
./getInfo : exécution normale, rapport markdown de la configuration
|
"$GREEN ./getInfo$BLUE : exécution normale, rapport markdown de la configuration"
|
||||||
getInfo : exécution normale si script installé dans le système
|
"$GREEN getInfo$BLUE : script installé dans le système"
|
||||||
|
""
|
||||||
options:
|
"$STD$BOLD options:$STD$BLUE"
|
||||||
-c : (catégorie) menu sélection catégorie d'analyse
|
" -c : (catégorie) menu sélection catégorie d'analyse"
|
||||||
-cs : catégorie système -cs : catégorie configuration
|
" -cs : catégorie système -cs : catégorie configuration"
|
||||||
-cr : catégorie réseau -ca : catégorie analyse
|
" -cr : catégorie réseau -ca : catégorie analyse"
|
||||||
-h : (help) affichage aide
|
" -h : (help) affichage aide"
|
||||||
-j : (journaux) analyse démarrage système, log Xorg, kernel et système, catégorie -ca
|
" -j : (journaux) analyse démarrage système, log Xorg, kernel et système, catégorie -ca"
|
||||||
-l : (list) afficher le rapport markdown existant
|
" -l : (list) afficher le rapport markdown existant"
|
||||||
-p : (paste) exporte le rapport markdown existant, durée standard du paste 7 jours
|
" -p : (paste) exporte le rapport markdown existant, durée standard du paste 7 jours"
|
||||||
-tn : durée du paste de n jour(s)
|
""
|
||||||
-us : upgrade spécial du script (pas de mise à jour auto, maj du script en place)
|
" --ip : affiche ip publique (ipv4/ipv6), pas de rapport markdown"
|
||||||
|
" --mac : affiche les adresses Mac, pas de rapport markdown"
|
||||||
--ip : affiche ip publique (ipv4/ipv6), infos confidentielles, pas de rapport markdown
|
" pas de rapport markdown, $RED ROOT$BLUE requis:"
|
||||||
--mac : affiche les adresses Mac, infos confidentielles, pas de rapport markdown
|
" --serial : affiche n° série disques, batterie et châssis"
|
||||||
--serial : affiche n° série disques, batterie et châssis
|
" --ssid : affiche configurations ssid, infos confidentielles,$RED NetworkManager$BLUE requis"
|
||||||
--ssid : affiche configurations ssid, infos confidentielles, pas de rapport markdown,
|
""
|
||||||
root et NetworkManager requis
|
" -tn : durée du paste de n jour(s)"
|
||||||
|
" -us : upgrade spécial du script (pas de mise à jour automatique, maj du script en place)"
|
||||||
-i, --install : installation du script dans le système, root requis
|
""
|
||||||
-r, --remove : suppression du script dans le système, root requis
|
" -i, --install : installation du script dans le système, root requis"
|
||||||
-u, --upgrade : upgrade script installé si maj possible
|
" -r, --remove : suppression du script dans le système, root requis"
|
||||||
-v, --version : version du script, en ligne et en cours d'exécution
|
" -u, --upgrade : upgrade script installé si maj possible"
|
||||||
EOF
|
" -v, --version : version du script, en ligne et en cours d'exécution"
|
||||||
echo -e "$STD\n plus d'infos: $GREEN$urlNotice\n$STD"
|
)
|
||||||
|
for ligne in "${toDisplay[@]}"; do
|
||||||
|
echo -e "$ligne"
|
||||||
|
done
|
||||||
|
echo -e "$STD\n plus d'infos: $GREEN$urlNotice\n$STD"
|
||||||
}
|
}
|
||||||
|
|
||||||
fi_batt(){ # 10/11/2017
|
fi_batt(){ # 10/11/2017
|
||||||
|
@ -522,6 +531,39 @@ fi_batt(){ # 10/11/2017
|
||||||
unset text
|
unset text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fi_conf(){ # 22/11/2017
|
||||||
|
local conf toScrut=(
|
||||||
|
/etc/sysctl.conf
|
||||||
|
'/etc/sysctl.d/*.conf'
|
||||||
|
'/etc/hostname' # debian
|
||||||
|
/etc/sysconfig/network # fedora?
|
||||||
|
/etc/HOSTNAME # suse
|
||||||
|
# /etc/os-release # nouveau standard systemd/freedesktop
|
||||||
|
/etc/vconsole.conf
|
||||||
|
# /etc/locale.conf # voir fi_locale
|
||||||
|
'/etc/modules-load.d/*.conf'
|
||||||
|
'/etc/tmpfiles.d/*.conf'
|
||||||
|
'/etc/binfmt.d/*.conf'
|
||||||
|
# /etc/machine-id # voir fi-serial
|
||||||
|
/etc/machine-info
|
||||||
|
)
|
||||||
|
#conf=$( f_grep_file "${toScrut[@]}" )
|
||||||
|
#f_grep_file "${toScrut[*]}" "nofile novide"
|
||||||
|
echo "----"
|
||||||
|
#f_grep_file "/etc/apt/s" "nofile esc"
|
||||||
|
#f_grep_file "/etc/apt/sources.list.d" "nofile"
|
||||||
|
f_grep_file "/etc/apt/sources.list /etc/apt/sources.list.d/* /etc/toto" ""
|
||||||
|
echo "----"
|
||||||
|
#f_grep_file "/etc/apt/sources.list /etc/apt/sources.list.d/* /etc/toto" "nofile"
|
||||||
|
#echo "----"
|
||||||
|
#echo $conf
|
||||||
|
###
|
||||||
|
text="## fichiers conf divers \n\n"
|
||||||
|
f_display "conf" "cmd" "grep "
|
||||||
|
echo -en "$text\n" >> "$fileOutput"
|
||||||
|
unset text
|
||||||
|
}
|
||||||
|
|
||||||
fi_cpu(){ # 19/11/2017
|
fi_cpu(){ # 19/11/2017
|
||||||
local cpu_flags text iflag var_temp qte_flags text_flags="" pluriel
|
local cpu_flags text iflag var_temp qte_flags text_flags="" pluriel
|
||||||
cpu_flags=$(sed -n 's/^flags.*: \(.*\)$/\1/p;' /proc/cpuinfo | sed -n '1p'| \
|
cpu_flags=$(sed -n 's/^flags.*: \(.*\)$/\1/p;' /proc/cpuinfo | sed -n '1p'| \
|
||||||
|
@ -1801,46 +1843,39 @@ fi_reseau(){ # 20/11/2017
|
||||||
unset text
|
unset text
|
||||||
}
|
}
|
||||||
|
|
||||||
fi_serial(){ # 16/11/2017
|
fi_serial(){ #v2 22/11/2017
|
||||||
local file="/tmp/$$-$RANDOM-fi_serial" chassis_serial text
|
local chassis_serial machineId text
|
||||||
[ "$fg_nb_disk" ] || figet_disk
|
[ "$fg_nb_disk" ] || figet_disk
|
||||||
[ "$fg_nb_batt" ] || figet_batt
|
[ "$fg_nb_batt" ] || figet_batt
|
||||||
f__sudo "cat /sys/class/dmi/id/chassis_serial 2>/dev/null > $file ; \
|
chassis_serial=$( cat /sys/class/dmi/id/chassis_serial 2>/dev/null )
|
||||||
chown $user_: $file"
|
machineId=$( cat /etc/machine-id 2>/dev/null )
|
||||||
chassis_serial="$(cat $file 2>/dev/null)"
|
|
||||||
rm "$file"
|
|
||||||
###
|
###
|
||||||
text="$BOLD\n N° Série \n\n$STD"
|
[ "$machineId" ] && text+="\n$BOLD ID MAchine: $BLUE$machineId \n\n$STD"
|
||||||
[ "$fg_disk_serial" ] && text+="$GREEN * Disques: \n"
|
text+="$BOLD* N° Série: \n\n$STD"
|
||||||
|
[ "$fg_disk_serial" ] && text+="$GREEN * Disques: \n"
|
||||||
[ "$fg_disk_serial" ] && text+="$BLUE$fg_disk_serial \n\n$STD"
|
[ "$fg_disk_serial" ] && text+="$BLUE$fg_disk_serial \n\n$STD"
|
||||||
[ "$fg_batt_serial" ] && text+="$GREEN * Batteries \n"
|
[ "$fg_batt_serial" ] && text+="$GREEN * Batteries \n"
|
||||||
[ "$fg_batt_serial" ] && text+="$BLUE$fg_batt_serial \n\n$STD"
|
[ "$fg_batt_serial" ] && text+="$BLUE$fg_batt_serial \n\n$STD"
|
||||||
[ "$chassis_serial" ] && text+="$GREEN * Chassis \n"
|
[ "$chassis_serial" ] && text+="$GREEN * Chassis \n"
|
||||||
[ "$chassis_serial" ] && text+="$BLUE$chassis_serial \n\n$STD"
|
[ "$chassis_serial" ] && text+="$BLUE$chassis_serial \n\n$STD"
|
||||||
echo -en "$text\n" >> "$fileOutput"
|
echo -en "$text"
|
||||||
unset text
|
unset text
|
||||||
}
|
}
|
||||||
|
|
||||||
fi_ssid(){ # 09/11/2017
|
fi_ssid(){ #v2 22/11/2017
|
||||||
[ $( f__which nmcli ) ] || f__error "NetworkManager requis"
|
local nm_ssid text
|
||||||
local nm_ssid file="/tmp/$$-$RANDOM-fi_ssid" text
|
local fileOutput="/tmp/$RANDOM-$RANDOM" # ré-assigne sortie pour f_display
|
||||||
# nm_ssid="$(grep -Ev '#|^$' /etc/NetworkManager/system-connections/*)"
|
[ "$EUID" -eq 0 ] || f__error "Root requis"
|
||||||
[ "$EUID" -eq 0 ] || echo
|
[ $( f__which nmcli ) ] || f__error "NetworkManager requis"
|
||||||
f__sudo "grep -Ev '^[[:blank:]]*#|^[[:blank:]]*$' /etc/NetworkManager/system-connections/* > $file ; \
|
nm_ssid=$( f_grep_file "/etc/NetworkManager/system-connections/*" "ligneVide" )
|
||||||
chown $user_: $file"
|
|
||||||
if [ "$?" != "0" ]; then
|
|
||||||
f__info "\n la consultation des connections NetworkManager$RED a échoué$BLUE (droits root requis, échec authentification?)"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
nm_ssid="$(cat $file 2>/dev/null)"
|
|
||||||
rm "$file"
|
|
||||||
###
|
###
|
||||||
f__info "la$RED clé du réseau wifi étant visible$STD, aucun rapport n'a été créé"
|
f__info "$RED""Attention:$BLUE la clé du réseau wifi est visible"
|
||||||
text="$BOLD configuration(s) ssid networkmanager \n\n"
|
text="## configuration(s) ssid networkmanager \n\n"
|
||||||
text+="$GREEN""grep -Ehv '#|^$' /etc/NetworkManager/system-connections/*$STD \n\n"
|
f_display "nm_ssid" "cmd" "grep -Ersv '#|^$' /etc/NetworkManager/system-connections/*"
|
||||||
text+="$nm_ssid \n\n"
|
|
||||||
echo -en "$text\n" >> "$fileOutput"
|
echo -en "$text\n" >> "$fileOutput"
|
||||||
unset text
|
unset text
|
||||||
|
f_dspl_md "$fileOutput" "marge"
|
||||||
|
rm "$fileOutput"
|
||||||
}
|
}
|
||||||
|
|
||||||
fi_system_analyse(){ #v 21/11/2017
|
fi_system_analyse(){ #v 21/11/2017
|
||||||
|
@ -1915,7 +1950,7 @@ fi_system_analyse(){ #v 21/11/2017
|
||||||
unset text
|
unset text
|
||||||
}
|
}
|
||||||
|
|
||||||
fi_systeme(){ # 21/11/2017
|
fi_systeme(){ # 22/11/2017
|
||||||
local mbr uname bootImage initDaemon serverX shells lastboot uptime charge pluriel text
|
local mbr uname bootImage initDaemon serverX shells lastboot uptime charge pluriel text
|
||||||
local alimentation alim_total ish ifs_origin ligne date_install microcode
|
local alimentation alim_total ish ifs_origin ligne date_install microcode
|
||||||
local alert_SLiM alert_microcode
|
local alert_SLiM alert_microcode
|
||||||
|
@ -1924,7 +1959,7 @@ fi_systeme(){ # 21/11/2017
|
||||||
bootImage="$(gawk '/BOOT_IMAGE/ {print $1}' /proc/cmdline)"
|
bootImage="$(gawk '/BOOT_IMAGE/ {print $1}' /proc/cmdline)"
|
||||||
bootImage="$(gawk '{print $1}{i=2; while (i <= NF-1) { print " ",$i; i++}}' /proc/cmdline)"
|
bootImage="$(gawk '{print $1}{i=2; while (i <= NF-1) { print " ",$i; i++}}' /proc/cmdline)"
|
||||||
initDaemon="$(ps -p1 | gawk 'FNR==2 {print $4}')" #? ps -ax | gawk '$1==1' ou ps -p1 | gawk '$1==1'
|
initDaemon="$(ps -p1 | gawk 'FNR==2 {print $4}')" #? ps -ax | gawk '$1==1' ou ps -p1 | gawk '$1==1'
|
||||||
[ "$initDaemon" == "systemd" ] && initDaemon=$( systemd --version )
|
[ $( f__which systemd )] && initDaemon=$( systemd --version )
|
||||||
initDaemon=${initDaemon%%[[:space:]]+*}
|
initDaemon=${initDaemon%%[[:space:]]+*}
|
||||||
initDaemon=${initDaemon/systemd/systemd version}
|
initDaemon=${initDaemon/systemd/systemd version}
|
||||||
[ "$ENV_SSH" ] && serverX="n/a (ssh)" || serverX="$XDG_SESSION_TYPE" # normalement retourne wayland
|
[ "$ENV_SSH" ] && serverX="n/a (ssh)" || serverX="$XDG_SESSION_TYPE" # normalement retourne wayland
|
||||||
|
@ -2395,7 +2430,7 @@ figet_de(){ #v 21/11/2017 # thanks neofetch
|
||||||
# $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(){ #v2 07/11/2017
|
figet_disk(){ #v2 22/11/2017
|
||||||
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
|
||||||
# bug printf: caractères accentués diminuent 1 caractère sur arguments suivants, ajouter autant d'espaces
|
# bug printf: caractères accentués diminuent 1 caractère sur arguments suivants, ajouter autant d'espaces
|
||||||
|
@ -2427,6 +2462,7 @@ figet_disk(){ #v2 07/11/2017
|
||||||
fi
|
fi
|
||||||
done
|
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), peut servir d'indicateur fonction déja appelée
|
||||||
fg_nb_disk="$(tr ' ' '\n' <<< "$fg_disk_fixe$fg_disk_amov" | grep -c .)"
|
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)
|
# séquences partitions fixes, montées (m) et non montées (nm)
|
||||||
|
@ -3248,6 +3284,57 @@ fscript_update(){ # 06/11/2017
|
||||||
rm -rf "$dirTemp/"
|
rm -rf "$dirTemp/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prg_init(){ # 22/11/2017
|
||||||
|
PATH='/usr/sbin:/usr/bin:/sbin:/bin'
|
||||||
|
TERM=xterm
|
||||||
|
IFS=$' \t\n'
|
||||||
|
export PATH TERM IFS
|
||||||
|
|
||||||
|
# aucune erreur visible, prévoir option --debug
|
||||||
|
# exec 2>/dev/null
|
||||||
|
# exec 2>"$script.log" # à tester
|
||||||
|
|
||||||
|
# test bash v4
|
||||||
|
bashVersion=( $( grep -o 'version 4' <<< $( bash --version ) ) )
|
||||||
|
[ ${bashVersion[1]} -ge 4 ] || f__error "bash v4 requis" \
|
||||||
|
"version installée: $( grep -m1 'version' <<< $(bash --version) )"
|
||||||
|
|
||||||
|
# test /proc
|
||||||
|
[ -e /proc/cpuinfo ] || f__error "/proc/cpuinfo non trouvé" "/proc ne doit pas être monté"
|
||||||
|
|
||||||
|
# test OS
|
||||||
|
OS=$(uname -s)
|
||||||
|
[[ ${OS,,} =~ linux || ${OS,,} =~ gnu ]] && OS="linux"
|
||||||
|
[[ ${OS,,} =~ bsd || ${OS,,} =~ Bitrig || ${OS,,} =~ DragonFly ]] && OS="bsd"
|
||||||
|
[[ ${OS,,} =~ cygwin || ${OS,,} =~ msys || ${OS,,} =~ mingw ]] && OS="windows"
|
||||||
|
[ "$OS" == "bsd" ] && f__info "ce script pour Linux n'est pas prévu de fonctionner sur BSD..."
|
||||||
|
[ "$OS" == "windows" ] && f__info "ce script pour Linux n'est pas prévu de fonctionner sous windows..."
|
||||||
|
[ "$OS" != "linux" ] && f__error "Linux requis"
|
||||||
|
# recherche wayland
|
||||||
|
[ "$(ps -ef | grep -c 'wayland')" -gt 1 ] && wayland="wayland"
|
||||||
|
# essai détection erreur No protocol specified, Can't open display :0 (root Fedora)
|
||||||
|
if [[ "$wayland" && "$EUID" -eq 0 ]]; then
|
||||||
|
f__info "Wayland ne permet pas de lancer des applications graphiques en Root" \
|
||||||
|
"seul l'utilisateur ayant démarré le serveur X peut permettre des connexions à celui-ci" \
|
||||||
|
"le plus simple est de redémarrer le script en utilisateur pour déterminer certaines propriétés graphiques ou essayer: \n" \
|
||||||
|
"$GREEN""xhost si:localuser:root$BLUE pour autoriser,$GREEN xhost -si:localuser:root$BLUE pour enlever cette autorisation"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# test SSH
|
||||||
|
[[ "$SSH_CLIENT" || "$SSH_CLIENT" || "$SSH_CLIENT" ]] && ENV_SSH="ssh"
|
||||||
|
# détermination user derrière root
|
||||||
|
f__user
|
||||||
|
retourFUser="$?"
|
||||||
|
[ "$retourFUser" -eq 1 ] && f__error "user indéterminé" \
|
||||||
|
"pour contourner, lancer le script avec:\n$GREEN USER_INSTALL=<user> $0 \n"
|
||||||
|
if [ "$retourFUser" -eq 2 ]; then
|
||||||
|
[ "$EUID" -eq 0 ] && user_="root" || f__error "user détecté, mais pas de home: /home/$user_"
|
||||||
|
f__info "user root"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# requis pour fonctionnement programme
|
||||||
|
f__requis "gawk wget ip>iproute2 lspci>pciutils wc>coreutils" || exit 1
|
||||||
|
}
|
||||||
prg_1(){ # début
|
prg_1(){ # début
|
||||||
echo > "$fileOutput"
|
echo > "$fileOutput"
|
||||||
chown $user_: "$fileOutput" &>/dev/null
|
chown $user_: "$fileOutput" &>/dev/null
|
||||||
|
@ -3263,7 +3350,7 @@ prg_2(){ # traitements principaux 21/11/2017
|
||||||
$i
|
$i
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if [[ "$1" == all || "$1" =~ c ]]; then #configuration #debian, packages -cc
|
if [[ "$1" == all || "$1" =~ c ]]; then #configuration #debian, packages -cc fi_conf
|
||||||
echo -e "# ▷ Configuration \n\n" >> "$fileOutput"
|
echo -e "# ▷ Configuration \n\n" >> "$fileOutput"
|
||||||
for i in fi_locale fi_vrms fi_packagers ; do
|
for i in fi_locale fi_vrms fi_packagers ; do
|
||||||
echo -n "•"
|
echo -n "•"
|
||||||
|
@ -3324,49 +3411,6 @@ function display_menu {
|
||||||
reply="$(sed 's/-call/all/' <<< $reply)"
|
reply="$(sed 's/-call/all/' <<< $reply)"
|
||||||
exec $0 "$reply"
|
exec $0 "$reply"
|
||||||
}
|
}
|
||||||
prg_init(){ # 21/11/2017
|
|
||||||
PATH='/usr/sbin:/usr/bin:/sbin:/bin'
|
|
||||||
TERM=xterm
|
|
||||||
IFS=$' \t\n'
|
|
||||||
export PATH TERM IFS
|
|
||||||
# aucune erreur visible, prévoir option --debug
|
|
||||||
# exec 2>/dev/null
|
|
||||||
# exec 2>"$script.log" # à tester
|
|
||||||
# test bash v4
|
|
||||||
bashVersion=( $( grep -o 'version 4' <<< $( bash --version ) ) )
|
|
||||||
[ ${bashVersion[1]} -ge 4 ] || f__error "bash v4 requis" \
|
|
||||||
"version installée: $( grep -m1 'version' <<< $(bash --version) )"
|
|
||||||
# test /proc
|
|
||||||
[ -e /proc/cpuinfo ] || f__error "/proc/cpuinfo non trouvé" "/proc ne doit pas être monté"
|
|
||||||
# test OS
|
|
||||||
OS=$(uname -s)
|
|
||||||
[[ ${OS,,} =~ linux || ${OS,,} =~ gnu ]] && OS="linux"
|
|
||||||
[[ ${OS,,} =~ bsd || ${OS,,} =~ Bitrig || ${OS,,} =~ DragonFly ]] && OS="bsd"
|
|
||||||
[[ ${OS,,} =~ cygwin || ${OS,,} =~ msys || ${OS,,} =~ mingw ]] && OS="windows"
|
|
||||||
[ "$OS" == "bsd" ] && f__info "ce script pour Linux n'est pas prévu de fonctionner sur BSD..."
|
|
||||||
[ "$OS" == "windows" ] && f__info "ce script pour Linux n'est pas prévu de fonctionner sous windows..."
|
|
||||||
[ "$OS" != "linux" ] && f__error "Linux requis"
|
|
||||||
# recherche wayland
|
|
||||||
[ "$(ps -ef | grep -c 'wayland')" -gt 1 ] && wayland="wayland"
|
|
||||||
# essai détection erreur No protocol specified, Can't open display :0 (root Fedora)
|
|
||||||
if [[ "$wayland" && "$EUID" -eq 0 ]]; then
|
|
||||||
f__info "Wayland ne permet pas de lancer des applications graphiques en Root" \
|
|
||||||
"seul l'utilisateur ayant démarré le serveur X peut permettre des connexions à celui-ci" \
|
|
||||||
"le plus simple est de redémarrer le script en utilisateur pour déterminer certaines propriétés graphiques ou essayer: \n" \
|
|
||||||
"$GREEN""xhost si:localuser:root$BLUE pour autoriser,$GREEN xhost -si:localuser:root$BLUE pour enlever cette autorisation"
|
|
||||||
fi
|
|
||||||
# test SSH
|
|
||||||
[[ "$SSH_CLIENT" || "$SSH_CLIENT" || "$SSH_CLIENT" ]] && ENV_SSH="ssh"
|
|
||||||
# détermination user derrière root
|
|
||||||
f__user
|
|
||||||
retourFUser="$?"
|
|
||||||
[ "$retourFUser" -eq 1 ] && f__error "user indéterminé" \
|
|
||||||
"pour contourner, lancer le script avec:\n$GREEN USER_INSTALL=<user> $0 \n"
|
|
||||||
if [ "$retourFUser" -eq 2 ]; then
|
|
||||||
[ "$EUID" -eq 0 ] && user_="root" || f__error "user détecté, mais pas de home: /home/$user_"
|
|
||||||
f__info "user root"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
######## début script / initialisation
|
######## début script / initialisation
|
||||||
|
|
||||||
|
@ -3375,8 +3419,6 @@ f__affichage
|
||||||
|
|
||||||
# tests au démarrage
|
# tests au démarrage
|
||||||
prg_init
|
prg_init
|
||||||
# requis pour fonctionnement programme
|
|
||||||
f__requis "gawk wget ip>iproute2 lspci>pciutils wc>coreutils" || exit 1
|
|
||||||
|
|
||||||
options=$@
|
options=$@
|
||||||
# traitement option paramètres
|
# traitement option paramètres
|
||||||
|
@ -3425,8 +3467,8 @@ for j in $options; do
|
||||||
case $j in
|
case $j in
|
||||||
-t | --test )
|
-t | --test )
|
||||||
prg_1 "$*"
|
prg_1 "$*"
|
||||||
echo -n "."
|
echo -n "•"
|
||||||
fi_graph
|
fi_conf
|
||||||
exit ;; # test
|
exit ;; # test
|
||||||
-c* | all )
|
-c* | all )
|
||||||
[ "$j" == "-c" ] && exec $0 "menu"
|
[ "$j" == "-c" ] && exec $0 "menu"
|
||||||
|
|
|
@ -3,9 +3,17 @@
|
||||||
* f__wcv, f_display_grep, f_dspl_md, f__wget_test, fscript_get_version, fscript_update
|
* f__wcv, f_display_grep, f_dspl_md, f__wget_test, fscript_get_version, fscript_update
|
||||||
* ! f__requis, fscript_install, f__scandir
|
* ! f__requis, fscript_install, f__scandir
|
||||||
|
|
||||||
|
## 2.43.0 22/11/2017
|
||||||
|
|
||||||
|
* nouveau: fi_serial, machine ID si présent
|
||||||
|
* révision: f_help, nouvelle manière afficher
|
||||||
|
* fix: fi_serial, fi_ssid, pas d'utilisation fichier MD
|
||||||
|
* fix: f_grep_file, protection espaces dans nom de fichier (NM!..)
|
||||||
|
* fix: fi_systeme, erreur sous fedora
|
||||||
|
|
||||||
## 2.42.3 21/11/2017
|
## 2.42.3 21/11/2017
|
||||||
|
|
||||||
* révision: wayland, wayland/root, évolution wayland si plus de xprop, xrandr, xdpyinfo...
|
* révision: wayland, wayland/root, évolution wayland si plus de xprop, xrandr, xdpyinfo... +70lignes pour ça, environ!
|
||||||
* révision: fi_system, figet_de, fi_graph, figet_screen, fi_system_analyse prise en compte wayland
|
* révision: fi_system, figet_de, fi_graph, figet_screen, fi_system_analyse prise en compte wayland
|
||||||
* révision: figet_wm, + compositor si connu
|
* révision: figet_wm, + compositor si connu
|
||||||
* révision: fi_log_xorg, + emplacement log sous gdm3 X11 (nouveau sous buster?), cmd et info adaptés
|
* révision: fi_log_xorg, + emplacement log sous gdm3 X11 (nouveau sous buster?), cmd et info adaptés
|
||||||
|
|
Loading…
Reference in New Issue