#!/usr/bin/bash # # Send stdout of some commands to monitoring server. # Collect the reports with 'nc -u -k -l 1234' on 'sendto'. # Use /bin/nc.openbsd, /bin/nc.traditional seems not to work. # set -eu sendto="collector.steinbeis.schule 1234" n=0 cmds=( 'uname -a' 'tail -1 /home/ansible/.ansible/stamps' 'ip route list default' 'ip link show | \ sed -nE -e "s/^[2-9]: (\S+): .+/\1/p" -e "s/.+ether ([0-9a-f:]+) .+/\1/p" | \ paste -d " " - -' ) # 'w' # 'uptime' # 'ls -d --full-time /home/ansible/.ansible/tmp/' # 'ip addr show' # 'apt list --upgradeable -o Apt::Cmd::Disable-Script-Warning=true' r="$HOSTNAME ------- $(date --rfc-3339=seconds) ------- $(for c in "${cmds[@]}" ; do n=$(( n + 1 )) echo -n "$n" eval "$c" | sed 's/^/\t/' done | sed "s/^/$HOSTNAME /") ## -------------------------------------------------" echo "$r" | nc -w 1 -u $sendto