#!/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="{{ misc_reporter_serv }} 1234"
n=0

cmds=(
    'uname -a'
    'tail -1 /var/local/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 - -'
    'systemctl --failed | grep -v "^$"'
)
#    '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
