使用shell脚本快速部署NFS服务

使用shell脚本快速部署NFS服务

脚本采用模块化设计,使代码更加简洁,更加直观

代码块

#!/bin/bash
#services函数判断rpcbind远程调用服务是否是开启状态
services(){
	rpc=`netstat -nutlp|grep -i rpcbind |sed -n '1p' |awk -F "/" '{print $NF}'`
	if [ $rpc == rpcbind ];then
		echo rpcbind.service running
	else
		systemctl  start rpcbind
		if [ $? -eq 0 ];then
			echo rpcbind is running
		else
			echo rpcbind is norunning
		fi
	fi
}
#nfssetup简化了写入exports文件方式,关键的一步,使我们部署NFS变得简单
nfssetup(){
	cat <<EOF
顺序为目录,IP范围defautl is 0.0.0.0/0.0.0.0、权限,权限0为默认权限secure较为危险,不建议!
EOF

	read -p "catalog /data: " catalog
	[ ! $catalog ] && mkdir /data && catalog=/data
	read -p "IP/0-32: " IP
	[ ! $IP ] && IP=0.0.0.0/0.0.0.0

	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服务启动失败,请手动重启"
		exit 1
	fi
}
#这里采用的是yum本地的安装方式,下面的aptinstall同理,这样的好处是,
#在没有网络的情况下,只要将安装包放到同级目录下,即可完成部署,不分架构
yuminstall(){
	if [ `rpm -qa nfs-utils |wc -l` != 1 ];then 
		yum localinstall  nfs-utils* >> /dev/null
		echo "NFS安在完成"
	else
		echo "NFS已经安装"
	fi
}

#放行防火墙或者添加防火墙规则
firewallserver(){
cat <<EOF
firewall:add nfs、mountd、rpm-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
}
#判断是要关闭还是添加规则
firewallstatus(){
read -p "firewalld stop/add 0/1:" firewall
if [ $firewall == 0 ];then
	systemctl stop firewalld.service
else
	firewallserver
fi
}
#往上翻
aptinstall(){
	if [ `dpkg -qa nfs-utils |wc -l` != 1 ];then
                dpkg -i   nfs-kernel-server* >> /dev/null
#个人真的不是很喜欢Ubuntu,只是因为源混乱的管理
		if [ `dpkg -qa nfs-utils |wc -l` != 1 ];then
			echo "安装包有误"
		else
                	echo "NFS安装完成"
		fi
        else
                echo "NFS已经安装"
        fi
}

#判断是哪种安装方式
systema(){
	read -p "install? yes/no" install 
	if [ $install = yes ];then
		read -p "rpm/deb" packages
		if [ $packages == 'rpm' ];then
			yuminstall
		else
			aptinstall
		fi
	fi
}
	
systema
services
nfssetup
firewallstatus


还有非常多可以改进的地方,但我希望能得到更多有意义的建议,或者错误的指出

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值