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
在PHP3中实现SESSION的功能(三)
Oct 09 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
Dec 16 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
php实现多城市切换特效
Aug 09 PHP
php使用正则验证中文
Apr 06 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
PHP进阶学习之Geo的地图定位算法详解
Jun 19 PHP
浅析PHP7 的垃圾回收机制
Sep 06 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 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
php4的彩蛋
2006/10/09 PHP
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
Django 中 cookie的使用
2017/08/17 PHP
laravel框架关于搜索功能的实现
2018/03/15 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
php中关于换行的实例写法
2019/09/26 PHP
Prototype Template对象 学习
2009/07/19 Javascript
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
[15:28]DOTA2 HEROS教学视频教你分分钟做大人-剧毒术士
2014/06/13 DOTA
python实现在pickling的时候压缩的方法
2014/09/25 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
全球性的在线商店:Vogca
2019/05/10 全球购物
自荐信格式的六要素
2013/09/21 职场文书
心得体会范文
2014/01/04 职场文书
银行办理业务介绍信
2014/01/18 职场文书
优秀共产党员先进事迹
2014/01/27 职场文书
大学生作弊检讨书
2014/09/11 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
Django操作cookie的实现
2021/05/26 Python
详解jQuery的核心函数和事件处理
2022/02/18 jQuery