File: /usr/local/bin/sysinfo.sh
#!/bin/sh
LOAD=`sysctl vm.loadavg 2>/dev/null`
[ -z "$LOAD" ] && LOAD=`cat /proc/loadavg 2>/dev/null`
LOAD=`echo "$LOAD" 2>/dev/null | sed 's/^[^0-9]*// ; s/ .*// ; s/,/\./' 2>/dev/null`
[ -z "$LOAD" ] && LOAD='na'
SWAP=`swapinfo -h 2>/dev/null | sed '1d ; s/.* // ; s/%/.00/' 2>/dev/null`
[ -z "$SWAP" ] && SWAP=`cat /proc/swaps 2>/dev/null | sed '1d' 2>/dev/null | awk '{printf "%.2f", $4 / $3 * 100}' 2>/dev/null | tr ',' '.' 2>/dev/null`
[ -z "$SWAP" ] && SWAP='na'
MEM=`sysctl vm.stats.vm.v_inactive_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count hw.pagesize hw.physmem 2>/dev/null | tr '\n' ' ' 2>/dev/null | awk '{printf "%.2f", 100 - ($2 + $4 + $6) *$8 / $10 *100}' 2>/dev/null | tr ',' '.' 2>/dev/null`
[ -z "$MEM" ] && MEM=`cat /proc/meminfo 2>/dev/null | sed '/^memtotal\|memfree/I!d' 2>/dev/null | sort 2>/dev/null | sed 's/^[^0-9]*// ; s/[^0-9]*$//' 2>/dev/null | tr '\n' ' ' 2>/dev/null | awk '{printf "%.2f", 100 - $1 / $2 *100}' 2>/dev/null | tr ',' '.' 2>/dev/null`
[ -z "$MEM" ] && MEM='na'
DISK=`df -h 2>/dev/null | sed '/% *\/$/!d ; s/% *\/$/.00/ ; s/^.* //' 2>/dev/null`
[ -z "$DISK" ] && DISK=`/usr/sbin/quotastats 2>/dev/null | sed '/Max\/available/!d ; s/^[^0-9]*// ; s/K[^0-9]*/ /g' 2>/dev/null | awk '{printf "%.2f", 100 - $2 / $1 *100}' 2>/dev/null | tr ',' '.' 2>/dev/null`
[ -z "$DISK" ] && DISK='na'
MAILQ=`mailq 2>/dev/null | tail -n 1 2>/dev/null | sed 's/^[^0-9]*//' 2>/dev/null`
[ -z "$MAILQ" ] && MAILQ='na'
CLIENTMAILQ=`mailq -Ac 2>/dev/null | tail -n 1 2>/dev/null | sed 's/^[^0-9]*//' 2>/dev/null`
[ -z "$CLIENTMAILQ" ] && CIENTMAILQ='na'
echo "LOAD:$LOAD; SWAP:$SWAP; MEM:$MEM; DISK:$DISK; MAILQ:$MAILQ; CLIENTMAILQ:$CLIENTMAILQ"