PHP和Shell达成检查SAMBA与NFS Server是不是留存

作者:ca88编程

复制代码 代码如下:

1 概述

透过NFS搭建分享盘,方便分享资料

本次使用,服务器ip的地点是192.168.32.11。须要分享的目录是/sharedisk

2 服务器端

2.1 安装软件

劳务器端安装软件包,有七个包

yum -y install nfs-utils rpcbind

2.2. 开启服务

service nfs start

service rpcbind start

瞩目: 后续要重启服务来讲,重启顺序提议是

service rpcbind restart

service nfs restart

如果 [root@localhost /]#showmount -e 192.168.32.11

出现报错  clnt_create: RPC: Program not registered    这些报错是出于重启顺序导致的

依据以下顺序重启

/etc/init.d/rpcbind stop

/etc/init.d/nfs stop

/etc/init.d/rpcbind start

/etc/init.d/nfs start

测试  showmount -e 192.168.32.113

安排vim /etc/exports/etc/exports 服务器端的安排那一个文件私下认可是空文件,写入以下的语句

/sharedisk 192.168.32.0/24(rw,no_root_squash,insecure,sync)

留心这里的192.168.32.0/24钦点是允许哪些机器来挂载,这里若无一点点名相应的ip,客户端挂载的时候,会晤世服务器端拒绝的报错

2.3  配置生效

exportfs -r

2.4 检查

输入指令

showmount  -e

结果如下,看到允许挂载的机器列表

Export list for localhost.localdomain:

/sharedisk 172.16.0.0/16,192.168.32.0/24

2.5 分享文件夹的权杖设置

提出操作,把分享盘的权能设置为777.让其余机器可以专断访问该盘。当然,这一个要依靠真实意况分配权限

chmod 777 /sharedisk

2.6 查看所用到的端口

rpcinfo -p

充足同意端口到iptables或关闭iptables

比如那台服务器不揭发在公网时或只可以通过内网IP访谈时如此做,不然不建议那样做。依照实际景况而定

iptables -A INPUT -p tcp --dport 111 -j ACCEPT

iptables -A INPUT -p udp --dport 111 -j ACCEPT

2.7 服务器端设置开机运转nfs盘

echo " /dev/sdb1/            /sharedisk              ext4      defaults      0 0">>/etc/fstab

3 客户端

3.1 安装软件

客户端要设置nfs-utils

yum install nfs-utils

如果未有设置,挂载的时候会产出如下的报错

[root@localhost sharedisk]# mount -amount: wrong fs type, bad option, bad superblock on 192.168.32.11:/sharedisk,      missing codepage or helper program, or other error      (for several filesystems (e.g. nfs, cifs) you might      need a /sbin/mount.helper program)

In some cases useful info is found in syslog - try dmesg | tail or so.

3.2 检查服务端分享情状

showmount -e 192.168.32.11

如果这里未有出现分享盘,要基于报错进行排查

3.3 挂载分享盘

3.3.1 挂载测量检验

客户端一时挂载的言辞如下

mount -t nfs 192.168.32.11:/sharedisk/sharepoint/ /sharedisk/sharepoint

注意,这里要是挂载不上,出现服务器端拒绝的报错,大概是/etc/exports这一个文件未有把要挂载的机器写入

此地并不建议用长时间挂载的款式,因为nfs服务长时间挂载,当服务器关机恐怕结束nfs进度的时候,会招致客户端从未健康卸载,那样一来,客户端关机关不断,只可以通过断电本事关机。

时而是写入/etc/fstab文件的话语,开机挂载,不过提议不要这么做,理解一下就好。

echo " 192.168.32.11:/sharedisk /sharedisk            nfs        defaults  0 0">>/etc/fstab

3.3.2 autofs挂载

此处建议的解决办法是由此autofs进行挂载。

客户端安装软件autofs

yum install autofs

配置autofs

vim /etc/auto.master

/nfsfile /etc/auto.nfs

找三个索引,钦赐给autofs用

vim  /etc/auto.nfs

share  -rw,bg,soft,rsize=32768,wsize=32768 192.168.32.61:/sharedisk

小心,auto.nfs这几个文件写入的share这几个是要挂载的目录,不可能存在,完整目录是/nfsfile/share,步入该目录/nfsfile就能自动生成,不要本人创办。前面是钦定挂载的特性,最后是钦命挂载的服务的盘。

autofs会自动检查评定挂载点是或不是有选拔,间隔5分钟未有运用,就能够自行卸载/nfsfile/share那一个盘。

这里须求非常注意,倘诺autofs还没卸载,何况客户端平常访问/nfsfile/share这些挂载点,此时,服务器端甘休nfs服务,恐怕服务器断网,或许是服务器挂机,其实/nfsfile/share相当于是多个不设有的目录,要是在/nfsfile下访谈share,也许间接在share下采访,是万分的,终端将会被卡在,消除办法是换个极端,等了20秒钟后,该终端有能够选择,但是不建议那年在挂载点操作,最棒是先步入到别的目录下办事,nfs服务器复苏不荒谬后,再另行进入/nfsfile/share访谈能源。

只是如若nfs服务器还没复苏正常,还应该有终端在走访/nfsfile/share,即被卡在了/nfsfile/share路线下,此时一旦关机,centOS7的nfs将不能够正常关机,必要断电才干关机。

起步服务

运行服务后,cd /nfsfile/share就可以访问到nfs分享盘的能源了

service autofs restart

4 自动化脚本

4.1 NFS 脚本

#!/bin/bash

#

#******************************************************************************

#Author:               Sunny

#Date:                 2017-09-07

#FileName:             install_nfs.sh

#version:              1.0

#Your change info:

#Description:          For auto install nfs

#Copyright(C):         2017  All rihts reserved

#*****************************************************************************

read -p  "Please input your choice,server or client: " choice

read -p "if it is server,input full path dir as serverfile (eg:/sharedisk2): " serverfile

read -p "if it is server,input path you want to  mount  serverfile(eg:/dev/sdb1: ): " mpoint

case $choice in

server)

[ -e $serverfile ] && echo $serverfile is exist || mkdir $serverfile

rpm -q nfs-utils &>/dev/null || yum -y install nfs-utils &>/dev/null;

rpm -q rpcbind &>/dev/null || yum -y install rpcbind &>/dev/null;

{ service rpcbind restart;rpcinfo -p |grep portmapper; }&>/dev/null || echo rpcbind does not start

{ service nfs restart;rpcinfo -p |grep nfs; }&>/dev/null || echo nfs does not start

echo "$serverfile 192.168.32.0/24(rw,no_root_squash,sync)">>/etc/exports

echo "$serverfile 172.18.0.0/16(rw,no_root_squash,sync)">>/etc/exports

exportfs -r

if  $(grep "$serverfile"  /etc/fstab&>/dev/null) ;then

echo "$serverfile already in /etc/fstab,please if you really want to mount $serverfile on $mpoint"

elif  $(grep "$mpoint"  /etc/fstab&>/dev/null) ;then

echo "$mpoint already in /etc/fstab,please if you really want to mount $serverfile on $mpoint"

else

echo " $mpoint            $serverfile              ext4      defaults      0 0">>/etc/fstab

mount -a

fi

showmount  -e &>/dev/null && echo "nfs server start ok,you can check in client"|| echo "nfs start fail,please check"

;;

client)

rpm -q nfs-utils &>/dev/null || yum -y install nfs-utils &>/dev/null;

showmount -e 192.168.32.61

;;

esac

unset choice

unset serverfile

unset mpoint

exit

4.2 autofs脚本

#!/bin/bash

#

#***********************************************************************

#Author:              Sunny

#Date:                2017-09-08

#FileName:            install_autofs.sh

#version:              1.0

#Your change info:

#Description:          For install autofs by auto

#Copyright(C):        2017  All rihts reserved

#***********************************************************************

read -p "Please input a full path  dir you want to auto mount(default:/nfsfile): " autodir

read -p "Please creat a file in /etc you want to assign for autofs(default:auto.nfs): " autofile

ca88编程,read -p "Please input remote source file ip and file (default:192.168.32.61:/sharedisk): " remotesrc

if [ -z ${autodir:-} ];then

autodir=/nfsfile

fi

if [ -z ${autofile:-} ];then

autofile=auto.nfs

fi

if [ -z ${remotesrc:-} ];then

remotesrc=192.168.32.61:/sharedisk

fi

[ -e "$autodir" ]&>/dev/null && echo "$autodir already exist"|| mkdir "$autodir"

rpm -q autofs &>/dev/null || yum -y install autofs&>/dev/null;

#to assign a dir(in the eg is share ) which you want to access to the source dir

#attention,share is a dir,but is should not exist,the dir will exist when you access to it

if [ -e /etc/$autofile ];then

echo "$autofile is exist,please check"

exit  6;

else

cat >>/etc/$autofile<

share  -rw,bg,soft,rsize=32768,wsize=32768 $remotesrc

eof

sed -r -i.bak "/^/misc/ a $autodir  /etc/$autofile" /etc/auto.master

fi

service autofs restart &>/dev/null || echo "something unexpect happened,please check autofs service"

[ -e /root/bakfile ] || mkdir /root/bakfile

mv /etc/*.bak /root/bakfile

unset autodir

unset autofile

unset remotesrc

exit

5 注意事项

1 供给留心的是,如若因此写入配置文件的方法挂载,由于 NFS 使用的这几个 RPC 服务,当客户端连上服务器时,那么你的服务器想要关机, 那可就可以化为『不大概的义务』!借让你的服务器上面还会有客户端在一块,那么您要关机, 可能得要等到数个小时手艺够平常的关机成功!

提出你的 NFS Server 想要关机此前,能先『关掉 rpcbind 与 nfs 』那四个东西!即便不恐怕正确的将那五个 daemons 关掉,那么先以 netstat -utlp 寻觅 PID ,然后以 kill将它关掉先!这样才有方法寻常的关机成功。

也能够运用 showmount -a localhost 来查出来那些客户端还在联合,只怕是翻开 /var/lib/nfs/rmtab 或 xtab 等档案来检查能够。找到那么些客户端后,先关掉这一个客户端的接二连三,即停掉客户端的nfs服务,确认没难点后在一一关机

这么些注意事项是摘自鸟哥私人商品房菜的13章 nfs的牵线,可是这里并未测量检验到和介绍一样的意况,以上都询问不到信息。

2  假设不是由此autofs挂载,而是直接写入配置文件/etc/fstab,当客户端从未任何卸载nfs盘,centos7客户端的机械上就无法健康关机,关机缘卡在

3 若是服务器互联网断了,那么挂载nfs的客户端应用就能够有标题,假设客户端所在的目录有挂载盘,大概是对本土挂载盘做了链接,那么通过ls 也许cd到相应的挂载盘,终端就能够卡死,供给再一次开贰个巅峰,提出用autofs举办挂载

    [root@server0 ~]# vim  /etc/exports
    /public        172.25.0.0/24(ro)
    /protected    172.25.0.0/24(rw,sec=krb5p)                     //指虞升卿全项目

◆二、服务器配置

sudo aptitude install nfs-common

1)为server0下载及布局密钥

◆三、客户端配置

复制代码 代码如下:

手续一:在server0上表露NFS共享目录

例如:

以 Shell 的法子检查

萨姆ba账号处理工科具:

3、检查分享目录

复制代码 代码如下:

    [root@desktop0 ~]# vim  /etc/fstab
    .. ..
    //server0.example.com/devops    /mnt/dev    cifs    username=kenji,password=atenorth,multiuser,sec=ntlmssp,_netdev 0 0
    [root@desktop0 ~]# umount  /mnt/dev                 //卸载此分享
    [root@desktop0 ~]# mount  /mnt/dev                 //重新挂载此分享

[[email protected] var]#

复制代码 代码如下:

   1> 服务端须要周转种类服务 nfs-server.service
   2> 客户端不供给周转特定的系统服务

All mount points on ns.osserver:

# 先以 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   

    [root@desktop0 ~]# su - student
    Last login: Sun Nov 27 03:51:32 CST 2016 on pts/0
    [student@desktop0 ~]$ ls /mnt/dev
    ls: cannot access /mnt/dev: Permission denied

-v :在 export 的时候,将详细的音讯输出到显示器上。

/*先以 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;   
}  

测量检验Samba共享财富:

2、运转有关服务

检查 SAMBA Server 是或不是存在的流水生产线

手续一:挂载Samba分享目录

Export list for 172.20.65.16:

而 SAMBA 的 client 则是用 smbclient,在 Ubuntu 上的安装方式如下:

1)修改挂载配置,添增添用户扶助

[[email protected] var]# showmount -a

复制代码 代码如下:

配备NFS分享目录的记录格式:

[[email protected] var]# showmount -e

以 PHP 的艺术检查

3)运行系统服务nfs-server,并设置开机自启

NFS是网络文件系统Network File System)的简称,是布满式Computer种类的一个组成都部队分,可完成在异构网络上共享和装配远程文件系...

以 PHP 的措施行检查查

2)运行系统服务nfs-secure,并布置开机自启

2、挂载/var/nfs目录本地挂载点为/mnt/nfs)

自己争持 NFS Server 是否存在的流水生产线 以 Shell 的章程检查

四、安全NFS分享的贯彻

[[email protected] var]# showmount -e

你或者感兴趣的小说:

  • 在ubuntu中配备samba服务器的办法
  • Linux加入windows ad域步骤详解(winbindsamba方案)
  • HighlanderHE5服务器配置-搭建萨姆ba服务器步骤(图)
  • 私下认可Samba版本在RedHat 9上的溢出获取root演示
  • Samba NT Domain Controller
  • samba分享目录权限难题

步骤三:在server0上调治/protected分享配置

showmout

复制代码 代码如下:

Samba分享账号:存在独立的账号数据文件里,必须有同名系统账号(方便给权力)

# 先以 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   

    [root@desktop0 ~]# mount  -a
    [root@desktop0 ~]# df  -hT  /mnt/dev
    Filesystem                   Type  Size  Used Avail Use% Mounted on
    //server0.example.com/devops cifs   10G  3.2G  6.8G  32% /mnt/dev

2、showmout命令对于NFS的操作和查错有异常的大的增加帮衬,所以大家先来看一下showmount的用法

sudo aptitude install smbclient

目标:

中标mount现在,就可以同本地目录一样随意操作;

而检查 NFS 的 client 能够用 showmount 来拍卖,在 Ubuntu 上的安装格局如下:

一、配置SMB文件夹分享

理想条件下的NFS 网络拓扑结构

/*先以 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;   
}   

方案:

◆四、别的有关命令

一般说来会通过 /etc/fstab 来拍卖挂载的设置,然后再采用 mount -a 来重新确认挂载,最佳在排程的次序用到挂载目录时也实行三遍 mount -a,挂载目录在断线后是不会自行回复的,mount -a 的 Timeout 其实还蛮久的,极其是 Server 不设临时,所以最棒或许用相应的 client 先确认 server 是不是存在。

步骤:

[[email protected] var]# showmount -e

    [root@server0 ~]# lab  nfskrb5  setup
    Installing packages ...
    Updating authconfig for ldap & krb5 ...
    SUCCESS

◆五、常见难题解答

2)为desktop0下载及布署密钥

Export list for ns.osserver:

1)创造钦赐的子目录

Export list for ns.osserver:

步骤:

/var/nfs 172.20.*.*

添加分享账号kenji,密码为atenorth:

紧接着可以选用showmount –e查看一下,看看分享的目录情形:

拉长分享账号chihiro,密码为atenorth:

注重布局文件为:/etc/exports

    [root@server0 ~]# systemctl  restart  nfs-server
    [root@server0 ~]# systemctl  enable  nfs-server
    ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'

消除方案:可能是NFS服务器的防火墙非常;

2)创造分享账号

OK,到此甘休,NFS服务器搭建完成;

    [root@desktop0 ~]# vim  /etc/fstab
    .. ..
    server0.example.com:/public     /mnt/nfsmount   nfs     _netdev  0  0
    server0.example.com:/protected  /mnt/nfssecure  nfs     sec=krb5p,_netdev  0  0

连带小说】

拜望desktop0的挂载点/mnt/nfssecure/的子目录project,测量试验可写入:

NFS是互连网文件系统Network File System)的简称,是遍及式Computer类别的七个组成都部队分,可完毕在异构网络上分享和装配远程文件系统。

下一场在设想机 desktop0 上访谈NFS分享目录

-a :全体mount也许unmount /etc/exports中的内容

    [root@desktop0 ~]# systemctl  restart  nfs-secure
    [root@desktop0 ~]# systemctl  enable  nfs-secure
    ln -s '/usr/lib/systemd/system/nfs-secure.service' '/etc/systemd/system/nfs.target.wants/nfs-secure.service'

该命令格式如下:

    [root@server0 ~]# useradd  harry
    [root@server0 ~]# pdbedit  -a  harry                  //依照提醒设好密码migwhisk
    new password:
    retype new password:

-e :展现钦定的NFS SEMuranoVE凯雷德上export出来的目录。

本例要求在设想机 server0 上公布三个分享文件夹,具体须要如下:

  • Linux系统挂载AIX NFS服务器的安顿格局

    [root@server0 ~]# useradd  chihiro
    [root@server0 ~]# pdbedit  -a  chihiro              //依照提醒设好密码atenorth
    new password:
    retype new password:

客户端必须保证RPC琢磨相应的portmap平常运作,不然mount将倒闭;

4)调度SELinux按钮计谋,允许发布可写的萨姆ba分享能源

[[email protected] ~]# showmount -e 172.20.65.16

本文由ca88发布,转载请注明来源

关键词: ca88网址 日记本 ca88官网 yzc777亚洲城