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 相关文章推荐
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
php+mysqli使用预处理技术进行数据库查询的方法
Jan 28 PHP
php实现的RSS生成类实例
Apr 23 PHP
PHP实现163邮箱自动发送邮件
Mar 29 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP时间戳和日期相互转换操作实例小结
Dec 18 PHP
php 输出缓冲 Output Control用法实例详解
Mar 03 PHP
PHP实现本地图片转base64格式并上传
May 29 PHP
PHP 实现缩略图
Mar 09 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新手上路(十)
2006/10/09 PHP
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
PHP图片加水印实现方法
2016/05/06 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
AngularJS单选框及多选框实现双向动态绑定
2016/01/13 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
解读Python中degrees()方法的使用
2015/05/18 Python
Python学生信息管理系统修改版
2018/03/13 Python
浅谈django orm 优化
2018/08/18 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
解决django FileFIELD的编码问题
2020/03/30 Python
如何用Anaconda搭建虚拟环境并创建Django项目
2020/08/02 Python
Django实现简单的分页功能
2021/02/22 Python
工作中个人的自我评价
2013/12/31 职场文书
出国考察邀请函
2014/01/21 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
创业计划书之水果店
2019/07/18 职场文书
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB