Pendahuluan:
Sesekali jika NFS mount tidak lagi terhubung ke server atau ada yang salah dengan koneksi NFS, menjalankan perintah 'ls mountpoint' akan membuat terminal hang sampai saya menekan CTRL-C. Jadi saya mencoba mencari tahu skrip yang akan dijalankan sebagai tugas cron dan akan memberi tahu saya ketika pemasangan NFS salah. Saya harus kembali ke trik yang tidak lazim karena melakukan perintah sederhana 'stat mountpoint &' di dalam skrip juga akan menggantung skrip. Jadi saya menggunakan perintah 'saat ini' yang menjalankan perintah secara independen untuk skrip yang memulainya. Berikut adalah contoh skrip tersebut.
#!/bin/bash
# Name: MOUNT_CHECK.sh
# Purpose: Checks the health of the NFS mountpoint given by argument
# it kills the at/stat process and exits with an exit code 2 if the timeout has expired.
#-------------------------------------------------------------------
startdelay=3
timeout=10
# processes to be excluded in the 'ps | grep' test
excludes="openvpn|istatd|rpc.statd"
if [ $# -ne 1 ]; then
echo "ERROR: Needs mountpoint as argument"
echo "Usage: MOUNT_CHECK.sh MountPoint"
exit 2
fi
#
echo "/usr/bin/stat $1" | /usr/bin/at now
sleep $startdelay
while (ps ax | egrep -v "grep|$excludes" | grep -q stat); do
let count=${count}+1
sleep 1
if [ $count -ge $timeout ]; then
kill $(pidof stat)
#echo "Mountpoint $1 : FAILED to connect before timeout of $timeout sec."
exit 2
fi
done