判斷NFS是否連線的sh
>> 2011年11月8日 星期二
NFS用在資料的備份是相當的方便,但是隱藏著一個危機:
當server端沒有開啟或是無法順利掛載時,
若是將NFS掛載寫在/etc/fstab中,則會造成無法順利開機。
若是將NFS掛載寫在備份執行的shell中,
則會讓備份檔案備份在本機,(NFS需要掛載在本機的一個目錄中)
這樣的結果,輕則造成硬碟空間被佔據,嚴重的話,則會因為分割區爆滿而整台server掛點。
避免這樣的問題其實很簡單,加個幾行的判斷式,就可以避免這樣的危機。
這個判斷式的原理很簡單,我用df加上管線指令去判斷目前的磁碟中是否存在指定的主機所掛載的磁碟。如果有,就繼續進行其他的動作,如果沒有,則終止整個sh,並傳出一個錯誤代碼1。
我把這一段判斷式寫成一個sh檔案,判斷完成後的剩餘工作,就由使用者自行去填寫囉!
因應linux與FreeBSD所使用的shell不一樣,在一開使的使用shell宣告上有些許不同,因此我針對不同的OS,寫了不同的sh,其實,差異只在於一開始的宣告而已。
test NFS link:
#!/bin/bashsh檔案for LINUX:下載
# Program:
# This program for test is nfs link?
# History:
# 2011/11/06 Yixin Chen(cat) 0.1 release
# 2011/11/07 Yixin Chen(cat) 0.1.1 release
# 2011/11/08 Yixin Chen(cat) 0.1.2 release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# setting var
nfsip="172.17.1.241"
# -----------------------
flag=$(df |grep ${nfsip})
if [ "$flag" == "" ]; then
echo "NFS is NOT link!"
exit 1
fi
echo "NFS is link!"
# other active ....
exit
sh檔案for FreeBSD:下載
其他有關於NFS的掛載資訊,請參閱:
雄的 FreeBSD 筆記‧NFS (Network File System)
鳥哥的 Linux 私房菜第十三章、檔案伺服器之一:NFS 伺服器