一 yum原理
1 客户端 根据配置文件 找到 服务端
2 客户端将元信息下载到本地 (元信息:安装包位置,以及安装的依赖关系。)
3 根据元信息 去下载 对应的安装包 到本地 ,然后安装。
4安装完成后 再删除(需要时间) 安装包。
yum配置文件及命令
1 /etc/yum.conf //yum主配置文件
2 /etc/yum.repos.d/*.repo //yum仓库文件位置,可以切换看看
写错一个字母就不行,可以ping www.google.com 测试网络
3 / var/log/yum.log //日志文件,也可cat直接看看
二 yum命令
1 [root@localhost ~]# yum list httpd/tree/bind
2 [root@localhost ~]# yum info httpd 单个具体信息
3 [root@localhost ~]# yum search ftp 模糊查找
4 [root@localhost Packages]#yum provides httpd-tools #查询某个程序来源于那个安装包
[root@localhost ftp]# ll /etc/mime.types
[root@localhost ftp]#yum provides */mime.types
[root@localhost ~]#yum whatprovides ftp
5 yum grouplist [包组名] 查看指定的安装包组,不加包组名就显示所有安装包组
[root@localhost ~]# yum group list
6 yum groupinfo <包组名> 显示指定安装包组的详细信息
[root@localhost ~]# yum groupinfo "GNOME Desktop"
7 yum groupinstall <包组名>
[root@localhost ~]# yum group install gnome desktop -y
#如无法使用请先升级,再安装
yum -y upgrade
yum -y groups install "GNOME Desktop"
8 [root@localhost yum.repos.d]# yum upgrade
更新包组,可以单个也可以全部 后面加具体包组名称就是单个更新,不加就是全部更新
9 [root@localhost yum.repos.d]# yum groupupdate
组包更新和单个安装包更新差不多此处不举例子赘述。
10 [root@localhost yum.repos.d]# yum remove httpd
卸载已安装的软件必须加软件名
11 yum history 可用yum history查看yum安装的历史记录
-
#如果后悔卸载该软件,可以使用该命令重新安装一遍 #yum history redo 6
-
查看第六次yum具体安装的信息 #yum history info 6
三 yum额外功能
1 将epel源下载到本地
没有外网 又想使用这个epel源 ,也可安装其他源,如阿里源、腾讯源等,然后再下载到本地目录
- [root@localhost ~]#yum install epel-release 安装epel源,生成epel仓库文件
- [root@localhost ~]# reposync -r epel -p /data/ 下载同步epel源到本地目录
2 自行打包后建立元数据
3 离线安装软件
①在可以上网的主机上下载该软件的安装包,然后将安装包及其依赖关系下载到指定的文件夹下
②然后将该文件夹打包,通过NFS、FTP等文件传输工具共享给离线的主机,该离线的主机就可 以安装软件了
[root@localhost ~]#yum install -y nginx #能上网的主机
[root@localhost ~]#yum install nginx --downloadonly --downloaddir=/data/
只下载相关包至data目录
4 升级内核
[root@localhost ~]#yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm #安装内核源
[root@localhost ~]#cd /etc/yum.repos.d
[root@localhost yum.repos.d]#vim elrepo.repo
[elrepo-kernel]
enabled=1 #打开内核库
[root@localhost yum.repos.d]#uname -r #查看当前内核版本
[root@localhost yum.repos.d]#yum list *kernel* #查看内核库里所有的版本的内核
[root@localhost yum.repos.d]#yum install -y kernel-lt.x86_64
#复制你选定的内核版本下载更新即
[root@localhost ~]#ls /boot #查看是否生成新版本的内核文件
四 NFS共享概念
1 使用场景
文件共享:NFS存储可以将存储设备中的文件共享给其他计算机,从而方便了文件的共享和协作
数据备份:NFS存储可以用于数据备份,将数据备份到NFS存储设备中,从而实现数据的冗余存 储和灾备恢复
数据存储:NFS存储可以用于数据存储,将数据存储到NFS存储设备中,从而实现数据的集中管 理和统一访问
网络文件系统
基于内核的文件系统。Sun 公司开发,通过使用 NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,基于RPC(Remote Procedure Call Protocol 远程过程调用)实现。
区别
ftp协议仅仅能传输文件资料不能修改对方主机的资料数据,nfs协议应运而生
nfs协议可以把多台虚拟机挂载到本地目录或者说也可远程多台虚拟机进行数据交互
优点
采用TCP/IP传输网络文件 安全性低 简单易操作 适合局域网环境
节省本地存储空间,将常用的数据如:/home 目录,存放在NFS服务器上且可以通过网络访问,将减少本地磁盘的使用率。
缺点
- 性能:NFS存储的性能受到网络带宽和延迟的影响,因此在高延迟和低带宽的网络环境中,可能会出现性能问题
- 可靠性:NFS存储的可靠性受到网络连接的影响,如果网络连接不稳定,可能会导致存储共享的不可靠性。
- 明文传输,安全性低
- win不能与Linux交互,历史使命交给我
工作原理
NFS通过将文件共享给其他计算机,使得不同计算机之间的文件共享变得更加容易。它使用RPC协议进行通信,使用缓存技术和文件锁定机制提高文件访问的效率和可靠性
①NFS服务器将共享的文件和目录挂载到其文件系统中的特定位置
②NFS客户端通过网络访问NFS服务器共享的文件和目录。客户端可以像访问本地文件系统一样访问这些共享文件和目录
③当NFS客户端需要访问共享的文件或目录时,它会向NFS服务器发送RPC调用请求,NFS服务器会响应这些请求并返回所请求的数据
软件包:nfs-utils (包括服务器端和客户端)
NFS服务器软件:
nfsd:Linux系统中内置的NFS服务器软件,负责提供NFS共享服务,端口号不固定
FreeNFS:一个开源的Windows NFS服务器软件,用于在Windows系统上提供NFS共享服务
NFS客户端软件:
nfs-utils:包含了Linux系统上的NFS客户端工具,如mount.nfs和umount.nfs等
Windows Services for UNIX:这个软件包含了Windows系统上的NFS客户端工具,允许Windows系统连接到NFS共享
rpcbind软件:
当一个RPC服务启动时,rpcbind会为其分配一个唯一的端口号(111),并在本地的映射表中进行记录
端口号查询: 当客户端需要调用远程RPC服务时,它可以向rpcbind查询目标服务的端口号,以便建立连接
NFS服务主要进程:
-
rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
-
rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
-
rpc.lockd 非必要,管理文件锁,避免同时写出错
-
rpc.statd 非必要,检查文件一致性,可修复文件
日志:/var/lib/nfs/
NFS配置文件
/etc/exports 或 /etc/exports.d/*.exports
exportfs:用于管理NFS导出的文件系统
showmount:显示NFS服务器加载的信息
-e 示服务器上所有的共享目录
五 搭建NFS共享存储服务配置
实验条件:服务端/客户端 都需要 nfs-utils rpcbind来支持NFS共享
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭临时防护
1 服务端IP 192.168.11.10
2 客务端IP 192.168.11.9
3 测试一下
服务端
客户端
六 客户端使用权限
客户端默认权限为只读模式,也就是说不配置客户端的读写权限,客户端就无法创建、修改文件
1 权限参数
#exportfs -v
权限参数 | 说明 |
---|---|
ro | 只读模式(默认) |
rw | 读写模式 |
当NFS 客户端使用 root 用户访问时,映射为 NFS 服务端的匿名用户 | |
当NFS客户端使用 root 用户访问时,映射为NFS 服务端的 root 用户 | |
不论 NFS 客户端使用任何帐户,均映射为 NFS 服务端的匿名用户 | |
同时将数据写入到内存与硬盘中,保证不丢失数据 | |
优先将数据保存到内存,然后再写入硬盘,效率更高,但可能造成数据丢失 | |
若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认) | |
即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率 | |
指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用 |
2 读写权限
配置dns软件的读写权限
[root@localhost mcb1]# vim /etc/exports
3 客户端创建文件都指向同一属主 属组
如何将客户端新建文件都指定同一用户,需要设置anonuid 和 anongid
指明客户端用户映射为特定用户UID和组GID,而非其他用户,可配合all_squash使用
①服务端操作:首先创建一个新用户并指定uid号
②服务端操作:修改配置文件
③ 验证,查看权限是否设置成功
七 访问不同服务器提供相同的服务
八 小火车
①yum install epel-rpm-macros.noarch 先装额外源
②[root@localhost ~]#yum install sl -y
①[root@localhost ~]#ls -a