mirror of https://framagit.org/kyodev/kyopages.git
getIp 1.13.0
This commit is contained in:
parent
94bb742978
commit
33eb002016
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
version=1.12.0
|
||||
date="11/10/2017"
|
||||
version=1.13.0
|
||||
date="16/10/2017"
|
||||
projet="simpledeb"
|
||||
contact="IRC freenode ##sdeb ou https://framagit.org/kyodev/kyopages/issues/"
|
||||
script="getIp"
|
||||
|
@ -31,26 +31,24 @@ f__color(){ # 08/10/2017
|
|||
}
|
||||
|
||||
# affichage $1 en rouge, $1++ optionnels en bleu, sortie script sur erreur, log $1 si $opType=upgrade
|
||||
f__error(){ # 08/10/2017
|
||||
f__error(){ # 15/10/2017
|
||||
echo -e "\n$RED $script $version, erreur critique: $1 $STD"
|
||||
for (( i=2 ; i<=$# ; i++ )); do
|
||||
echo -e " $BLUE${!i}$STD"
|
||||
done
|
||||
unset i
|
||||
echo
|
||||
if [ "$opType" == "upgrade" ]; then f__log "$script $version: $1"; fi
|
||||
exit 1
|
||||
}
|
||||
|
||||
# affichage des paramètres en bleu, si $1=raw pas de ligne vide à la fin, si $1=log alors uniquement $2 logué
|
||||
f__info(){ # 08/10/2017
|
||||
local depart=1
|
||||
f__info(){ # 15/10/2017
|
||||
local depart=1 i
|
||||
if [ "$1" == "raw" ] || [ "$1" == "log" ]; then depart=2; fi
|
||||
[ "$1" == "log" ] && f__log "$(sed -E 's/\\t//;s/\\n// ' <<< $2 | xargs )"
|
||||
for (( i=$depart ; i<=$# ; i++ )); do
|
||||
echo -e " $BLUE${!i}$STD"
|
||||
done
|
||||
unset i
|
||||
[ "$1" == raw ] || echo
|
||||
}
|
||||
|
||||
|
@ -73,8 +71,8 @@ f__log(){ # 08/09/2017
|
|||
# si $2=debOnly et si paquets manquants: return 1 et $debOnlyPackages ( $1=liste paquets )
|
||||
# si $2=debOnly et si paquets présent: return 0 et $debOnlyPresents ( $1=liste paquets )
|
||||
# attention priorité $debOnlyPackages sur $debOnlyPresents
|
||||
f__requis(){ # 22/09/2017
|
||||
local dependsMissing packagesMissing command package
|
||||
f__requis(){ # 15/10/2017
|
||||
local dependsMissing packagesMissing command package i
|
||||
unset debOnlyPackages debOnlyPresents
|
||||
for i in $1; do
|
||||
command="$(cut -d '>' -f 1 <<< $i)"
|
||||
|
@ -89,7 +87,6 @@ f__requis(){ # 22/09/2017
|
|||
packagesMissing+="$package "
|
||||
fi
|
||||
done
|
||||
unset i
|
||||
[ "$debOnlyPackages" ] && debOnlyPackages="$(xargs <<< $debOnlyPackages)" # trim début & fin
|
||||
[ "$debOnlyPresents" ] && debOnlyPresents="$(xargs <<< $debOnlyPresents)" # trim début & fin
|
||||
[ "$debOnlyPackages" ] && return 1
|
||||
|
@ -97,7 +94,8 @@ f__requis(){ # 22/09/2017
|
|||
if [ "$dependsMissing" ]; then
|
||||
if [ -e /etc/debian_version ]; then f__error "paquet(s) manquant(s): " " $dependsMissing" \
|
||||
" vous devriez exécuter:$GREEN apt install $packagesMissing"
|
||||
else f__error "commandes(s) manquante(s): " "$dependsMissing"; fi
|
||||
else f__error "commandes(s) manquante(s): " "$dependsMissing"; fi # -> exit
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -163,7 +161,7 @@ f__user(){ # 06/10/2017
|
|||
# si $2=print affiche url testée & entêtes http & location (si présente) et sortie normale fonction
|
||||
# si $2=loc affiche seulement location et sortie normale fonction
|
||||
# si $2=test return 0 si ok, return 1 si ko
|
||||
f__wget_test(){ # 08/10/2017
|
||||
f__wget_test(){ # 15/10/2017
|
||||
local file_test_wget retourWget retourHttp location
|
||||
file_test_wget="/tmp/testWget-$$-$RANDOM"
|
||||
wget -Sq --tries=1 --timeout=10 --user-agent="$user_agent" --spider --save-headers "$1" &>"$file_test_wget"
|
||||
|
@ -195,8 +193,7 @@ f__wget_test(){ # 08/10/2017
|
|||
fi
|
||||
if [ "$retourWget" ]; then
|
||||
rm "$file_test_wget"
|
||||
f__error "erreur wget, $retourWget" "$1" "$YELLOW$retourHttp" \
|
||||
"si persistance, contacter $projet $contact en indiquant les messages précédents"
|
||||
f__error "erreur wget, $retourWget" "$1" "$YELLOW$retourHttp"
|
||||
fi
|
||||
if [ "$(grep -c '200' <<< $retourHttp)" -ne 0 ]; then
|
||||
echo -e "$GREEN\ntout est ok, réessayer\n$STD"
|
||||
|
@ -229,16 +226,19 @@ EOF
|
|||
echo -e "$STD plus d'infos: $GREEN$urlNotice\n"
|
||||
}
|
||||
|
||||
# assigne $ip_local, $gateway, $gateway_type, $gateway_one, $ip_local, $ip_local_type
|
||||
# $ifnames, $ifnames_type, $mac_address, mac_address_type
|
||||
figet_ip(){ # 02/10/2017
|
||||
# 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(){ # 16/10/2017
|
||||
local ifn
|
||||
[ -z "$(which ip)" ] && return 1
|
||||
ip_local="$(sed '/lo.*inet/d; /inet6.*scope global/d' <<< "$(ip -o a)" | awk '{print " ",$4,"(",$2,")"}')"
|
||||
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)"
|
||||
gateway="$(LC_ALL=C ip -4 route | awk '/default via/ {print " ",$3,"(",$5,")"}'; LC_ALL=C ip -6 route | awk '/default via/ {print " ",$3,"(",$5,")"}')"
|
||||
gateway_type="$(sed -E 's/(^.*wl.*)/\1 (wifi)/;s/(^.*en.*|^.*eth.*)/\1 (ethernet)/' <<< $gateway)"
|
||||
gateway_one="$(awk 'FNR==1 {print " ",$1}' <<< $gateway)"
|
||||
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')"
|
||||
for ifn in $(ls /sys/class/net/) ; do
|
||||
[ "$ifn" != "lo" ] && ifnames+=" $ifn"$'\n'
|
||||
[ "$ifn" != "lo" ] && mac_address+=" $ifn: $(< /sys/class/net/$ifn/address)"$'\n'
|
||||
|
@ -247,6 +247,8 @@ figet_ip(){ # 02/10/2017
|
|||
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'
|
||||
}
|
||||
|
||||
# $1=4|6, assigne $ip_public
|
||||
|
|
|
@ -6,8 +6,16 @@
|
|||
* placé ln dans /usr/local/bin au lieu de /usr/bin ?
|
||||
* IP si ethernet non connecté, détecter et ne pas afficher cat /sys/class/net/enp3s0/carrier 0|1
|
||||
* adresses Mac
|
||||
* revoir figet_ip, gateway
|
||||
* éviter 169.254.10.12/16 ( enp3s0 ) (ethernet) si non branché
|
||||
|
||||
---
|
||||
|
||||
## 1.13.0 16/10/2017
|
||||
|
||||
* fix: figet_ip, erreur possible entre lo/certain ifn
|
||||
* mineur f__error f__info f__requis f__wget_test
|
||||
|
||||
## 1.12.0 11/10/2017
|
||||
|
||||
* fix f__sudo : fonctionnement avec sudo
|
||||
|
|
Loading…
Reference in New Issue