2012-04-29 21:16

[Linux] 檢查 SAMBA 與 NFS Server 是否存在

通常會透過 /etc/fstab 來處理掛載的設定,然後再使用 mount -a 來重新確認掛載,最好在排程的程序用到掛載目錄時也執行一次 mount -a,掛載目錄在斷線後是不會自動回復的,mount -a 的 Timeout 其實還蠻久的,尤其是 Server 不存在的時候,所以最好還是用對應的 client 先確認 server 是否存在。

而檢查 NFS 的 client 可以用 showmount 來處理,在 Ubuntu 上的安裝方式如下:
sudo aptitude install nfs-common

而 SAMBA 的 client 則是用 smbclient,在 Ubuntu 上的安裝方式如下:
sudo aptitude install smbclient


檢查 NFS Server 是否存在的流程

以 Shell 的方式檢查
  1. # 先以 client 確認 server 是否存在 
  2. /sbin/showmount 192.168.0.6 >/dev/null 2>&1 
  3. if [ "j$?" != "j0" ]; then   
  4.    echo "NFS Server is not exist" 
  5.    exit 1 
  6. fi 
  7.  
  8. # 重新確認掛載  
  9. mount -a >/dev/null 2>&1 
  10. if [ "j$?" != "j0" ]; then 
  11.    echo "NFS Server mount failed" 
  12.    exit 1; 
  13. fi 

以 PHP 的方式檢查
  1. /*先以 client 確認 server 是否存在*/  
  2. $state = shell_exec('/sbin/showmount 192.168.0.6 >/dev/null 2>&1; echo $?'); 
  3. if(trim($state)!='0'){ 
  4.    echo "NFS Server is not exist"; 
  5.    exit; 
  6. } 
  7.  
  8. /*重新確認掛載*/  
  9. if(shell_exec('mount -a 2>&1')){ 
  10.    echo "NFS Server mount failed" 
  11.    exit; 
  12. } 



檢查 SAMBA Server 是否存在的流程

以 Shell 的方式檢查
  1. # 先以 client 確認 server 是否存在 
  2. smbclient -NL //192.168.0.6 >/dev/null 2>&1 
  3. if [ "j$?" != "j0" ]; then   
  4.    echo "SAMBA Server is not exist" 
  5.    exit 1 
  6. fi 
  7.  
  8. # 重新確認掛載  
  9. mount -a >/dev/null 2>&1 
  10. if [ "j$?" != "j0" ]; then 
  11.    echo "SAMBA Server mount failed" 
  12.    exit 1; 
  13. fi 

以 PHP 的方式檢查
  1. /*先以 client 確認 server 是否存在*/  
  2. $state = shell_exec('smbclient -NL //192.168.0.6 >/dev/null 2>&1; echo $?'); 
  3. if(trim($state)!='0'){ 
  4.    echo "SAMBA Server is not exist"; 
  5.    exit; 
  6. } 
  7.  
  8. /*重新確認掛載*/  
  9. if(shell_exec('mount -a 2>&1')){ 
  10.    echo "SAMBA Server mount failed" 
  11.    exit; 
  12. } 

0 回應: