sshfs-check.sh

#!/bin/sh

HOST="fubar.localhost";
REMOTEPOINT="/home/$USER";
MOUNTPOINT="/home/$USER/remote";
TIMEOUT=5;

echo -n "Mounting $HOST:$REMOTEPOINT => $MOUNTPOINT ";

if sshfs $HOST:$REMOTEPOINT $MOUNTPOINT 2>/dev/null; then
    echo "[OK]"
else
    echo "[Failed]"
    exit 255;
fi

while sleep 10; do
    ls $MOUNTPOINT &
    LS=$!;

    sleep $TIMEOUT;

    if kill $LS 2>/dev/null; then
        echo "Seems like remote host has timed out!";
        echo "Remounting $HOST:$REMOTEPOINT => $MOUNTPOINT";
        sshfs $HOST:$REMOTEPOINT $MOUNTPOINT -o reconnect;
    fi
done

exit 0;