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 相关文章推荐
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
利用php绘制饼状图的实现代码
Jun 07 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
PHP微信开发之有道翻译
Jun 23 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 PHP
php实现微信扫码支付
Mar 26 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
Oct 24 PHP
php post json参数的传递和接收处理方法
May 31 PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 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.MVC的模板标签系统(四)
2006/09/05 PHP
PHP入门学习的几个不错的实例代码
2008/07/13 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
php实现读取内存顺序号
2015/03/29 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
php微信公众号开发模式详解
2016/11/28 PHP
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
js倒计时显示实例
2016/12/11 Javascript
Bootstrap表单控件使用方法详解
2017/01/11 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
Python中使用dom模块生成XML文件示例
2015/04/05 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
python实现简单日期工具类
2019/04/24 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
PyTorch预训练Bert模型的示例
2020/11/17 Python
小学新教师培训方案
2014/02/03 职场文书
企业承诺书格式
2014/05/21 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
布达拉宫的导游词
2015/02/02 职场文书
经理聘任证明
2015/03/02 职场文书
2015年网管个人工作总结
2015/05/22 职场文书
观后感的写法
2015/06/19 职场文书
2019入党申请书格式
2019/06/25 职场文书
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL