PHP和Shell实现检查SAMBA与NFS Server是否存在
通常会通过/etc/fstab来处理挂载的设置,然后再使用mount-a来重新确认挂载,最好在排程的程序用到挂载目录时也执行一次mount-a,挂载目录在断线后是不会自动回复的,mount-a的Timeout其实还蛮久的,尤其是Server不存在的时候,所以最好还是用对应的client先确认server是否存在。
而检查NFS的client可以用showmount来处理,在Ubuntu上的安装方式如下:
sudoaptitudeinstallnfs-common
而SAMBA的client则是用smbclient,在Ubuntu上的安装方式如下:
sudoaptitudeinstallsmbclient
检查NFSServer是否存在的流程
以Shell的方式检查
#先以client确认server是否存在 /sbin/showmount192.168.0.6>/dev/null2>&1 if["j$?"!="j0"];then echo"NFSServerisnotexist" exit1 fi #重新确认挂载 mount-a>/dev/null2>&1 if["j$?"!="j0"];then echo"NFSServermountfailed" exit1; fi
以PHP的方式检查
/*先以client确认server是否存在*/ $state=shell_exec('/sbin/showmount192.168.0.6>/dev/null2>&1;echo$?'); if(trim($state)!='0'){ echo"NFSServerisnotexist"; exit; } /*重新确认挂载*/ if(shell_exec('mount-a2>&1')){ echo"NFSServermountfailed" exit; }
检查SAMBAServer是否存在的流程
以Shell的方式检查
#先以client确认server是否存在 smbclient-NL//192.168.0.6>/dev/null2>&1 if["j$?"!="j0"];then echo"SAMBAServerisnotexist" exit1 fi #重新确认挂载 mount-a>/dev/null2>&1 if["j$?"!="j0"];then echo"SAMBAServermountfailed" exit1; fi
以PHP的方式检查
/*先以client确认server是否存在*/ $state=shell_exec('smbclient-NL//192.168.0.6>/dev/null2>&1;echo$?'); if(trim($state)!='0'){ echo"SAMBAServerisnotexist"; exit; } /*重新确认挂载*/ if(shell_exec('mount-a2>&1')){ echo"SAMBAServermountfailed" exit; }