nfs_install.sh

#!/bin/bash

function nfs_server_install(){
#安装NFS服务端
#1)安装nfs-utils和rpcbind,运行以下命令:
yum install -y nfs-utils rpcbind

#2)为NFS指定固定端口,运行以下命令
cat <<EOT > /etc/sysconfig/nfs
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
EOT

#3)开放防火墙中的上述端口,运行以下命令:
iptables  -I INPUT -p tcp –dport 111 -j ACCEPT
iptables  -I INPUT -p udp –dport 111 -j ACCEPT
iptables  -I INPUT -p tcp –dport 2049 -j ACCEPT
iptables  -I INPUT -p udp –dport 2049 -j ACCEPT
iptables  -I INPUT -p tcp –dport 30001:30004 -j ACCEPT
iptables  -I INPUT -p udp –dport 30001:30004 -j ACCEPT
service iptables save
service iptables restart

#4)设置SELinux为许可状态,运行以下命令:
sed -i “s/SELINUX=enforcing/SELINUX=disabled/g”  /etc/selinux/config
setenforce 0

#5)创建共享目录,运行以下命令
mkdir -p /opt/share

#6) 配置exports文件,运行以下命令
cat <<EOT > /etc/exports
/opt/share 10.137.1.237(rw,sync,no_root_squash)
/opt/share *(ro)
/opt/share 10.137.1.237/255.255.255.0(rw,insecure,sync,all_squash,anonuid=65534,anongid=65534)
EOT

#7) 启动NFS相关服务,运行以下命令:
chkconfig nfs on
chkconfig rpcbind on
service nfs restart
service rpcbind restart

#8) 检查NFS的相关端口是否已经启用,运行以下命令:
service iptables status
rpcinfo -p localhost
}

function nfs_client_install(){
#1) 确定挂载点,运行以下命令
showmount -e 10.137.1.176

#2) 创建挂载目录,运行以下命令:
mkdir -p /opt/www/isswsy.com/uploads/

#3) 挂载共享目录,运行以下命令 http://blog.csdn.net/bobpen/article/details/53464754
mount -t nfs  -o nfsvers=3,vers=3  10.137.1.176:/opt/share /opt/www/isswsy.com/uploads

#4) 共享目录使用结束之后,卸载共享目录,运行以下命令:
umount /opt/www/isswsy.com

#开机自动挂载
auto_mount_1
auto_mount_2
auto_mount_3
}

function auto_mount_1(){
#1)向fstab文件中添加共享目录的挂载条目,即可实现开机自动挂载,但是随后与NFS服务端的连接将始终处于活动状态。运行以下命令:
cat <<EOT >/etc/fstab
10.137.1.176:/opt/share  /opt/www/isswsy.com/uploads nfs defaults 0 0
EOT
#其中,第5个字段设置为0表示共享目录的文件系统不需要使用dump命令进行转储,第6个字段设置为0表示共享目录的文件系统不需要使用fsck命令进行检查。
}
function auto_mount_2(){
#按需自动挂载(特殊映射)
#Step-1:修改不活动状态的超时时间,运行以下命令:
sed -i “s/TIMEOUT=300/TIMEOUT=600/g” /etc/sysconfig/autofs
#也就是将不活动状态的超时时间由5分钟修改为10分钟。

#配置完成之后,重启autofs服务:
service autofs restart
#Step-2:访问网络共享目录,运行以下命令:
cd /net/10.137.1.176/opt/share
#运行上述命令时,autofs会自动挂载NFS服务端中的网络共享目录。
#Step-3:卸载已挂载的网络共享目录,详情如下所示:
#在/net/10.137.1.176/opt/share之下的所有文件和目录停止使用且超时期满之后(10分钟),autofs将卸载共享目录。
}
function auto_mount_3(){
#按需自动挂载(间接映射)
#Step-1:修改不活动状态的超时时间,运行以下命令:
sed -i “s/TIMEOUT=300/TIMEOUT=600/g” /etc/sysconfig/autofs
#也就是将不活动状态的超时时间由5分钟修改为10分钟。
#Step-2:建立共享目录挂载点的父目录,运行以下命令:
mkdir -p /root/demo
#Step-3:配置共享目录挂载点的父目录,运行以下命令:
vi /etc/auto.master

#上述文件的内容如下所示:
/root/demo    /etc/auto.demo
#其中,/root/demo是挂载点的父目录,这个目录在系统中始终可见,并由autofs服务监控,以确定是否“需要”挂载/创建子目录挂载点。/etc/auto.demo为单个配置文件,包含由autofs服务在此父目录下管理的子目录挂载点的列表。

#Step-4:配置共享目录挂载点目录,运行以下命令:
cat <<EOT >/etc/auto.demo
remote_dir -rw 10.137.1.176:/opt/share
EOT
#其中,remote_dir为子目录挂载点,此目录通常不可见,只有当autofs服务创建此目录和挂载共享之后对其进行直接命名/访问时,它才会变为可见。-rw为挂载网络共享时要使用的挂载选项。192.168.4.211:/data/nfs_share为需要挂载的NFS服务端和共享目录。

#Step-5:重新启动autofs服务,运行以下命令:
service autofs restart
#Step-6:访问网络共享目录,运行以下命令:
cd /root/demo/remote_dir
#运行上述命令之后,autofs将自动创建挂载点目录,并且挂载共享目录。
#Step-7:卸载网络共享目录,详情如下所示:
#在/root/demo/remote_dir之下的所有文件和目录停止使用且超时期满之后(10分钟),autofs将卸载共享目录。
}

#———————install all————————–

if [ $SYSTEM = “CentOS” ];then
   echo ”          === Welcome to CentOS System init === “
else
   echo “Usage:The system is not CentOS,please use other company_install!”
fi

if [ $# = 0 ];then
    echo “Usage: $0 must follow nfsServer|all “
    echo “–> nfsServer : install nfsServer”
    echo “–> all : install redis|all “
else
    init

    case $1 in
       nfsServer|NfsServer)
       nfs_server_install
       ;;
       nfsClient|NfsClient)
       nfs_client_install
       ;;
       all|ALL)
   nfs_server_install
   nfs_client_install
       ;;
       *)
       echo “usage: inetpanel [nfsServer|nfsClient|all]”
       ;;
     esac

fi

# 本文参考:http://www.linuxidc.com/Linux/2015-01/112051.htm