RHCE NFS
RHCE NFS
- 1.1
- 1. 2 NFS 主机名格式
- 1.3 NFS 服务器配置
- 1.3.1 /etc/exports 配置文件
- 1.3.1.1 导出条目
- 1.3.1.2 默认选项
- 1.3.1.3 默认和覆盖选项
- 1.4 启动 NFS 服务器
- 1.5 练习
- 1.5.1 配置 NFS 服务器和客户端挂载
- 1.5.2 配置autofs自动挂载(需要时才挂载)
- 1.6 废弃实验
linux 到 linux 之间的东西
不需要安装软件包系统,系统自己支持
挂载 mount
vim 编辑文件
1.1
1. 2 NFS 主机名格式
在挂载或导出 NFS 共享时用来指定主机的不同格式
使用以下格式指定主机:
- 单台机器
以下任意一种:完全限定域名(可由服务器解析)主机名(可由服务器解析)IP 地址。 - IP网络
以下格式之一有效: a.b.c.d/z ,其中 a.b.c.d 是网络, z 是子网掩码中的位数,例如
192.168.0.0/24 。 a.b.c.d/netmask ,其中 a.b.c.d 是网络, netmask 是子网掩码;例如
192.168.100.8/255.255.255.0 。
1.3 NFS 服务器配置
在 NFS 服务器中配置导出的语法和选项:
- 手动编辑 /etc/exports 配置文件
- 在命令行上使用 exportfs 工具
1.3.1 /etc/exports 配置文件
/etc/exports 文件控制哪些文件系统被导出到远程主机,并指定选项
- 空白行将被忽略。
- 要添加注释,以井号(#)开始一行。
- 可以使用反斜杠(\)换行长行。
- 每个导出的文件系统都应该独立。
- 所有在导出的文件系统后放置的授权主机列表都必须用空格分开。
- 每个主机的选项必须在主机标识符后直接放在括号中,没有空格分离主机和第一个括号。
1.3.1.1 导出条目
导出的文件系统的每个条目都有以下结构:export host(options) 没有空格
可以指定多个主机以及每个主机的特定选项。
主机之间空格分开
export host1(options1) host2(options2) host3(options3)
export:
导出的目录
主机:
导出要共享的主机或网络
选项:
用于主机的选项(共享的时候有些特殊的选项,自己写)
示例:一个简单的 /etc/exports 文件
/exported/directory bob.example.comexport 主机host (option)
目录/exported/directory,导出给bob.example.com主机,没有选项(按默认选项)
1.3.1.2 默认选项
导出条目的默认选项有:
- ro
导出的文件系统是只读的。远程主机无法更改文件系统中共享的数据。要允许主机更改文件系统
(即读写),指定 rw 选项。 - sync(同步的)
在将之前的请求所做的更改写入磁盘前,NFS 服务器不会回复请求。要启用异步写,请指定 async
选项。(异步),建议用同步 - wdelay
如果 NFS 服务器预期另外一个写入请求即将发生,则 NFS 服务器会延迟写入磁盘。这可以提高性能,因为它可减少不同的写命令访问磁盘的次数,从而减少写开销。要禁用此功能,请指定
no_wdelay 选项,该选项仅在指定了默认 sync 选项时才可用。 - root_squash
这可以防止远程连接的 root 用户(与本地连接相反)具有 root 特权;相反,NFS 服务器为他们分
配用户 ID nobody 。这可以有效地将远程 root 用户的权限"挤压"成最低的本地用户,从而防止在远程服务器上可能的未经授权的写操作。要禁用 root 挤压,请指定 no_root_squash 选项。要挤压每个远程用户(包括 root 用户),请使用 all_squash 选项。要指定 NFS 服务器应该分配给来自特定主机的远程用户的用户和组 ID,请分别使用 anonuid 和 anongid 选项,如下所示:export host(anonuid=uid,anongid=gid) 这里,uid 和 gid 分别是用户 ID 号和组 ID 号。 anonuid 和 anongid 选项允许您为要共享的远程 NFS 用户创建特殊的用户和组帐户。
一台主机host1(IP:192.168.74.128)
[root@host1 ~]# vim /etc/exports
[root@localhost ~]# cat /etc/exports
/nfs *(rw)
导出的文件系统 *表示任意主机 rw 读写 [root@host3 ~]# showmount -e 192.168.74.128 #查看主机1的导出
#没法收到对方RPC的消息
clnt_create: RPC: Unable to receive
#对方主机要放行防火墙[root@host1 ~]# systemctl status firewalld #查看防火墙
[root@host1 ~]# systemctl stop firewalld #关闭防火墙[root@host3 ~]# showmount -e 192.168.74.128
clnt_create: RPC: Program not registered #程序未注册
(systemctl start nfs-server)#对方没有启动nfs服务[root@host3 ~]# systemctl status nfs-server #查看nfs服务状态
○ nfs-server.service - NFS server and servicesLoaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; preset: disabled)Active: inactive (dead)
[root@host1 ~]# systemctl start nfs-server #启动nfs服务[root@host3 ~]# showmount -e 192.168.74.128
Export list for 192.168.74.128:
/nfs *[root@host1 ~]# ll /nfs
ls: cannot access '/nfs': No such file or directory
[root@host1 ~]# mkdir /nfs
[root@host1 ~]# exportfs -r # 重新加载/etc/exports 文件[root@host3 ~]# showmount -e 192.168.74.另一台主机IP
Export list for 192.168.74.128:
/nfs *
对面导出来的文件系统(host1) 匹配的客户端[root@host3 ~]# ll /mnt
total 0
drwxr-xr-x. 2 root root 6 Nov 27 22:57 hgfs
[root@host3 ~]# mount 192.168.74.128:/nfs /mnt
[root@host3 ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
192.168.74.128:/nfs 26G 4.5G 22G 18% /mnt[root@host3 ~]# ll /mnt
total 0
[root@host3 ~]# touch /mnt/roottest
touch: cannot touch '/mnt/roottest': Permission denied #无权限(作为root账号,权限被拒绝)[root@host1 ~]# ll /nfs -d
drwxr-xr-x. 2 root root 6 Nov 17 10:19 /nfs #root账户对这个目录有写的权限
在本地是有的,在网络上面的其他主机上面的root是没有权限写的
因为nfs自动的将其他主机的root用户换成了另外的账号,叫nobody
[root@host1 ~]# id nobody
uid=65534(nobody) gid=65534(nobody) groups=65534(nobody
#65534(nobody)很大,65535是最大值
#所以nobody对/nfs没有写的权限[root@host1 ~]# chmod o+w /nfs
[root@host1 ~]# ll /nfs -d
drwxr-xrwx. 2 root root 6 Nov 27 10:18 /nfs
#加的权限rw[root@host3 ~]# touch /mnt/roottest #成功创建[root@host1 ~]# ll /nfs
total 0
-rw-r--r--. 1 nobody nobody 0 Nov 27 10:30 roottest
#默认会把 root 用户创建的文件的所有者和所属组转换 nobody (也就是uid、gid 为 65534的用户 ) 主机3的root账号在/mnt挂载底下写的东西,在主机1上会被自动转换成nobody,
为什么转换:
因为主机2是root账号,写的文件如果不转换的话,在主机1看的时候也是root
在主机1看主机2写的文件仍然是root(但此文件不是主机1写的)
另一台主机host3(IP:192.168.74.130)
[root@host3 ~]# showmount -e 192.168.74.128 #查看主机1的导出
#没法收到对方RPC的消息
clnt_create: RPC: Unable to receive
#对方主机要放行防火墙[root@host3 ~]# showmount -e 192.168.74.128
clnt_create: RPC: Program not registered #程序未注册
(systemctl start nfs-server)#对方没有启动nfs服务[root@host3 ~]# showmount 192.168.74.另一台主机IP
host on 192.168.74.另一台主机IP:无内容(无意义)(exportfs -r)
[root@host3 ~]# showmount -e 192.168.74.另一台主机IP
Export list for 192.168.74.128:
/nfs *
对面导出来的文件系统(host1) 匹配的客户端[root@host3 ~]# ll /mnt
total 0
drwxr-xr-x. 2 root root 6 Nov 27 22:57 hgfs
[root@host3 ~]# mount 192.168.74.128:/nfs /mnt #挂载主机1的nfs导出[root@host3 ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
192.168.74.128:/nfs 26G 4.5G 22G 18% /mnt[root@host3 ~]# ll /mnt
total 0
[root@host3 ~]# touch /mnt/roottest
touch: cannot touch '/mnt/roottest': Permission denied #无权限(作为root账号,权限被拒绝)
在本地是有的,在网络上面的其他主机上面的root是没有权限写的
因为nfs自动的将其他主机的root用户换成了另外的账号,叫nobody
# 原因:
#65534(nobody)很大,65535是最大值
#所以nobody对/nfs没有写的权限[root@host3 ~]# touch /mnt/roottest #成功创建
主机3的root账号在/mnt挂载底下写的东西,在主机1上会被自动转换成nobody,
为什么转换:
因为主机2是root账号,写的文件如果不转换的话,在主机1看的时候也是root
在主机1看主机2写的文件仍然是root(但此文件不是主机1写的)
主机1分享一个nfs的目录,在这个目录里面写文件的时候,由其他任意主机写
其他任意主机上面的root账号在/mnt这个目录底下写东西的时候,刚开始时没有权限(Permission denied)
因为主机1在写文件的时候,会被/nfs文件系统自动转换为nobody这个账号,nobody这个账号对于/nfs这个目录来讲,没有权限,所以需要赋予权限(chcon o+w /nfs),然后就可以写这个文件touch /mnt/roottest,roottest这个文件的所属者,所属组都是nobody
主机1
[root@host1 ~]# systemctl restart firewalld #启动防火墙[root@host1 ~]# firewall-cmd --permanent --add-service nfs #只需放行nfs即可查看内容(NFSv4版本)
[root@host1 ~]# firewall-cmd --reload #重新载入防火墙配置[root@host1 ~]# ll /nfs
total 0
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:28 roottest
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:58 xixitest
主机2
[root@host2 ~]# df -h /mnt
命令输入后无输出[root@host2 ~]# df -h /mnt
192.168.197.主机1IP:/nfs 44G 4.7G 39G 11% /mnt
能正常刷新出信息[root@host2 ~]# touch /mnt/xixitest
[root@host2 ~]# ll /mnt
total 0
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:28 roottest
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:58 xixitest
1.3.1.3 默认和覆盖选项
每个导出的文件系统的默认值都必须被显式覆盖。
例如,如果没有指定 rw 选项,则导出的文件系统将以只读形式共享。以下是 /etc/exports 中的示例行,其覆盖两个默认选项:
/another/exported/directory 192.168.0.3(rw,async)
在此示例中, 192.168.0.3 可以以读写形式挂载 /another/exported/directory/ ,并且所有对磁盘的写入都是异步的。
1.4 启动 NFS 服务器
启动 NFS 服务器,并使其在引导时自动启动
# systemctl enable --now nfs-server
配置 NFSv4 服务器以在防火墙后面运行
firewall-cmd --permanent --add-service nfs #配置防火墙
firewall-cmd --reload #重新载入防火墙配置
systemctl restart nfs-server # 重启 nfs-server
主机1
[root@host1 ~]# systemctl restart firewalld #启动防火墙[root@host1 ~]# firewall-cmd --permanent --add-service nfs #只需放行nfs即可查看内容(NFSv4版本)
[root@host1 ~]# firewall-cmd --reload #重新载入防火墙配置[root@host1 ~]# ll /nfs
total 0
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:28 roottest
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:58 xixitest
主机2
[root@host2 ~]# df -h /mnt
命令输入后无输出[root@host2 ~]# df -h /mnt
192.168.197.主机1IP:/nfs 44G 4.7G 39G 11% /mnt
能正常刷新出信息[root@host2 ~]# touch /mnt/xixitest
[root@host2 ~]# ll /mnt
total 0
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:28 roottest
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:58 xixitest
NFSv3版本还要放行这两个命令
firewall-cmd --permanent --add-service=rpc-bind --add-service=mountd
1.5 练习
1.5.1 配置 NFS 服务器和客户端挂载
一台主机host1(IP:192.168.74.128)
[root@host1 ~]# vim /etc/exports
[root@localhost ~]# cat /etc/exports
/nfs *(rw)
导出的文件系统 *表示任意主机 rw 读写 [root@host3 ~]# showmount -e 192.168.74.128 #查看主机1的导出
#没法收到对方RPC的消息
clnt_create: RPC: Unable to receive
#对方主机要放行防火墙[root@host1 ~]# systemctl status firewalld #查看防火墙
[root@host1 ~]# systemctl stop firewalld #关闭防火墙[root@host3 ~]# showmount -e 192.168.74.128
clnt_create: RPC: Program not registered #程序未注册
(systemctl start nfs-server)#对方没有启动nfs服务[root@host3 ~]# systemctl status nfs-server #查看nfs服务状态
○ nfs-server.service - NFS server and servicesLoaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; preset: disabled)Active: inactive (dead)
[root@host1 ~]# systemctl start nfs-server #启动nfs服务[root@host3 ~]# showmount -e 192.168.74.128
Export list for 192.168.74.128:
/nfs *[root@host1 ~]# ll /nfs
ls: cannot access '/nfs': No such file or directory
[root@host1 ~]# mkdir /nfs
[root@host1 ~]# exportfs -r # 重新加载/etc/exports 文件[root@host3 ~]# showmount -e 192.168.74.另一台主机IP
Export list for 192.168.74.128:
/nfs *
对面导出来的文件系统(host1) 匹配的客户端[root@host3 ~]# ll /mnt
total 0
drwxr-xr-x. 2 root root 6 Nov 27 22:57 hgfs
[root@host3 ~]# mount 192.168.74.128:/nfs /mnt
[root@host3 ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
192.168.74.128:/nfs 26G 4.5G 22G 18% /mnt[root@host3 ~]# ll /mnt
total 0
[root@host3 ~]# touch /mnt/roottest
touch: cannot touch '/mnt/roottest': Permission denied #无权限(作为root账号,权限被拒绝)[root@host1 ~]# ll /nfs -d
drwxr-xr-x. 2 root root 6 Nov 17 10:19 /nfs #root账户对这个目录有写的权限
在本地是有的,在网络上面的其他主机上面的root是没有权限写的
因为nfs自动的将其他主机的root用户换成了另外的账号,叫nobody
[root@host1 ~]# id nobody
uid=65534(nobody) gid=65534(nobody) groups=65534(nobody
#65534(nobody)很大,65535是最大值
#所以nobody对/nfs没有写的权限[root@host1 ~]# chmod o+w /nfs
[root@host1 ~]# ll /nfs -d
drwxr-xrwx. 2 root root 6 Nov 27 10:18 /nfs
#加的权限rw[root@host3 ~]# touch /mnt/roottest #成功创建[root@host1 ~]# ll /nfs
total 0
-rw-r--r--. 1 nobody nobody 0 Nov 27 10:30 roottest
#默认会把 root 用户创建的文件的所有者和所属组转换 nobody (也就是uid、gid 为 65534的用户 ) 主机3的root账号在/mnt挂载底下写的东西,在主机1上会被自动转换成nobody,
为什么转换:
因为主机2是root账号,写的文件如果不转换的话,在主机1看的时候也是root
在主机1看主机2写的文件仍然是root(但此文件不是主机1写的)
另一台主机host3(IP:192.168.74.130)
[root@host3 ~]# showmount -e 192.168.74.128 #查看主机1的导出
#没法收到对方RPC的消息
clnt_create: RPC: Unable to receive
#对方主机要放行防火墙[root@host3 ~]# showmount -e 192.168.74.128
clnt_create: RPC: Program not registered #程序未注册
(systemctl start nfs-server)#对方没有启动nfs服务[root@host3 ~]# showmount 192.168.74.另一台主机IP
host on 192.168.74.另一台主机IP:无内容(无意义)(exportfs -r)
[root@host3 ~]# showmount -e 192.168.74.另一台主机IP
Export list for 192.168.74.128:
/nfs *
对面导出来的文件系统(host1) 匹配的客户端[root@host3 ~]# ll /mnt
total 0
drwxr-xr-x. 2 root root 6 Nov 27 22:57 hgfs
[root@host3 ~]# mount 192.168.74.128:/nfs /mnt #挂载主机1的nfs导出[root@host3 ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
192.168.74.128:/nfs 26G 4.5G 22G 18% /mnt[root@host3 ~]# ll /mnt
total 0
[root@host3 ~]# touch /mnt/roottest
touch: cannot touch '/mnt/roottest': Permission denied #无权限(作为root账号,权限被拒绝)
在本地是有的,在网络上面的其他主机上面的root是没有权限写的
因为nfs自动的将其他主机的root用户换成了另外的账号,叫nobody
# 原因:
#65534(nobody)很大,65535是最大值
#所以nobody对/nfs没有写的权限[root@host3 ~]# touch /mnt/roottest #成功创建
主机3的root账号在/mnt挂载底下写的东西,在主机1上会被自动转换成nobody,
为什么转换:
因为主机2是root账号,写的文件如果不转换的话,在主机1看的时候也是root
在主机1看主机2写的文件仍然是root(但此文件不是主机1写的)
主机1分享一个nfs的目录,在这个目录里面写文件的时候,由其他任意主机写
其他任意主机上面的root账号在/mnt这个目录底下写东西的时候,刚开始时没有权限(Permission denied)
因为主机1在写文件的时候,会被/nfs文件系统自动转换为nobody这个账号,nobody这个账号对于/nfs这个目录来讲,没有权限,所以需要赋予权限(chcon o+w /nfs),然后就可以写这个文件touch /mnt/roottest,roottest这个文件的所属者,所属组都是nobody
主机1
[root@host1 ~]# systemctl restart firewalld #启动防火墙[root@host1 ~]# firewall-cmd --permanent --add-service nfs #只需放行nfs即可查看内容(NFSv4版本)
[root@host1 ~]# firewall-cmd --reload #重新载入防火墙配置[root@host1 ~]# ll /nfs
total 0
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:28 roottest
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:58 xixitest
主机2
[root@host2 ~]# df -h /mnt
命令输入后无输出[root@host2 ~]# df -h /mnt
192.168.197.主机1IP:/nfs 44G 4.7G 39G 11% /mnt
能正常刷新出信息[root@host2 ~]# touch /mnt/xixitest
[root@host2 ~]# ll /mnt
total 0
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:28 roottest
-rw-r--r--. 1 nobody nobody 0 Nov 17 10:58 xixitest
- 开机自动挂载
/etc/fstab配置文件中自动挂载
[root@141 ~]# vim /etc/fstab
192.168.74.128:/nfs /mnt/ nfs defaults 0 0挂载路径 挂载点 文件系统 挂载选项没有(defaults 0 0)
[root@141 ~]# reboot #保存配置后,重启主机
重启后挂载路径下面还有刚刚的两个文件,则说明自动挂载已成功
[root@host3 ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
192.168.74.128:/nfs 26G 4.5G 22G 18% /mnt
[root@host3 ~]# ll /mnt
total 0
-rw-r--r--. 1 nobody nobody 0 Nov 27 23:30 roottest
-rw-r--r--. 1 nobody nobody 0 Nov 28 12:37 xixitest
将刚刚的操作清理
删除自动挂载
[root@host3 ~]# vim /etc/fstab
dd删除[root@host3 ~]# umount /mnt
[root@host3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 1.7G 0 1.7G 0% /dev/shm
tmpfs 682M 12M 671M 2% /run
/dev/mapper/rhel-root 17G 4.5G 12G 27% /
/dev/nvme0n1p2 960M 293M 668M 31% /boot
/dev/nvme0n1p1 599M 7.0M 592M 2% /boot/efi
tmpfs 341M 56K 341M 1% /run/user/42
tmpfs 341M 40K 341M 1% /run/user/0[root@host3 ~]# ll /mnt
total 0
drwxr-xr-x. 2 root root 6 Nov 27 22:57 hgfs
/etc/rc.d/rc.local配置文件中自动挂载(尽量不在这里面写)
/etc/rc.d/rc.local是遗留下来的方法
[root@host3 ~]# vim /etc/rc.d/rc.local
[root@host3 ~]# chmod a+x /etc/rc.d/rc.local
[root@host3 ~]# cat /etc/fstab #fstab里面没有自动挂载#
# /etc/fstab
# Created by anaconda on Wed Nov 27 14:55:48 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=0e089631-01b3-4f03-8fa3-c1575ef255e5 /boot xfs defaults 0 0
UUID=2F1B-C01E /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/rhel-swap none swap defaults 0 0
[root@host3 ~]# reboot[root@host3 ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
192.168.74.128:/nfs 26G 4.5G 22G 18% /mnt
开机自动挂载成功
[root@host3 ~]# ll /etc/rc.d/rc.local
-rwxr-xr-x. 1 root root 506 Nov 28 13:04 /etc/rc.d/rc.local
做完,删除自动挂载,权限也删除
[root@host3 ~]# chmod a-x /etc/rc.d/rc.local
[root@host3 ~]# ll /etc/rc.d/rc.local
-rw-r--r--. 1 root root 473 Nov 28 13:11 /etc/rc.d/rc.local
为了确保服务在开机后一定可以挂载,确定自动挂载在多个地方出现,则可以在fstab写了后,再到/etc/rc.d/rc.local中写挂载
1.5.2 配置autofs自动挂载(需要时才挂载)
在一般NFS文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以在
/etc/rc.d/rc.local 中设置开机时自动挂载
( /etc/rc.d/rc.local 文件中写入的命令,在每次启动系统用户登录之前都会执行一次);也可以在登录系统后手动
利用mount来挂载。
当客户端在有使用NFS文件系统的需求时才让系统自动挂载。
当NFS文件系统使用完毕后,让NFS自动卸载。
客户端安装autofs软件
dnf install autofs -yautofs 主配置文件
ll /etc/auto.master #软件包安装完成后,多了一个这个文件[root@host1 ~]# vim /etc/auto.master
/mnt/ /etc/auto.nfs
挂载地方 怎么挂载(我们自己单独创建的一个文件,在这个文件中写具体挂载内容)
#要去把nfs服务上面导出的文件系统挂载到mnt目录#具体挂载内容
[root@host3 ~]# vim /etc/auto.nfs
[root@hehe ~]# cat /etc/auto.nfs
guazai 192.168.197.136:/nfs
挂载点(目标) 挂载源(挂载什么东西)
#要去把nfs服务上面导出的文件系统挂载到mnt目录[root@host3 ~]# grep nfs /etc/auto.master
/mnt/ /etc/auto.nfs
#/nfs4 /usr/sbin/fedfs-map-nfs4 nobind
/mnt/ /etc/auto.nfs
检测挂载点(主挂载点) 具体挂载信息 [root@host3 ~]# systemctl restart autofs
[root@host3 ~]# ll /mnt
total 0
[root@host3 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 1.7G 0 1.7G 0% /dev/shm
tmpfs 682M 9.6M 673M 2% /run
/dev/mapper/rhel-root 17G 4.5G 12G 28% /
/dev/nvme0n1p2 960M 293M 668M 31% /boot
/dev/nvme0n1p1 599M 7.0M 592M 2% /boot/efi
tmpfs 341M 56K 341M 1% /run/user/42
tmpfs 341M 40K 341M 1% /run/user/0[root@host3 ~]# cd /mnt/guazai
#再查看挂载的时候,就有 /mnt 了
[root@guazai ~]# df -h [root@guazai ~]# cd[root@host3 ~]# ll /mnt
total 0
drwxr-xrwx.2 rootroot 38 Nov 17 10:58 guazai
#按需要挂载(重启后自动消失,一般存在五分钟)
1.6 废弃实验
- 配置导出目录
[root@128 ~]# mkdir /data #创建一个data文件
[root@128 ~]# chmod 777 /data/
[root@128 ~]# touch /data/testfile
[root@128 ~]# vim /etc/exports #设置导出
[root@128 ~]# cat /etc/exports
/data 192.168.115.141(rw)
指定导出到192.168.115.141
- 配置防火墙放行规则
放行几个服务:
[root@128 ~]# firewall-cmd --permanent --add-service=nfs
success
[root@128 ~]# firewall-cmd --permanent --add-service=mountd (NFSv3)
success
[root@128 ~]# firewall-cmd --permanent --add-service=rpc-bind (NFSv3)
success
[root@128 ~]# firewall-cmd --reload
success
[root@128 ~]# firewall-cmd --list-services
cockpit dhcpv6-client mountd nfs rpc-bind ssh
- 在客户端查看导出的目录
[root@141 ~]# showmount -e 192.168.115.128
Export list for 192.168.115.128:
/data 192.168.115.141
[root@141 ~]# mkdir /nfsclient/client-data/ -p
[root@141 ~]# mount 192.168.115.128:/data /nfsclient/client-data/
[root@141 ~]# df -h /nfsclient/client-data/
Filesystem Size Used Avail Use% Mounted on
192.168.115.128:/data 45G 4.5G 41G 11% /nfsclient/client-data
[root@141 ~]# cd /nfsclient/client-data/
[root@141 client-data]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 17 16:40 testfile
[root@141 client-data]# touch caicaikan
[root@141 client-data]# ll
total 0
-rw-r--r--. 1 nobody nobody 0 Mar 17 17:05 caicaikan #远程root
-rw-r--r--. 1 root root 0 Mar 17 16:40 testfile #本地root
相关文章:
RHCE NFS
RHCE NFS 1.11. 2 NFS 主机名格式1.3 NFS 服务器配置1.3.1 /etc/exports 配置文件1.3.1.1 导出条目1.3.1.2 默认选项1.3.1.3 默认和覆盖选项 1.4 启动 NFS 服务器1.5 练习1.5.1 配置 NFS 服务器和客户端挂载1.5.2 配置autofs自动挂载(需要时才挂载) 1.6 …...
【数据结构】ArrayList与顺序表
ArrayList与顺序表 1.线性表2.顺序表2.1 接口的实现 3. ArrayList简介4. ArrayList使用4.2 ArrayList常见操作4.3 ArrayList的遍历4.4 ArrayList的扩容机制 5. ArrayList的具体使用5.1 杨辉三角5.2 简单的洗牌算法 6. ArrayList的问题及思考 【本节目标】 线性表顺序表ArrayLis…...
互联网基础
TCP/IP协议(协议组) 分层名称TCP/IP协议应用层HTTP,FTP,mDNS,WebSocket,OSC...传输层TCP,UDP网络层IP链路层(网络接口层)Ethernet,Wi-Fi... 链路层(网络接口层) 链路层的主要作用…...
ffmpeg.js视频播放(转换)
chrome 临时设置SharedArrayBuffer "C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-featuresSharedArrayBuffer 引用的js及相关文件 ffmpeg.min.js ffmpeg.min.js.map ffmpeg-core.js ffmpeg-core.wasm ffmpeg-core.worker.js 以上几个现…...
后端 Java发送邮件 JavaMail 模版 20241128测试可用
配置授权码 依赖 <dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.5.5</version> </dependency> <dependency><groupId>com.sun.mail</groupId><artifa…...
电脑中的vcruntime140_1.dll文件有问题要怎么解决?一键修复vcruntime140_1.dll
遇到“vcruntime140_1.dll无法继续执行代码”的错误通常表明电脑中的vcruntime140_1.dll文件有问题。这个文件属于Visual C Redistributable,对很多程序的运行至关重要。本文将提供几个步骤,帮助你迅速修复这一错误,使电脑恢复正常工作状态。…...
探索 Vue 3.0中Treeshaking特性?
Vue 3.0 中的 Tree Shaking 特性 Tree Shaking 是一种优化技术,旨在通过静态分析代码,去除未使用的模块或函数,从而减小最终的打包文件大小。在 Vue 3.0 中,由于其模块化设计和代码按需引入的特性,Vue 的 Tree Shaking 特性得到了增强,能够有效地去除那些在生产环境中未…...
Paddle Inference部署推理(十)
十:Paddle Inference推理 (python)API详解 9. 启用内存优化 API定义如下: # 开启内存 / 显存复用,具体降低内存效果取决于模型结构 # 参数:None # 返回:None paddle.inference.Config.enable…...
万能门店小程序管理系统 doPageGetFormList SQL注入漏洞复现
0x01 产品简介 万能门店小程序管理系统是一款功能强大的工具,旨在为各行业商家提供线上线下融合的全方位解决方案。是一个集成了会员管理和会员营销两大核心功能的综合性平台。它支持多行业使用,通过后台一键切换版本,满足不同行业商家的个性化需求。该系统采用轻量后台,搭…...
全面+彻底解决VMware安装后没有VMnet1和VMnet8的问题
目录 1、摘要 (1)问题 (2)所用工具 ① Everything软件 ② CCleaner软件 2、问题的检查与确认 3、解决过程 (1)卸载已经安装的VMware (2)设置services.mcs:服务自…...
什么是堆?
堆(Heap):堆可以看做是一颗用数组实现的二叉树,所以它没有使用父指针或者子指针。堆根据“堆属性”来排序,“堆属性”决定了树中节点的位置。 堆的特性 1.堆是完全二叉树,除了树的最后一层节点不需要是满的…...
微距动物和植物摄影后期森系风格Lr调色教程,手机滤镜PS+Lightroom预设下载!
调色教程 微距动物和植物摄影后期采用森系风格的 Lightroom 调色,将微距下的动植物世界打造成充满自然气息和梦幻感的画面。这种调色风格旨在突出动植物的细腻之美,同时营造出宁静、清新的森林氛围。 预设信息 调色风格:森系风格预设适合类…...
Qt6.8安卓Android开发环境配置
时隔多年,重拾QtCreator下Android开发。发现Qt6下安卓开发环境配置变简单不少!只需三步即可在QtCreator下进行Android开发: 一、使用Qt Mantenance Tool进行Android模块的安装: 如果感觉安装网速较慢,可以查看本人另外…...
RK3568部署yolo8记录
本教程记录自己一下在RK3568上部署yolo8的步骤 板端驱动 在板端,首先查看rknpu驱动是否安装、存在。若键入下面的命令有返回则,证明驱动已安装。 dmesg | grep -i rknpu 瑞芯微官方说,驱动版本最好大于0.9.2。但是我看有的博主说ÿ…...
数据可视化复习2-绘制折线图+条形图(叠加条形图,并列条形图,水平条形图)+ 饼状图 + 直方图
目录 目录 一、绘制折线图 1.使用pyplot 2.使用numpy 编辑 3.使用DataFrame 编辑 二、绘制条形图(柱状图) 1.简单条形图 2.绘制叠加条形图 3.绘制并列条形图 4.水平条形图 编辑 三、绘制饼状图 四、绘制散点图和直方图 1.散点图 2…...
JavaScript原生深拷贝方法 structuredClone使用
structuredClone 简介 structuredClone 是现代浏览器提供的原生 JavaScript 方法,用于深拷贝对象。它可以处理各种复杂数据结构,包括嵌套对象、数组、Date、Map、Set 等,且支持循环引用。 语法 const clone structuredClone(value);value:…...
SpringBoot无法使用jkd8问题
1. 解决SpringBoot无法使用jdk8问题 创建一个高 jkd 版本,如 jkd21 在创建项目后,将 pom.xml中的 jdk 版本改为8,找到下图所在位置修改即可。 此外将 SpringBoot 的版本修改为 2 开头的 如2.7.4 ,然后 刷新 Maven 项目即可。 在 …...
使用 Jina Embeddings v2 在 Elasticsearch 中进行后期分块
作者:来自 Elastic Gustavo Llermaly 在 Elasticsearch 中使用 Jina Embeddings v2 模型并探索长上下文嵌入模型的优缺点。 在本文中,我们将配置和使用 jina-embeddings-v2,这是第一个开源 8K 上下文长度嵌入模型,首先使用 semant…...
QT简易项目 数据库可视化界面 数据库编程SQLITE QT5.12.3环境 C++实现
案例需求: 完成数据库插入,删除,修改,查看操作。 分为 插入,删除,修改,查看,查询 几个模块。 代码: widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget…...
python json.dump()和json.dumps()的区别
用人话总结一下 json.dump()是针对文件的json和python的转换 json.dumps()主要是针对内容数据 json.dumps(obj, skipkeysFalse, ensure_asciiTrue, check_circularTrue, allow_nanTrue, clsNone, indentNone, separatorsNone, encoding“utf-8”, defaultNone, sort_keysFalse…...
网络流学习笔记
注:笔者是蒟蒻,所以本文几乎是干货,枯燥无味甚至可能会引人不适,请读者谨慎阅读。 为了笔者快爆掉的肝点个赞好吗??? Part.1 网络流基础定义 一个有向带权图 G ( V , E ) G(V,E) G(V,E) 是…...
Mybatis PLUS查询对List使用OR模糊查询
Mybatis PLUS查询对List使用OR模糊查询 1、版本2、代码3、效果 1、版本 Mybatis PLUS版本:3.5.7 注意:版本3.1.2及以下是需要return的 因当前为高版本,代码中已将 return 注释。 2、代码 QueryWrapper<Object> queryWrapper new Que…...
Debezium日常分享系列之:Debezium Engine
Debezium日常分享系列之:Debezium Engine 依赖打包项目在代码中输出消息格式消息转换消息转换谓词高级记录使用引擎属性异步引擎属性数据库模式历史属性处理故障 Debezium连接器通常通过部署到Kafka Connect服务来运行,并配置一个或多个连接器来监视上游…...
I.MX6U 裸机开发20. DDR3 内存知识
I.MX6U 裸机开发20. DDR3 内存知识 一、DDR3内存简介1. DDR发展历程SRAMSDRAMDDR1DDR2DDR3DDR4DDR5 2. 开发板资源3. DDR3的时间参数1. 传输速率2. tRCD3. CL 参数作用取值范围工作原理4. tRC参数原理单位与取值5. tRAS重要性及作用 二、I.MX6U MMDC 控制器1. MMDC简介…...
【R安装】VSCODE安装及R语言环境配置
目录 VSCODE下载及安装VSCODE上配置R语言环境参考 Visual Studio Code(简称“VSCode” )是Microsoft在2015年4月30日Build开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器&…...
ES更新问题 Failed to close the XContentBuilder异常
问题描述 使用RestHighLevelClient对文档进行局部更新的时候报错如下: Suppressed: java.lang.IllegalStateException: Failed to close the XContentBuilderat org.elasticsearch.common.xcontent.XContentBuilder.close(XContentBuilder.java:1011)at org.elast…...
svn-git下载
windows: svn 客户端:-------------- TortoiseSVN 安装 下载地址:https://tortoisesvn.net/downloads.html, 页面里有语言包补丁的下载链接。 目前最新版为 1.11.0 下载地址: https://osdn.net/projects/tortoisesvn/storage/1.…...
10个Word自动化办公脚本
在日常工作和学习中,我们常常需要处理Word文档(.docx)。 Python提供了强大的库,如python-docx,使我们能够轻松地进行文档创建、编辑和格式化等操作。本文将分享10个使用Python编写的Word自动化脚本,帮助新…...
Paddle Inference部署推理(十八)
十八:Paddle Inference推理 (C)API详解 3. 使用 CPU 进行预测 注意: 在 CPU 型号允许的情况下,进行预测库下载或编译试尽量使用带 AVX 和 MKL 的版本 可以尝试使用 Intel 的 MKLDNN 进行 CPU 预测加速,默…...
Redis开发02:redis.windows-service.conf 默认配置文件解析与注解
文件位置:redis安装目录下的 redis.windows-service.conf ,存放了redis服务的相关配置,下面列举出默认配置的含义: 配置项含义bind 127.0.0.1限制 Redis 只监听本地回环地址,意味着只能从本地连接 Redis。protected-m…...
如何做攻击类型网站/营销文案
首先讲解一下栈帧的概念: 从逻辑上讲,栈帧就是一个函数执行的环境:函数参数、函数的局部变量、函数执行完后返回到哪里等等。实现上有硬件方式和软件方式(有些体系不支持硬件栈)首先应该明白,栈是从高地址向低地址延伸的。每个函数…...
怎么做个人网站/域名注册网站有哪些
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 什么是 Deque Deque 是 Double ended queue (双端队列) 的缩写,读音和 deck 一样,蛋壳。 Deque 继承自 Queue,直接实现了它的有 LinkedList, ArayDeque, ConcurrentLinkedDeque 等。 Dequ…...
搜索推广网站哪家做的最好/识图找图
springboot 中如何使用elasticsearch ingest-attachment 我这里 是默认你 springboot 集成了 elasticsearch 的,如果没有 你自己先去完成 集成,这不多说了 默认你已经建好了通道 1.写上传也页面 略; 2 .上代码(这里直白的讲解&…...
莱州网站建设公司电话/网站打开速度优化
教程目录1.手把手教你从零写一个简单的 VUE2.手把手教你从零写一个简单的 VUE--模板篇 Hello,我又回来了,上一次的文章教会了大家如何书写一个简单 VUE,里面实现了VUE 的数据驱动视图渲染模板,更新到页面的过程,简单的…...
企业app定制开发公司/seo网络营销推广公司深圳
试验网站#3搜索引擎优化收录情况记录日期Yahoogooglebaidusogou每日收录每日收录增量每日收录每日收录增量每日收录每日收录增量每日收录每日收录增量2007-7-7迁移至不限带宽的服务器,地理位置在美国2007-7-193650 1 6 0 2007-7-253703531141132216002007-7-263705…...
外贸led网站建设/百度热搜seo
在本教程中,我们将添加一个功能 - 我们将只能订阅一部分消息。例如,我们只能将重要的错误消息导向日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息 绑定 在前面的例子中,我们已经创建了绑…...