mirror of https://framagit.org/kyodev/kyopages.git
getInfo 3.7.0
This commit is contained in:
parent
bbf8050016
commit
4052eb6318
222
scripts/getInfo
222
scripts/getInfo
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
version=3.6.0
|
||||
date="14/01/2018"
|
||||
version=3.7.0
|
||||
date="24/01/2018"
|
||||
projet="simpledeb"
|
||||
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
|
||||
script="getInfo"
|
||||
|
@ -268,7 +268,7 @@ f__wcv(){ # 09/11/2017
|
|||
# si $2=print affiche url testée & entêtes http & location, return 0
|
||||
# si $2=loc affiche seulement location, return 0
|
||||
# si $2=test return 0 si ok, return 1 si KO
|
||||
f__wget_test(){ # 24/12/2017
|
||||
f__wget_test(){ # 16/01/2018
|
||||
local file_test_wget="/tmp/testWget-$script" retourWget retourHttp location
|
||||
|
||||
wget -Sq --timeout=5 --tries=2 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget"
|
||||
|
@ -291,15 +291,14 @@ f__wget_test(){ # 24/12/2017
|
|||
fi
|
||||
if [ "$2" == "print" ]; then
|
||||
if [ "$retourWget" != "0" ]; then
|
||||
echo "erreur wget: erreur $RED$retourWget"
|
||||
echo -e "$BLUE $1$STD\t$RED $retourHttp"
|
||||
echo " erreur wget: erreur $RED$retourWget"
|
||||
echo -e "$BLUE $1$STD\t$RED $retourHttp$STD"
|
||||
else
|
||||
echo -e "$BLUE $1$STD\t$GREEN $retourHttp"
|
||||
echo -e "$BLUE $1$STD\t$GREEN $retourHttp$STD"
|
||||
fi
|
||||
echo "$STD"
|
||||
fi
|
||||
if [ "$2" == "print" ] || [ "$2" == "loc" ]; then
|
||||
[ "$location" ] && echo -n "$YELLOW$location" || echo -n "$YELLOW""no location"
|
||||
[ "$location" ] && echo -n "$YELLOW $location" || echo -n "$YELLOW no location"
|
||||
echo "$STD"
|
||||
rm -f "$file_test_wget"
|
||||
return 0
|
||||
|
@ -328,16 +327,16 @@ f__which(){ # 27/11/2017
|
|||
fi
|
||||
}
|
||||
|
||||
f_affichage(){ # 2/12/2017
|
||||
f_affichage(){ # 24/01/2018
|
||||
local affichage_text=" _ ___ __
|
||||
__ _ ___| |_|_ _|_ __ / _| ___
|
||||
/ _' |/ _ \ __|| || '_ \| |_ / _ \
|
||||
| (_| | __/ |_ | || | | | _| (_) |
|
||||
\__, |\___|\__|___|_| |_|_| \___/
|
||||
|___/"
|
||||
|
||||
local affichage_text=" _ ___ __
|
||||
__ _ ___| |_|_ _|_ __ / _| ___
|
||||
/ _' |/ _ \ __|| || '_ \| |_ / _ \
|
||||
| (_| | __/ |_ | || | | | _| (_) |
|
||||
\__, |\___|\__|___|_| |_|_| \___/
|
||||
|___/ "
|
||||
clear
|
||||
echo -e "$BLUE$affichage_text\n$YELLOW version $version - $date$STD\n"
|
||||
echo -e "$BLUE$affichage_text$YELLOW version $version - $date$STD\n"
|
||||
}
|
||||
|
||||
# $1=type de titre var|cmd|sans|+:text|+:vide, $2 variable à afficher [$3 titre] [$4 commentaire]
|
||||
|
@ -465,37 +464,36 @@ f_grep_file(){ # 12/12/2017
|
|||
echo -en "$display"
|
||||
}
|
||||
|
||||
f_help(){ # 22/11/2017
|
||||
local toDisplay ligne
|
||||
toDisplay=(
|
||||
"$GREEN ./getInfo$BLUE : exécution normale, rapport markdown de la configuration"
|
||||
"$GREEN getInfo$BLUE : script installé dans le système"
|
||||
""
|
||||
"$STD$BOLD options:$STD$BLUE"
|
||||
" -c : (catégorie) menu sélection catégorie d'analyse"
|
||||
" -cs : catégorie système -cs : catégorie configuration"
|
||||
" -cr : catégorie réseau -ca : catégorie analyse"
|
||||
" -h : (help) affichage aide"
|
||||
" -j : (journaux) analyse démarrage système, log Xorg, kernel et système, catégorie -ca"
|
||||
" -l : (list) afficher le rapport markdown existant"
|
||||
" -p : (paste) exporte le rapport markdown existant, durée standard du paste 7 jours"
|
||||
""
|
||||
" --ip : affiche ip publique (ipv4/ipv6), pas de rapport markdown"
|
||||
" --mac : affiche les adresses Mac, pas de rapport markdown"
|
||||
" pas de rapport markdown, $RED ROOT$BLUE requis:"
|
||||
" --serial : affiche n° série disques, batterie et châssis"
|
||||
" --ssid : affiche configurations ssid, infos confidentielles,$RED NetworkManager$BLUE 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"
|
||||
" -u, --upgrade : upgrade script installé si maj possible"
|
||||
" -v, --version : version du script, en ligne et en cours d'exécution"
|
||||
)
|
||||
for ligne in "${toDisplay[@]}"; do
|
||||
echo -e "$ligne"
|
||||
f_help(){ # 24/01/2018
|
||||
local ligne help=(
|
||||
"-----------------------------------------------------------------------"
|
||||
"$GREEN""./getInfo$STD : exécution script"
|
||||
"$GREEN""getInfo$STD : exécution script installé dans le système"
|
||||
""
|
||||
"$BOLD""options:$STD"
|
||||
"$BLUE -c$STD : (catégorie) menu sélection catégorie d'analyse"
|
||||
"$BLUE -cs$STD : catégorie système $BLUE-cs$STD : catégorie configuration"
|
||||
"$BLUE -cr$STD : catégorie réseau $BLUE-ca$STD : catégorie analyse"
|
||||
"$BLUE -j$STD : (journaux) analyse démarrage système, log Xorg, kernel et système, catégorie -ca"
|
||||
"$BLUE -l$STD : (list) afficher le rapport markdown existant"
|
||||
"$BLUE -p$STD : (paste) exporte le rapport markdown existant, durée standard du paste 7 jours"
|
||||
"$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 --mac$STD : affiche adresses Mac, 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 -t$STD$GREEN""n$STD : durée de conservation du paste de$GREEN n$STD jour(s)"
|
||||
"-----------------------------------------------------------------------"
|
||||
"$BLUE./$script -i$STD : installation du script dans le système $RED(root)$STD"
|
||||
"$BLUE$script -h$STD, --help : affichage aide"
|
||||
"$BLUE$script -r$STD, --remove : désinstallation du script $RED(root)$STD"
|
||||
"$BLUE$script -u$STD, --upgrade : mise à jour script"
|
||||
"$BLUE$script -v$STD, --version : version du script"
|
||||
)
|
||||
|
||||
tput cuu1 # une ligne plus haut
|
||||
for ligne in "${help[@]}"; do
|
||||
echo -e " $ligne"
|
||||
done
|
||||
echo -e "$STD\n plus d'infos: $GREEN$url_notice\n$STD"
|
||||
}
|
||||
|
@ -4026,17 +4024,13 @@ fscript_cronAnacron(){ # 29/12/2017
|
|||
esac
|
||||
}
|
||||
|
||||
# version script en ligne, [$1=quiet], assigne $ver_script_install, $ver_script_online, $script_a_jour=ok|KO
|
||||
fscript_get_version(){ # 27/12/2017
|
||||
local wget_log="/tmp/wget_$RANDOM.log"
|
||||
# version script, [$1=quiet], assigne $ver_script_install, $ver_script_online, $script_a_jour=ok|KO
|
||||
fscript_get_version(){ # 24/01/2018
|
||||
|
||||
x_script_get_version=1
|
||||
# version online
|
||||
ver_script_online=$( wget -q --timeout=15 -o "$wget_log" -O - "$url_script" | grep -m1 '^version=' | cut -d'=' -f2 )
|
||||
if [ "$?" -ne 0 ]; then
|
||||
rm "$wget_log"
|
||||
f__wget_test "$url_script"
|
||||
fi
|
||||
ver_script_online=$( wget -q --timeout=15 -o /dev/null -O - "$url_script" | grep -m1 '^version=' | cut -d'=' -f2 )
|
||||
[ "$?" -ne 0 ] && f__wget_test "$url_script"
|
||||
# version installée
|
||||
if [ -e "$script_install" ]; then
|
||||
ver_script_install=$( grep -m1 '^version=' $script_install | cut -d'=' -f2 )
|
||||
|
@ -4047,7 +4041,6 @@ fscript_get_version(){ # 27/12/2017
|
|||
fi
|
||||
[ "$ver_script_online" ] || ver_script_online="$RED""n/a"
|
||||
[ "$ver_script_install" ] || ver_script_install="Non installé"
|
||||
rm "$wget_log"
|
||||
[ "$1" == "quiet" ] && return 0
|
||||
|
||||
f__info "raw" "script en place: $GREEN$ver_script_install"
|
||||
|
@ -4055,17 +4048,12 @@ fscript_get_version(){ # 27/12/2017
|
|||
}
|
||||
|
||||
# installation du script dans le système
|
||||
fscript_install(){ # 27/12/2017
|
||||
fscript_install(){ # 15/01/2018
|
||||
|
||||
if grep -q 'bin' <<< "$( dirname $0 )" ; then
|
||||
f__info "$RED""l'installation dans le système doit se faire depuis un script local $GREEN(./$script -i )"
|
||||
return 1
|
||||
fi
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
f__info "vous devez être$RED ROOT$BLUE pour installer ce script dans le système"
|
||||
f__sudo "exec $0 -i"
|
||||
return $?
|
||||
fi
|
||||
|
||||
[ "$( type -t fscript_install_special )" ] && fscript_install_special # test, si fonction spécifique, appel
|
||||
f__requis "wget anacron cron" || exit 1
|
||||
|
@ -4086,7 +4074,7 @@ fscript_install(){ # 27/12/2017
|
|||
}
|
||||
|
||||
# suppression du script dans le système
|
||||
fscript_remove(){ # 27/12/2017
|
||||
fscript_remove(){ # 15/01/2018
|
||||
|
||||
if ! 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 -r)"
|
||||
|
@ -4096,11 +4084,6 @@ fscript_remove(){ # 27/12/2017
|
|||
f__info "$RED$script n'est pas installé"
|
||||
return 1
|
||||
fi
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
f__info "vous devez être$RED ROOT$BLUE pour supprimer ce script dans le système"
|
||||
f__sudo "exec $0 -r"
|
||||
return $?
|
||||
fi
|
||||
|
||||
[ "$( type -t fscript_remove_special )" ] && fscript_remove_special # test, si fonction spécifique, appel
|
||||
# suppression de /opt lien /usr/bin
|
||||
|
@ -4113,8 +4096,8 @@ fscript_remove(){ # 27/12/2017
|
|||
}
|
||||
|
||||
# mise à jour script, [$1 != "" si upgrade en place, $1 dans message info]
|
||||
fscript_update(){ # 27/12/2017
|
||||
local dirTemp="/tmp/$script-maj" wget_log="/tmp/wget_$RANDOM.log" upgradeEnPlace="$1"
|
||||
fscript_update(){ # 24/01/2018
|
||||
local dirTemp="/tmp/$script-maj" upgradeEnPlace="$1"
|
||||
|
||||
[ "$(type -t fscript_update_special)" ] && fscript_update_special # test, si fonction spécifique, appel
|
||||
if [ -z "$upgradeEnPlace" ] && ! grep -q 'bin' <<< "$( dirname $0 )" ; then
|
||||
|
@ -4129,10 +4112,9 @@ fscript_update(){ # 27/12/2017
|
|||
f__info "mise à jour en cours"
|
||||
fi
|
||||
mkdir -p "$dirTemp"
|
||||
wget -q --tries=2 --timeout=15 -o "$wget_log" -O "$dirTemp/$script" "$url_script"
|
||||
wget -q --tries=2 --timeout=15 -o /dev/null -O "$dirTemp/$script" "$url_script"
|
||||
if [ "$?" -ne 0 ]; then
|
||||
rm -rf "$dirTemp/"
|
||||
rm -f "$wget_log"
|
||||
rm -rf "$dirTemp"
|
||||
f__wget_test "$url_script"
|
||||
fi
|
||||
if grep -q '#!/bin/bash' "$dirTemp/$script" && grep -q '^### END CONTROL' "$dirTemp/$script"; then
|
||||
|
@ -4145,7 +4127,6 @@ fscript_update(){ # 27/12/2017
|
|||
f_info "log" "$script: échec update" "mauvais téléchargement, réessayer plus tard"
|
||||
fi
|
||||
rm -rf "$dirTemp/"
|
||||
rm -f "$wget_log"
|
||||
}
|
||||
|
||||
prg_init(){ # 4/12/2017
|
||||
|
@ -4207,7 +4188,8 @@ prg_init(){ # 4/12/2017
|
|||
fi
|
||||
|
||||
# requis pour fonctionnement programme
|
||||
f__requis "gawk wget ip>iproute2 lspci>pciutils wc>coreutils uptime>procps" || exit 1
|
||||
# f__requis "gawk wget ip>iproute2 lspci>pciutils wc>coreutils uptime>procps" || exit 1
|
||||
f__requis "mawk wget ip>iproute2 lspci>pciutils wc>coreutils uptime>procps" || exit 1
|
||||
|
||||
# detect rapide systeme deb
|
||||
[ $( f__which dpkg ) ] && ENV_DEBIAN="oui"
|
||||
|
@ -4301,50 +4283,51 @@ prg_init
|
|||
# logo et définition couleurs
|
||||
f_affichage
|
||||
|
||||
# paramètres script
|
||||
user_agent="Mozilla/5.0 Firefox"
|
||||
fileDev="/opt/bin/fileDev"
|
||||
file_output="getInfo_rapport.md"
|
||||
script_install="/opt/bin/$script"
|
||||
script_logs="/var/log/sdeb_$script.log"
|
||||
url_script="https://framagit.org/kyodev/kyopages/raw/master/scripts/$script"
|
||||
url_notice="https://kyodev.frama.io/kyopages/scripts/getInfo/"
|
||||
pasteDuration=7 # durée de conservation standard du paste en jours
|
||||
|
||||
spc5=$'\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0'
|
||||
ligneRapport="Rapport du $(date '+%d/%m/%Y %H:%M %z')$spc5◇$spc5$0 $*$spc5◇$spc5[$script $version]($url_notice)"
|
||||
|
||||
|
||||
options=$@
|
||||
# traitement option paramètres
|
||||
for j in $options; do
|
||||
|
||||
for j in $options; do # première passe options
|
||||
case $j in
|
||||
--debug-paste )
|
||||
optDebug="debugPaste"
|
||||
;; # si debug, retour json de pastery.net
|
||||
;; # si debug, retour json de pastery.net
|
||||
-t* )
|
||||
pasteDuration="$(sed -En 's/-t([0-9]+)/\1/p' <<< $j)"
|
||||
;; # durée de conservation standard du paste en jours
|
||||
;; # durée de conservation standard du paste en jours
|
||||
-i | --install | -r | --remove )
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
f__info "vous devez être$RED ROOT$BLUE pour cette opération"
|
||||
f__sudo "exec $0 $@"
|
||||
exit
|
||||
fi
|
||||
;;&
|
||||
esac
|
||||
done
|
||||
options="$(sed -E 's/--debug-paste//g; s/-t[0-9]+//g' <<< $options | xargs)" # nettoyage options
|
||||
|
||||
[ "$options" ] || options="all"
|
||||
|
||||
# paramètres généraux
|
||||
[ "$pasteDuration" ] || pasteDuration=7 # durée de conservation standard du paste en jours
|
||||
user_agent="Mozilla/5.0 Firefox"
|
||||
fileDev="/opt/bin/fileDev"
|
||||
file_output="getInfo_rapport.md"
|
||||
script_install="/opt/bin/$script"
|
||||
script_logs="/var/log/sdeb_$script.log"
|
||||
url_script="https://frama.link/getInfo"
|
||||
url_notice="https://frama.link/doc-getInfo"
|
||||
# test si frama.link ok, sinon fallback sur framagit
|
||||
if [[ "$options" =~ all|-d|-h|-c|-v ]]; then
|
||||
if ! f__wget_test "$url_script" "test"; then
|
||||
url_script="https://framagit.org/kyodev/kyopages/raw/master/scripts/$script"
|
||||
url_notice="https://kyodev.frama.io/kyopages/scripts/getInfo/"
|
||||
fi
|
||||
fi
|
||||
|
||||
spc5=$'\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0'
|
||||
ligneRapport="Rapport du $(date '+%d/%m/%Y %H:%M %z')$spc5◇$spc5$0 $*$spc5◇$spc5[$script $version]($url_notice)"
|
||||
|
||||
# traitement options menu catégories
|
||||
for k in $options; do
|
||||
for k in $options; do # traitement options menu catégories
|
||||
categorie+="$(sed -En 's/-c([a-z]+)/\1/p' <<< $k)"
|
||||
options="$(sed -E 's/-c[a-z]+//' <<< $k | xargs)"
|
||||
done
|
||||
[ "$categorie" ] && options+=" -c$categorie"
|
||||
# actions
|
||||
for j in $options; do
|
||||
|
||||
for j in $options; do # deuxième passe options, actions
|
||||
case $j in
|
||||
-t | --test )
|
||||
ORIGIN='test'
|
||||
|
@ -4352,14 +4335,14 @@ for j in $options; do
|
|||
echo -n "•"
|
||||
fi_log_xorg
|
||||
echo; f_prnt_md "$file_output"
|
||||
exit ;; # test
|
||||
;; # test
|
||||
-c* | all )
|
||||
[ "$j" == "-c" ] && exec $0 "menu"
|
||||
prg_1 "$*"
|
||||
j=$(sed -E 's/-c//' <<< $j)
|
||||
prg_2 "$j"
|
||||
prg_3
|
||||
exit ;; # rapport complet ou par catégorie
|
||||
;; # rapport complet ou par catégorie
|
||||
-dx )
|
||||
prg_1 "$*"
|
||||
fi_gpu "xorgOnly"
|
||||
|
@ -4369,52 +4352,52 @@ for j in $options; do
|
|||
prg_1 "$*"
|
||||
fi_pkg_apt "confOnly"
|
||||
f_prnt_md "$file_output"
|
||||
exit ;; # essai util source/apt confOnly
|
||||
;; # essai util source/apt confOnly
|
||||
-j )
|
||||
prg_1 "$*"
|
||||
prg_2 "a"
|
||||
exit ;; # exporte le rapport existant
|
||||
;; # exporte le rapport existant
|
||||
-l )
|
||||
f_prnt_md "$file_output"
|
||||
exit ;; # afficher le rapport existant
|
||||
;; # afficher le rapport existant
|
||||
-p )
|
||||
fipaste
|
||||
exit ;; # exporte le rapport existant
|
||||
-h )
|
||||
f_help
|
||||
exit ;; # affichage help
|
||||
;; # exporte le rapport existant
|
||||
--ip )
|
||||
fi_ip_pub "-46"
|
||||
echo
|
||||
exit ;; # affiche ip public
|
||||
;; # affiche ip public
|
||||
--mac )
|
||||
figet_ip
|
||||
f__info "adresses MAC:\n$STD$BOLD$fg_mac"
|
||||
exit ;; # affiche adresses mac
|
||||
;; # affiche adresses mac
|
||||
--serial )
|
||||
fi_serial
|
||||
exit ;; # affiche n° série
|
||||
;; # affiche n° série
|
||||
--ssid )
|
||||
fi_ssid
|
||||
exit ;; # affiche configurations ssid, root requis
|
||||
;; # affiche configurations ssid, root requis
|
||||
-h )
|
||||
f_help
|
||||
;; # affichage help
|
||||
-i | --install )
|
||||
fscript_install
|
||||
exit ;; # installation du script dans le système
|
||||
;; # installation du script dans le système
|
||||
-r | --remove )
|
||||
fscript_remove
|
||||
exit ;; # suppression du script dans le système
|
||||
;; # suppression du script dans le système
|
||||
-u | --upgrade )
|
||||
opType="upgrade" # log si f__error
|
||||
fscript_update
|
||||
exit ;; # upgrade script si maj possible
|
||||
-us )
|
||||
-us | --us )
|
||||
opType="upgrade" # log si f__error
|
||||
script_install="$(dirname $0)/$script"
|
||||
fscript_update "update en place" # redéfinition répertoire install avec celui du script
|
||||
exit ;; # upgrade spécial
|
||||
-v | --version )
|
||||
fscript_get_version
|
||||
exit ;; # version du script, en ligne et exécuté
|
||||
;; # version du script, en ligne et exécuté
|
||||
menu | * )
|
||||
prg_1 "$*"
|
||||
prg_menu
|
||||
|
@ -4430,4 +4413,3 @@ wget -nv -O getInfo https://frama.link/getinfo
|
|||
chmod +x getInfo && ./getInfo
|
||||
|
||||
wget -nv -O getInfo https://framagit.org/kyodev/kyopages/raw/master/scripts/getInfo
|
||||
|
||||
|
|
|
@ -1,6 +1,18 @@
|
|||
# changelog getInfo
|
||||
|
||||
traitements options dans les options :/
|
||||
* révision: général, invocation f__sudo dans traitement options, plus confortable si su & _all_
|
||||
* mawk à tester
|
||||
|
||||
## getInfo 3.7.0 24/01/2018
|
||||
|
||||
* nouveau: cumul options (opérations) possibles pour la plupart des opérations
|
||||
* révision: invocation f__sudo dans traitement options, plus confortable si su & _all_
|
||||
* révision; f__wget_test
|
||||
* révision: f_sudo abandonné dans fscript_install et fscript_remove, au profit appel au traitement général des options
|
||||
* révision: f_help, f_affichage
|
||||
* révision: général wget_log: fscript_get_version, fscript_update
|
||||
* suppression: liens et tests frama.link
|
||||
|
||||
## getInfo 3.6.0 14/01/2018
|
||||
|
||||
|
|
Loading…
Reference in New Issue