#!/bin/bash STATE_OK=0;STATE_WARNING=1;STATE_CRITICAL=2;STATE_UNKNOWN=3 usage() { cat << EOF Usage: $0 remotehost filename This script checks differecies of local and remote files EOF } if [[ -z "$1" ]]; then usage; exit $STATE_UNKNOWN; else serv="$1"; fi if [[ -z "$2" ]]; then usage; exit $STATE_UNKNOWN; else fname="$2"; fi difs="" ndifs=0 for f in $fname do dif="$(ssh "$serv" "cat $f"|diff - $f)" if [[ $? -ne 0 ]]; then. ndifs=$(($ndifs + 1 )) difs="$difs$(echo $f):$dif" fi done if [[ $ndifs -eq 0 ]] then echo "OK: File $fname. Local and on host $serv has no differencies"; exit $STATE_OK else echo "CRITICAL: File $fname. Local and on host $serv has differencies"; echo "$difs"; exit $STATE_CRITICAL fi