はじめに:
時々、NFSマウントがサーバーに接続されなくなったり、NFS接続に問題が発生したりした場合、コマンド「lsmountpoint」を実行するとCTRL-Cを押すまでターミナルがハングします。そこで、cronジョブとして実行され、NFSマウントが失敗したときに通知するスクリプトを見つけようとしました。スクリプト内で「statmountpoint&」という単純なコマンドを実行するとスクリプトもハングするため、非正統的なトリックに戻す必要がありました。そのため、コマンドを開始したスクリプトに対して独立してコマンドを実行する「現在」のコマンドを使用します。このようなスクリプトの例を次に示します。
#!/ bin / bash
#名前:MOUNT_CHECK.sh
#目的:引数で指定されたNFSマウントポイントの状態をチェックします
#at/statプロセスを強制終了して終了しますタイムアウトの期限が切れている場合は、終了コード2を使用します。
#---------------------------------- ---------------------------------
startdelay =3
timeout =10
#psで除外されるプロセス| grepのテスト
excludes="openvpn | istatd | rpc.statd"
if [$#-ne 1];次に
echo"エラー:引数としてマウントポイントが必要です"
echo "使用法: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];次に
kill$(pidof stat)
#echo"マウントポイント$1:$timeout秒のタイムアウト前に接続に失敗しました。"
exit 2
fi
done コード>