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 相关文章推荐
discuz Passport 通行证 整合笔记
Jun 30 PHP
PHP ignore_user_abort函数详细介绍和使用实例
Jul 15 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
Feb 15 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
smarty中常用方法实例总结
Aug 07 PHP
WordPress网站性能优化指南
Nov 18 PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
Laravel框架实现利用监听器进行sql语句记录功能
Jun 06 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 PHP
php常用的工具开发整理
Sep 26 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
PHP 中执行系统外部命令
2006/10/09 PHP
精通php的十大要点(上)
2009/02/04 PHP
解析linux下安装memcacheq(mcq)全过程笔记
2013/06/27 PHP
PHP中使用正则表达式提取中文实现笔记
2015/01/20 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
Python面向对象之类的封装操作示例
2019/06/08 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
阿里云ECS服务器部署django的方法
2019/08/29 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
python实现计算器简易版
2020/12/17 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
一套带答案的C++笔试题
2014/01/10 面试题
银行实习人员自我鉴定
2013/09/22 职场文书
建筑施工安全责任书
2014/07/24 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
幼师大班个人总结
2015/02/13 职场文书
大学组织委员竞选稿
2015/11/21 职场文书
2019教师的学习计划
2019/06/25 职场文书
防止web项目中的SQL注入
2021/12/06 MySQL
Python 绘制多因子柱状图
2022/05/11 Python