From: Nicolas Boisselier Date: Fri, 17 May 2019 04:23:15 +0000 (+0100) Subject: etc/profile.d/sys.sh X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=0db4fdd062445ccab3a54409d409ce6e2e773f2f;p=nb.git etc/profile.d/sys.sh --- diff --git a/etc/profile.d/nb.sh b/etc/profile.d/nb.sh index 71f0564e..a99fcf9a 100644 --- a/etc/profile.d/nb.sh +++ b/etc/profile.d/nb.sh @@ -124,13 +124,16 @@ nb_api_post_host_info() { nb_api_post_hosts_infos() { ( - sys_infos - sys_interfaces | awk 'BEGIN{preff="int."} {print preff""$1".mac\t"$2} $3!="" {print preff""$1".ip\t"$3;}' +# NB 17.05.19 sys_infos + sys_infos arch nproc ips interfaces os date_install mem_total mem_used public_ip + sys_interfaces_all | awk 'BEGIN{preff="int."} {print preff""$1".mac\t"$2} $3!="" {print preff""$1".ip\t"$3;}' + which lshw > /dev/null && lshw -quiet -class system 2>/dev/null \ | awk '/^ /{sub("^ *","",$0); sub(": ","\t",$0); print $0}' \ ; + ) | while read -ra i; do echo "sys.${i[0]}" "${i[*]:1}" - nb_api_post_host_info "sys.${i[0]}" "${i[*]:1}" > /dev/null + [ "$1" != "-test" ] && nb_api_post_host_info "sys.${i[0]}" "${i[*]:1}" > /dev/null done } diff --git a/etc/profile.d/sys.sh b/etc/profile.d/sys.sh index 15f770ad..8c846b62 100644 --- a/etc/profile.d/sys.sh +++ b/etc/profile.d/sys.sh @@ -3,6 +3,31 @@ # NB 10.12.16 #*) return ;; # NB 10.12.16 esac +sys_infos() { + local infos=${@:-arch nproc ips interfaces model os date_install mem_used public_ip} + #echo "$infos"; + local k v + for k in $infos; do + v="$(sys_$k)" + [ -z "$v" ] && continue + printf '%s\t%s\n' "$k" "${v//$'\n'/ }" + done + return + local s="$(printf '\t')" + echo "\ +arch${s}"$(sys_arch)" +nproc${s}"$(sys_nproc)" +ips${s}"$(ips)" +interfaces${s}"$(sys_interfaces)" +model${s}"$(sys_model)" +os${s}"$(sys_os)" +date_install${s}"$(sys_date_install)" +mem_total${s}"$(sys_mem_total)" +mem_used${s}"$(sys_mem_used)" +public_ip${s}"$(sys_public_ip)" +" | grep -vE "^[^${s}]+${s}$" +} + sys_watch() { local opt="$@" [ -z "$opt" ] && opt="-d" @@ -25,26 +50,14 @@ sys_model() { if [ -e /proc/device-tree/model ]; then tr -d '\000' < /proc/device-tree/model elif which lshw > /dev/null; then - lshw -quiet -class system | awk -F': ' '/product: /{print $2}' + lshw -quiet -class system 2>/dev/null | awk -F': ' '/product: /{print $2}' fi ;; esac } -sys_infos() { - local s="$(printf '\t')" - grep -vE "^[^${s}]+${s}$" << EOF -arch${s}$(sys_arch) -nproc${s}$(sys_nproc) -ips${s}$(echo -n $(ips 2>/dev/null)) -interfaces${s}$(echo -n $(sys_interfaces|cut -f1)) -model${s}$(sys_model) -os${s}$(sys_os) -date_install${s}$(sys_date_install) -mem_total${s}$(sys_mem_total) -mem_used${s}$(sys_mem_used) -public_ip${s}$( (http_get http://nicolas.boisselier.free.fr/myip/) 2>/dev/null) -EOF +sys_public_ip() { + myip 2>/dev/null } sys_date_install() { @@ -181,6 +194,10 @@ sys_mem_used() { #sys_mem_free() { echo $((`sys_mem_total` - `sys_mem_used`)); } sys_interfaces() { + sys_interfaces_all | cut -f1 +} + +sys_interfaces_all() { ( if which ip > /dev/null; then ip link | awk -F'(: )|@' '/^[^ ]/{print $2}' @@ -196,24 +213,15 @@ sys_interfaces() { mac=$(echo "$infos" | awk '/ether ([^ ]+)/{print $2}') [ -z "$mac" ] && continue - ip=$(echo "$infos" | awk '/^[\t ]*inet /{sub("^[^0-9]*","",$2); sub("/[0-9]+","",$2); {print $2}}') + ip=$(echo "$infos" | awk '/^[\t ]*inet /{sub("^[^0-9]*","",$2); sub("/[0-9]+","",$2); {print $2; exit; printf $2" "}}') printf '%s\t%s\t%s\n' "$int" "$mac" "$ip" done } -# NB 09.04.19 sys_interfaces() { -# NB 09.04.19 ( -# NB 09.04.19 if which ip > /dev/null; then -# NB 09.04.19 ip link | awk -F'(: )|@' '/^[^ ]/{print $2}' -# NB 09.04.19 -# NB 09.04.19 elif which ifconfig > /dev/null; then -# NB 09.04.19 #ifconfig | awk '/^[^ ]/{print $1}' -# NB 09.04.19 ifconfig | awk '/^[a-z][^:]+: flags=[0-9]+<[A-Z]+,BROADCAST/{sub(":$","",$1);print $1}' -# NB 09.04.19 -# NB 09.04.19 fi -# NB 09.04.19 ) | awk '!x[$0]++ && $1 !~ /^(lo)$/ {print}' -# NB 09.04.19 } +sys_ips() { + ips 2>/dev/null +} ips() { shell_help "Usage: $FUNCNAME [INTERFACE]. Print ip adresses." "$@" && return 1