#! /bin/sh ### ### Run everyday health checks on remote systems. set -e cd /usr/local/share/rcheck for host in "$@"; do { { { set +e tar czf - check check.d | ssh "$host" ' set -e cd /tmp i=0 while :; do tmpdir=check.$$.$i if mkdir -m700 $tmpdir >/dev/null 2>&1; then break; fi case $i in 500) echo >&2 "failed to create temporary directory"; exit 125 ;; esac i=$((i + 1)) done trap "cd /; rm -rf /tmp/$tmpdir" INT TERM QUIT HUP EXIT cd $tmpdir tar xzf - ./check' rc=$?; set -e case $rc in 0) ;; *) echo >&2 "remote check process failed (rc = $rc)" ;; esac } 1>&3; } 2>&1 | sed 's/^/!!! /' } 3>&1 | if read line; then cat <