From ff983da1762ddd5a7ccad043faaeac19099ed565 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Tue, 12 Dec 2017 01:42:49 +0000 Subject: [PATCH] etc/profile.d/sys.sh --- etc/profile.d/nb.sh | 13 +++- etc/profile.d/sys.sh | 146 ++++++++++++++++++++++++++----------------- 2 files changed, 98 insertions(+), 61 deletions(-) diff --git a/etc/profile.d/nb.sh b/etc/profile.d/nb.sh index 0cefa902..c1e5883b 100644 --- a/etc/profile.d/nb.sh +++ b/etc/profile.d/nb.sh @@ -79,11 +79,18 @@ nb_api_insert() { local host=$(hostname) [ -z "$host" ] && host=$(hostname -f) - local curl="curl -u nb:0TXARcQUpjHZctoROA2X.weWSZKM5DGT -H 'Accept: text/json' https://api.nbdom.net/data/$table/insert" + local curl="curl -su nb:0TXARcQUpjHZctoROA2X.weWSZKM5DGT -H 'Accept: text/json' https://api.nbdom.net/data/$table/insert -d host=$host" while [ "$#" -gt "0" ]; do - curl+=" -d $1" + curl+=" -d "$1"" shift done - eval "$curl" + eval "$curl | tr -d '\n'" && echo } + +nb_api_insert_sys_infos() { + sys_infos | while IFS=$'\t' read -r -a i; do + eval "nb_api_insert host_info \"key=${i[0]}\" \"val=${i[1]}\"" + done +} + diff --git a/etc/profile.d/sys.sh b/etc/profile.d/sys.sh index 6f83c21c..5c3d114a 100644 --- a/etc/profile.d/sys.sh +++ b/etc/profile.d/sys.sh @@ -3,74 +3,104 @@ # NB 10.12.16 #*) return ;; # NB 10.12.16 esac -sys_is_vm() { - grep -q ^flags.*\ hypervisor /proc/cpuinfo && echo "This machine is a VM" +sys_infos() { + local n='>/dev/null 2>&1' + local s=$'\t' + cat </dev/null ) +nproc${s}$( (sysctl -n hw.ncpu || nproc || grep ^proc /proc/cpuinfo | wc -l) 2>/dev/null ) +date_install $( (date -r $(ls -1d /lost+found /etc/ssh/ssh_host_dsa_key.pub /etc/ssh_host_dsa_key.pub|head -1) +'%F %T') 2>/dev/null ) +EOF } -sys_logs() { - true +sys_df() { + df -P -l | tail -n +2 | while read -r -a i; do + mount=${i[0]} + [ -e "$mount" ] || continue + used=${i[2]} + free=${i[3]} + pcent=${i[4]} + pcent=${pcent//%/} + dir=${i[5]} + +# NB 12.12.17 inodes=($(df -P -l "$dir" | tail -n +2)) +# NB 12.12.17 iused=${inodes[2]} +# NB 12.12.17 ifree=${inodes[3]} +# NB 12.12.17 ipcent=${inodes[4]} +# NB 12.12.17 ipcent=${pcent//%/} +# NB 12.12.17 idir=${inodes[5]} + + echo -e "$dir\t$pcent\t$used\t$free" + #echo -e "$dir\tused\t$used" + #echo -e "$dir\tfree\t$free" + #echo -e "$dir\tpcent\t$pcent" + done +} + +sys_is_vm() { + grep -q '^flags.* hypervisor' /proc/cpuinfo && echo "This machine is a VM" } sys_activity() { - local tmp=/tmp/ - [ -d /dev/shm/ ] && tmp=/dev/shm/ - tmp="$tmp/$FUNCNAME.$$" - netstat -autpn > $tmp.netstat - w|head -1|sed 's/^ *//' - - case "$OSTYPE" in - linux*) - echo 'IO:' - #iostat -c -m -d -x `df -hT -x tmpfs|perl -ane 'm:^/: and print $F[0]."\n"'` | tail -n +3 | grep -vFx ''| sed 's/^/ /' - iostat -c -m -d -x | tail -n +3 | grep -vFx ''| sed 's/^/ /' - echo - ;; - esac - - echo 'Mem:' - free -hm | sed 's/^/ /' - echo - - echo 'Top ips conns:' - cat "$tmp.netstat" \ - | tail -n +2 \ - | awk '$5~/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{gsub(/:.*/,"",$5);print $5}' \ - | sort \ - | uniq -c \ - | sed 's/^ *//' \ - | sort -nr -k 1 \ - | head \ - | awk '{ i++; sub(/^([0-9]+) +(.*?)$/,sprintf("%-15s %5d",$2,$1),$0); if (i % 2 == 0){ print $0 } else{ printf " "$0" | "} } END {if (i%2 != 0){print}}' \ - ; - echo - - echo 'dmesg:' - ( dmesg -T 2>/dev/null || dmesg ) | tail -4 | sed 's/^/ /' - echo - - if [ -e /var/log/auth.log ]; then - echo '/var/log/auth.log:' - tail -2 /var/log/auth.log | sed 's/^/ /' - echo - fi - - if [ -e /var/log/system.log ]; then - echo 'system:' - tail -5 /var/log/system.log | sed 's/^/ /' - echo - fi - - rm -rf "$tmp"* + local tmp=/tmp/ + [ -d /dev/shm/ ] && tmp=/dev/shm/ + tmp="$tmp/$FUNCNAME.$$" + netstat -autpn > $tmp.netstat + w|head -1|sed 's/^ *//' + + case "$OSTYPE" in + linux*) + echo 'IO:' + #iostat -c -m -d -x `df -hT -x tmpfs|perl -ane 'm:^/: and print $F[0]."\n"'` | tail -n +3 | grep -vFx ''| sed 's/^/ /' + iostat -c -m -d -x | tail -n +3 | grep -vFx ''| sed 's/^/ /' + echo + ;; + esac + + echo 'Mem:' + free -hm | sed 's/^/ /' + echo + + echo 'Top ips conns:' + cat "$tmp.netstat" \ + | tail -n +2 \ + | awk '$5~/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{gsub(/:.*/,"",$5);print $5}' \ + | sort \ + | uniq -c \ + | sed 's/^ *//' \ + | sort -nr -k 1 \ + | head \ + | awk '{ i++; sub(/^([0-9]+) +(.*?)$/,sprintf("%-15s %5d",$2,$1),$0); if (i % 2 == 0){ print $0 } else{ printf " "$0" | "} } END {if (i%2 != 0){print}}' \ + ; + echo + + echo 'dmesg:' + ( dmesg -T 2>/dev/null || dmesg ) | tail -4 | sed 's/^/ /' + echo + + if [ -e /var/log/auth.log ]; then + echo '/var/log/auth.log:' + tail -2 /var/log/auth.log | sed 's/^/ /' + echo + fi + + if [ -e /var/log/system.log ]; then + echo 'system:' + tail -5 /var/log/system.log | sed 's/^/ /' + echo + fi + + rm -rf "$tmp"* } sys_watch() { - local opt="$@" - [ -z "$opt" ] && opt="-d" + local opt="$@" + [ -z "$opt" ] && opt="-d" - shopt -s expand_aliases; - export -f $(typeset -f | awk '/^[a-z]+[a-zA-Z0-9_]+ \(\)/{print $1}') - watch --no-title $opt sys_activity + shopt -s expand_aliases; + export -f $(typeset -f | awk '/^[a-z]+[a-zA-Z0-9_]+ \(\)/{print $1}') + watch --no-title $opt sys_activity # NB 08.08.17 export -f sys_activity # NB 08.08.17 watch --no-title $opt bash -c "sys_activity" } -- 2.47.3