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號