NFS 服务器安装
安装NFS,允许2个客户端连接。自己定义目录
#!/bin/bash
#################################################################################################
#功能:该脚本主要实现NFS自动安装和客户端自动挂载.
#使用环境:centos6和NFS客户端的数量为2.
#参数:NFS服务器端IP、第一个客户端IP、第二个客户端IP、第一个客户端密码、第二个客户端密码、NFS目录
#作者:陈浩
#################################################################################################
# 输入配置信息
read -p "请输入第一个NFS客户端的密码: " nfs_passwd_1
read -p "请输入第二个NFS客户端的密码:" nfs_passwd_2
read -p "请输入NFS目录:" nfs_dir
# 检查IP地址是否合法
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
source /etc/rc.d/init.d/functions
function check_ip()
{
IP=$1
if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
FIELD1=$(echo $IP|cut -d. -f1)
FIELD2=$(echo $IP|cut -d. -f2)
FIELD3=$(echo $IP|cut -d. -f3)
FIELD4=$(echo $IP|cut -d. -f4)
if [ $FIELD1 -le 255 -a $FIELD2 -le 255 -a $FIELD3 -le 255 -a $FIELD4 -le 255 ]; then
echo "$IP 地址合格!"
else
echo "$IP 地址不合格!"
fi
else
echo "$IP 地址格式错误!"
fi
}
# 创建nfs目录
nfs_dir()
{
mkdir -p $nfs_dir
chmod 1777 $nfs_dir
}
# 开启nfs服务
nfs_start()
{
systemctl restart rpcbind.service
systemctl restart nfs.service
# service rpcbind restart
# service nfs restart
}
#确定服务器和客户端是否正在安装NFS服务。如果没有安装服务,请先安装并启动它。
# 定义install函数
nfs_install(){
rpm -qa |grep nfs-utils
if [ `echo $?` -eq 0 ]
then
echo "nfs服务已经安装存在!"
else
echo "文件不存在"
echo "文件安装中..."
yum install nfs-utils -y
yum install rpcbind -y
nfs start && systemctl restart rpcbind.service && systemctl restart nfs.service
echo "服务已经启动"
fi
}
# NFS目录权限定义
qx="(rw,no_root_squash)"
#验证NFS服务器端IP是否合法
while true; do
read -p "请输入NFS服务器的IP地址: " NFS_SERVER_IP
check_ip $NFS_SERVER_IP
[ $? -eq 0 ] && break
done
# 验证NFS客户端IP是否合法
while true; do
read -p "请输入第一个NFS客户端的IP: " nfs_client1
check_ip $nfs_client1
[ $? -eq 0 ] && break
done
# 验证NFS客户端IP是否合法
while true; do
read -p "请输入第二个NFS客户端的IP: " nfs_client2
check_ip $nfs_client2
[ $? -eq 0 ] && break
done
nfs_dir
nfs_install
nfs_start
service iptables stop && systemctl stop firewall
cat >/etc/exports<<EOF
$nfs_dir $nfs_client1$qx
$nfs_dir $nfs_client2$qx
EOF
nfs_start
echo "########################### NFS用户1 终端执行###################################" sshpass -p $nfs_passwd_1 ssh root@$nfs_client1 -o StrictHostKeyChecking=no <<EOF server iptabes stop yum install nfs-utils -y service rpcbind start service nfs start mkdir -p $nfs_dir umount $nfs_dir mount -t nfs $NFS_SERVER_IP:$nfs_dir $nfs_dir sed -i '/nfs/d' /etc/fstab echo "$NFS_SERVER_IP:$nfs_dir $nfs_dir nfs defaults 0 0 " >>/etc/fstab EOF echo "########################### NFS用户2 终端执行###################################" sshpass -p $nfs_passwd_2 ssh root@$nfs_client2 -o StrictHostKeyChecking=no <<EOF server iptabes stop yum install nfs-utils -y service rpcbind start service nfs start mkdir -p $nfs_dir umount $nfs_dir mount -t nfs $NFS_SERVER_IP:$nfs_dir $nfs_dir sed -i '/nfs/d' /etc/fstab echo "$NFS_SERVER_IP:$nfs_dir $nfs_dir nfs defaults 0 0 " >>/etc/fstab EOF
#!/bin/bash ################################################################################################# #功能:该脚本主要实现NFS在centos和ubuntu系统的自动安装 #使用环境:centos7、ubuntu #作者:陈浩 #################################################################################################
# 安装NFS软件
yuminstall(){
if [ `rpm -qa nfs-utils |wc -l` == 0 ];then
yum install -y nfs-utils* >> /dev/null
echo "NFS部署完成"
else
echo "NFS已经安装"
fi
}
# ubuntu系统 NFS的安装
aptinstall(){
if [ `dpkg -qa nfs-utils |wc -l` != 1 ];then
dpkg -i nfs-kernel-server* >> /dev/null
if [ `dpkg -qa nfs-utils |wc -l` == 0 ];then
echo "安装包有误"
else
echo "NFS安装完成"
fi
else
echo "NFS已经安装"
fi
}
# 判断服务是否运行
services(){
rpc=`netstat -nutlp | grep -i rpcbind |sed -n '1p'| awk -F "/" '{print $NF}'`
if [ $rpc == rpcbind ]
then
echo "rpcbind 正在运行"
else
systemctl start rpcbind
if [ $? -eq 0 ];then
echo "rpcbind 已经运行"
else
echo "rpcbind 没有运行"
fi
fi
}
#设置NFS共享目录和权限
nfssetup(){
cat << EOF
提示:顺序为目录,IP范围默认( 0.0.0.0/0.0.0.0 权限),权限0为默认权限较为危险,不建议!
EOF
read -p "设置NFS共享目录 :" catalog
mkdir &catalog
read -p "设置共享的IP地址 :" IP
read -p "设置共享权限,请输入ro/rw :" RWX
[ ! $RWX ] && RWX =rw,sync
echo -e $catalog $IP \($RWX\) >> /etc/exports
systemctl restart nfs
if [ $? -eq 0 ];then
echo "NFS部署完成"
else
echo "NFS服务启动失败!请手动重启"
fi
}
# 防火墙开启状态,允许nfs访问
firewallserver(){
cat << EOF
防火墙添加:nfs、mountd、rpc-bind
EOF
firewall-cmd --permanent --add-service=nfs >> /dev/null
firewall-cmd --permanent --add-service=mountd >> /dev/null
firewall-cmd --permanent --add-service=rpc-bind >> /dev/null
firewall-cmd --reload >> /dev/null
}
#防火墙设置
firewallstatus(){
read -p "防火墙停止运行按 0;增加防火墙允许条目记录按 1 : " firewall
if [ $firewall == 0 ]
then
systemctl stop firewalld.service
else
firewallserver
fi
}
# 安装NFS软件程序
systema(){
read -p "开始安装? 选择yes或者no : " install
if [ $install == yes ];then
read -p "选择安装包种类rpm或者dep: " packages
if [ $packages == 'rpm' ];then
yuminstall
else
aptinstall
fi
fi
}
systema
services
nfssetup
firewallstatus

浙公网安备 33010602011771号