IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux 全自动安装nfs服务共享及设置windows访问 -> 正文阅读

[系统运维]linux 全自动安装nfs服务共享及设置windows访问

首先在centos上设置配置文件

[data]
serverpath=/tmp/nfsshare
network=192.168.31.0/24
power=rw

设置共享路径,

运行访问的网络 可网段,可IP,中间用空格分开

设置权限 rw读写,ro只读

shell脚本

 yum -y install nfs*
(rpm -qa |grep  -E 'nfs|rpcbind')&&echo 安装或更新成功!||echo 安装或更新失败!
#读取配置文件
if [ ! -e ./nfsset.ini ];then
echo 配置文件丢失!
exit
fi

i=0
cat ./nfsset.ini|grep -E 'serverpath|network|power'|awk -F '=' '{print $2}' >/tmp/tmpset.ini
while read line
do
array[$i]=$line
let i++
done < /tmp/tmpset.ini #使用管道符 | 的方法相当于启动了一个独立的子进程,无法访问内部变量
echo "${array[0]}
${array[1]}
${array[2]}"
findstr=`echo ${array[0]}|awk 'BEGIN{FS="/"}''{print $2}'`
echo $findstr

if [[ -d ${array[0]} ]];then
echo nfs共享目录${array[0]}
else
mkdir ${array[0]}
fi
chmod -R 777 ${array[0]}
ls -ali ${array[0]}

if [[ -e /etc/exports ]];then
chmod -R 777 /etc/exports
echo 未修改前权限设置
sed -n "/.*${findstr}.*/p" /etc/exports
sed -i "/.*${findstr}.*/d" /etc/exports
echo "${array[0]}	${array[1]}(fsid=0,insecure,${array[2]},no_root_squash,no_all_squash,sync)" >> /etc/exports
else
echo "${array[0]}	${array[1]}(fsid=0,insecure,${array[2]},no_root_squash,no_all_squash,sync)" > /etc/exports
fi

echo 修改后权限设置
cat /etc/exports
systemctl restart nfs
systemctl restart rpcbind
systemctl enable nfs
systemctl enable rpcbind
systemctl list-units --type=service|grep  -i -E "nfs|rpcbind"|awk '{if($4=="running"&&$3=="active"){print $1",服务启动成功"}else{print $1",服务启动失败,请检查"}}'
showmount -e localhost&&echo nfs共享成功||echo nfs共享失败
exportfs -rv
#防火墙设置
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
echo "enforce `getenforce`"

windows客户端访问配置文件

<?xml version="1.0" encoding="utf-8"?>
<set>
<server ip="192.168.31.218" path="/tmp/nfsshare"  >服务器IP与路径</server>
  <disk map="M:">映射盘符</disk>  
</set>

自动安装客户端和访问脚本如下

cls
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName Microsoft.VisualBasic

$Currentpath=Split-Path -parent $MyInvocation.MyCommand.Definition #获取脚本目录
[xml]$xml=Get-Content "$Currentpath\nfsforwin.xml"
if ($PSVersionTable["PSVersion"].Major -lt 3){
$nfs=Get-WindowsFeature -Name NFS-Client|?{$_.Installed -eq $true}
 if ($nfs -eq $null){
 Write-Host "正在安装nfs客户端,请稍后...." -ForegroundColor Green
 Install-WindowsFeature NFS-Client
 return
  }
}
else {
 if(!(Test-Path "$env:windir\System32\mount.exe")){Write-Host "请先从windows控制面板安装程序里手动安装NFS客户端" -ForegroundColor Red;return }     
}
umount -a -f
showmount -e $xml.set.server.ip
& cmd "/c mount $($xml.set.server.ip):$($xml.set.server.path) $($xml.set.disk.map)"
Set-ItemProperty -path HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousUid  -Value 0 -Force
Set-ItemProperty -path HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default -Name AnonymousGid  -Value 0 -Force

效果如下

linux下访问nfs,就更简单些 直接执行命令?

-------------------------------------------------------------------------------
[root@CentOS ~]# mount -t nfs -o rw,bg,retry=1? 192.168.31.0/24:/media? /media
-------------------------------------------------------------------------------

卸载NFS文件系统
与卸载普通的本地文件系统一样,可以通过umount命令把它卸载,终止与NFS服务器的连接。但在卸载前,应该确保已经没有任何进程在使用该文件系统。用户可以通过fuser命令进行检查。
卸载NFS文件系统的命令格式如下所示:
[root@CentOS ~]# umount [远程文件系统或挂载点]

卸载上面例子挂载的NFS文件系统的方法:
[root@CentOS ~]# umount /media? 或

[root@CentOS ~]# umount 192.168.31.0/24:/media

8、fuser命令简单用法
linux环境下,当使用umount命令卸载挂载点时,会遇到“device is busy”提示,这时fuser就能查出谁在使用这个资源;当然umount –lf? [挂载点] 也可以强制卸载

运行下面命令看一下哪个用户哪个进程占用着此目录,假设挂载的目录为/media
[root@CentOS ~]# fuser -mvu /media

运行下面命令杀掉占用此目录的进程
[root@CentOS ~]# fuser -mvk /media
或者fuser -mvki? /media(每杀掉一下进程会让你确认)

选项说明
-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。
-u 在每个PID后面添加进程拥有者的用户名称
-v 详细模式
-k 杀掉访问文件的进程
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 18:25:00  更:2022-04-18 18:26:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:41:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码