PHP和Shell实现检查SAMBA与NFS Server是否存在


Posted in PHP onJanuary 07, 2015

通常会通过 /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 的方式检查
# 先以 client 确认 server 是否存在    

/sbin/showmount 192.168.0.6 >/dev/null 2>&1    

if [ "j$?" != "j0" ]; then      

   echo "NFS Server is not exist"    

   exit 1    

fi    

    

# 重新确认挂载     

mount -a >/dev/null 2>&1    

if [ "j$?" != "j0" ]; then    

   echo "NFS Server mount failed"    

   exit 1;    

fi   

以 PHP 的方式检查
/*先以 client 确认 server 是否存在*/     

$state = shell_exec('/sbin/showmount 192.168.0.6 >/dev/null 2>&1; echo $?');    

if(trim($state)!='0'){    

   echo "NFS Server is not exist";    

   exit;    

}    

    

/*重新确认挂载*/     

if(shell_exec('mount -a 2>&1')){    

   echo "NFS Server mount failed"    

   exit;    

}   

检查 SAMBA Server 是否存在的流程

以 Shell 的方式检查

# 先以 client 确认 server 是否存在    

smbclient -NL //192.168.0.6 >/dev/null 2>&1    

if [ "j$?" != "j0" ]; then      

   echo "SAMBA Server is not exist"    

   exit 1    

fi    

    

# 重新确认挂载     

mount -a >/dev/null 2>&1    

if [ "j$?" != "j0" ]; then    

   echo "SAMBA Server mount failed"    

   exit 1;    

fi   

以 PHP 的方式检查
/*先以 client 确认 server 是否存在*/     

$state = shell_exec('smbclient -NL //192.168.0.6 >/dev/null 2>&1; echo $?');    

if(trim($state)!='0'){    

   echo "SAMBA Server is not exist";    

   exit;    

}    

    

/*重新确认挂载*/     

if(shell_exec('mount -a 2>&1')){    

   echo "SAMBA Server mount failed"    

   exit;    

}  
PHP 相关文章推荐
福利彩票幸运号码自动生成器
Oct 09 PHP
基于mysql的bbs设计(五)
Oct 09 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
php实现的双向队列类实例
Sep 24 PHP
php导出CSV抽象类实例
Sep 24 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
Nov 05 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
[原创]PHP简单开启curl的方法(测试可行)
Jan 11 PHP
Zend Framework教程之资源(Resources)用法实例详解
Mar 14 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
PHP实现的简易版图片相似度比较
Jan 07 #PHP
PHP中使用SimpleXML检查XML文件结构实例
Jan 07 #PHP
php中$_POST与php://input的区别实例分析
Jan 07 #PHP
php静态文件返回304技巧分享
Jan 06 #PHP
php判断当前用户已在别处登录的方法
Jan 06 #PHP
php实现utf-8转unicode函数分享
Jan 06 #PHP
windows中为php安装mongodb与memcache
Jan 06 #PHP
You might like
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
PHP中echo和print的区别
2014/08/28 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
php 可变函数使用小结
2018/06/12 PHP
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
2016/05/17 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
HTML5新标签兼容——> 的两种方法
2018/09/12 HTML / CSS
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
英国家用电器购物网站:Hughes
2018/02/23 全球购物
实习老师个人总结的自我评价
2013/09/28 职场文书
专科毕业生学习生活的自我评价
2013/10/26 职场文书
社会实践自我鉴定
2013/11/07 职场文书
妇产医师自荐信
2014/01/29 职场文书
运动会通讯稿500字
2014/02/20 职场文书
2014年学生会工作总结
2014/11/07 职场文书
2015年班组工作总结
2015/04/20 职场文书
涨价通知怎么写
2015/04/23 职场文书