shell编程笔记2--nfs挂载

@[toc]shell编程笔记2-ns挂载

shell编程笔记2–ns挂载

NFS简介

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。​NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利.由於在工作中非常實用,此處將其寫成了兩個腳本,以便於後續使用時候查看.

服务|客户端shell脚本

服務端:

服務端將對應內容寫到/etc/exports中,並重啓nfs-kernel-server即可;

#!/bin/bash

usage()
{
	echo "usage:
	$0 usable_ip share_path
	bash nfs_mount.sh 127.0.0.1 /home/user/dir1
	"
}

main()
{
	# back up fstab
	user=xg
	BAKCUP=/home/$user/backup/nfs
	if [ ! -d $BAKCUP ];then
		sudo mkdir -p $BAKCUP
	fi
	cp /etc/exports ${BAKCUP}/exports.$(date +'%Y%m%d%H%M')

	# prepare dir
	if [ ! -d $2 ];then
		sudo mkdir -p $2
	fi
	sudo touch  $2/nfs-test.txt
	
	# install nfs-common
	dpkg -l | grep nfs
	if [ $? -ne 0 ];then
		apt-get install -y nfs*
		if [ $? -ne 0 ];then
			echo "install nfs* failed!"
			exit 1
		fi
	fi
	dpkg -l | grep rpcbind
	if [ $? -ne 0 ];then
		sudo apt-get install -y rpcbind
		if [ $? -ne 0 ];then
			echo "install rpcbind failed!"
			exit 1
		fi
	fi

	#mount_str
	cat /etc/exports | grep $2
	if [ $? -ne 0 ];then
		mount_str=$2'  '$1'(rw,sync,no_subtree_check)'
		sudo echo $mount_str >> /etc/exports
	fi
	
	# check if mount success
	sudo service nfs-kernel-server restart
}

main $1 $2

客戶端:

將相應內容寫到/etc/fstab中,並mount即可;

#!/bin/bash

# author: xg
# email : 
# function: nfs客户端挂载
# date: 2019-09-29 18:30

usage()
{
	echo "usage:
	$0 nfs_server_ip share_path local_path
	bash nfs_mount.sh ip /home/user/dir1 /home/user/dir2
	"
}

main()
{
	# back up fstab
	user=xg
	BAKCUP=/home/$user/backup/nfs
	if [ ! -d $BAKCUP ];then
		sudo mkdir -p $BAKCUP
	fi
	cp /etc/fstab ${BAKCUP}/fstab.$(date +'%Y%m%d%H%M')

	# install nfs-common
	dpkg -l | grep nfs-common
	if [ $? -ne 0 ];then
		sudo apt-get install -y nfs-common
		if [ $? -ne 0 ];then
			echo "install nfs-common failed!"
			exit 1
		fi
	fi

	# append to /etc/fstab
	cat /etc/fstab |grep $1
	if [ $? -ne 0 ];then
		mount_str=$1:$2'    '$3'    nfs    rw,async,vers=3,rsize=524288,wsize=524288,acdirmin=5,acdirmax=8,hard,proto=tcp        0       0'
		sudo /bin/bash -c "/bin/echo $mount_str >> /etc/fstab"	
	fi

	# mkidr $3
	if [ ! -d $3 ];then
		sudo mkdir $3
	fi

	# mount -a
	sudo mount -a
	if [ $? -ne 0 ];then
		echo "mount -a error!"
		exit 1
	fi

	# check if mount success
	df -h $2
	if [ $? -ne 0 ];then
		echo "df -h failed!"
		exit 1
	fi	
}

main $1 $2 $3

说明

测试系统版本: Ubuntu 19.10 Desktop (64-bit)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昕光xg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值