软件包管理器以及NFS

news2024/12/27 13:39:48

一.YUM

1.1 YUM介绍

学习YUM 软件仓库,可以完成安装、卸载、自动升级 rpm 软件包等任务,能够自动 查找并解决 rpm 包之间的依赖关系,而无须管理员逐个、手工地去安装每个 rpm 包,使管 理员在维护大量 Linux 服务 器时更加轻松自如。特别是在拥有大量 Linux 主机的本地网络中, 构建一台“源”服务器可以大大缓解软 件安装、升级等对 Internet 的依赖。 YUM 的前身是 YUP(Yellow dog Updater,Yellow dog Linux 的软件更新器),最初由 TSS 公司 (Terra Soft Solutions,INC.)使用 Python 语言开发而成,后来由杜克大学(Duck University)的 Linux 开发队伍进行改进,命名为 YUM(Yellow dog Updater,Modified)。 要成功使用 YUM 机制来 更新系统和软件,需要有一个包含各种 rpm 安装包文件及其依 赖软件的软件仓库(repository),提供 软件仓库的服务器也称为“源”服务器。在客户机中只 要正确指定软件仓库的地址等信息,就可以通过对 应的“源”服务器来安装或更新软件

1.2 YUM源的提供方式

1.2.1 配置本地源仓库

cd /etc/yum.repos.d/

vim local.repo [local] #仓库类别

name=local #仓库名称

baseurl=file:///mnt #指定URL 访问路径为光盘挂载目录

enabled=1 #开启此yum源,此为默认项,可省略

gpgcheck=0 #不验证软件包的签名

mount /dev/sr0 /mnt #把光盘挂载到/mnt目录下(前提虚拟机是光盘挂载)

##清理yum缓存并更新

yum clean all && yum makecache

###检查

yum repolist

1.2.2 配置ftp源

主要是思路

服务器配置:

1)安装vsftpd服务端软件

2)创建并制作yum远程ftp站点的源

3)启动ftp服务

rpm -qa|grep vsftpd

yum -y install vsftpd

mkdir /var/ftp/centos7   #创建挂盘挂载目录

mount /dev/sr0 /mnt    #镜像挂载

cp -rf /mnt/* /var/ftp/centos7/ & mkdir /var/ftp/other # 创建目录repodata 数据文件

cd /var/ftp/other/

createrepo -g /mnt/repodata/repomd.xml ./ #工具建立仓库数据文件

systemctl start vsftpd

 客户端配置:

1)创建远程yum源的配置文件

2)yum安装软件验证结果

客户端配置:

vi /etc/yum.repos.d/centos7.repo

[root@kgc14 yum.repos.d]# cat centos7.repo

[centos7] #仓库类别

name=centos7 #仓库名称(说明)

baseurl=ftp://192.168.10.17/centos7 #URL 访问路径

enabled=1 #启用此软件仓库

gpgcheck=1 #验证软件包的签名

gpgkey=ftp://192.168.10.17/centos/RPM-GPG-KEY-CentOS-7 #GPG 公钥文件的位置

[other]

name=centos7

baseurl=ftp://192.168.10.17/other

enabled=1 #启用此软件仓库

gpgcheck=0 #验证软件包的签名

1.2.3 配置http服务源

我们需要安装http服务,所以我们需要先搭建一个本地源

#首先创建一个文件用来挂载镜像

yum -y install httpd

mkdir /var/www/html/centos7 #创建镜像目录

mount /dev/sr0 /mnt #镜像挂载

cp -rf /mnt/* /var/www/htmlcentos7/ & #拷贝镜像文件

mkdir /var/www/html/other # 创建目录repodata 数据文件

生成 YUM 源索引:进入软件包所在目录,使用 createrepo 命令生成 YUM 源所需的索引文件: createrepo /var/www/html/centos7

这将在 /var/www/html/centos7 目录下生成一个名为 repodata 的子目录,里面包含有关软件包的索引信息。

[root@benet23 yum.repos.d]# cat centos7.repo

这就是http源,照着做就行,就修改ip即可,其他不要变

[centos7] name=centos7 #我们yum 源命名

baseurl=http://192.168.10.22/centos7 #是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件

enabled=1 #启用yum源,0为不启用,1为启用

gpgcheck=1 #检查GPG-KEY,0为不检查,1为检查

gpgkey=http://192.168.10.22/centos7/RPM-GPG-KEY-CentOS-7

[other]

name=centos7

baseurl=http://192.168.10.22/other

enabled=1

gpgcheck=0

下面3个命令 按顺序执行一遍

yum clean all #清除yum缓存

yum makecache #缓存本地yum源中的软件包信息

yum repolist #查看源软件包

正常情况呢,就是执行yum repolist以后有我们定义的http源名称,且有相应的数量,如果数量为0,则哪 个步骤出问题了。

1.3 EPEL

EPEL,‌全称Extra Packages for Enterprise Linux,‌是一个由Fedora社区打造,‌为RHEL及其衍生发行版如CentOS、‌Scientific Linux等提供高质量软件包的项目。‌它相当于添加了一个第三方源,‌里面包含了许多基本源里没有的软件,‌可以自动配置yum的软件仓库。‌安装上EPEL源后,‌就可以直接用yum来安装软件,‌而且EPEL不会替换原有的源,‌安装后会产生新的repo。‌EPEL更多地使用了与Fedora相同的基础架构,‌包括构建系统、‌Bugzilla的实例、‌更新管理器、‌镜子管理,‌因此兼容性比较好。‌简而言之,‌EPEL为Linux系统提供了额外的软件包资源,‌丰富了软件生态‌。‌

二.NFS共享储存服务

NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之 间可以共享文件或目录。

1.1 为什么要使用共享存储

1.实现多台服务器之间数据共享

2.实现多台服务器之间数据一致

1.2 NFS应用场景

实际应用中,共享存储是重要的组成部分。如果没有共享存储,网站就变成了单点的架构

应用场景1——集群没有共享存储

1、A用户上传图片经过负载均衡,负载均衡将上传请求调度至WEB1服务器上。

2、B用户访问A用户上传的图片,此时B用户被负载均衡调度至WEB2上,因为WEB2上没有这张图片, 所以B用户无法看到A用户传的图片。

应用场景2——集群有共享存储

1、A用户上传图片无论被负载均衡调度至WEB1还是WEB2, 最终数据都被写入至共享存储。

2、B用户访问A用户上传图片时,无论调度至WEB1还是WEB2,最终都会上共享存储访问对应的文件, 这样就可以访问到资源了。

1.3 NFS实现原理

1、假如访问的是NFS客户端,先调用不同的函数(例如Read()函数,读功能、Write()函数,写功能、 Create()函数,创建功能、Remove()函数、删除功能、Rename()函数,重命名功能)对数据进行处理。

2、调用完函数后,首先NFS客户端会建立TCP连接,通过TCP/IP的方式传递给NFS服务端,连上远端的 服务器。

3、接着NFS服务端接收到请求后,NFS服务器会做3步系列操作(环环相扣,先映射端口,然后验证是 否能登录服务器,最后验证文件使用权限),如下: 首先,调用portmap进程进行端口映射。 接着,调用Rpc.nfsd进程来验证NFS客户端是否拥有对应的权限连接NFS服务端。 最后,调用Rpc.mount进程来验证客户端是否拥有对应的文件使用权限;

4、Portmap进程实现用户映射和压缩

5、最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。

1.4 NFS文件共享系统实验步骤

#配置思路

1、安装nfs和rpcbind软件

2、修改配置文件设置共享

3、创建共享目录

4、开启服务

5、客户端验证共享目录可访问

rpm -q rpcbind nfs-utils

yum install -y nfs-utils rpcbind

vim /etc/exports #NFS 的配置文件为/etc/exports,文件内容默认为空(无任何共享)

/opt/web 192.168.10.0/24(rw,sync,no_root_squash)

常用选项:

rw 表示允许读写

ro 表示为只读

sync 表示同步写入到内存与硬盘中

no_root_squash 表示当客户机以root身份访问时赋予本地root权限(默认是

root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限

root_squash 表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户

其它常用选项:

all_squash 所有访问用户都映射为匿名用户或用户组

async 将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据

subtree_check(默认) 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限

no_subtree_check 即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可

以提高效率

systemctl start rpcbind //需要先启动rpc服务,因为nfs要向rpc注册端口

systemctl start nfs

systemctl enable rpcbind

systemctl enable nfs

[root@localhost web]# netstat -anpu | grep rpc

udp 0 0 0.0.0.0:111 0.0.0.0:*

24525/rpcbind

[root@localhost web]# rpcinfo -p localhost //查看nfs向rpc注册的端口信息

program vers proto port service

100000 4 tcp 111 portmapper

100000 3 tcp 111 portmapper

100000 2 tcp 111 portmapper

100000 4 udp 111 portmapper

100000 3 udp 111 portmapper

100000 2 udp 111 portmapper

100024 1 udp 55627 status

……

[root@localhost web]# exportfs -v //验证结果

/web

192.168.245.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squ

ash,no_all_squash)

exportfs -r //刷新结果

[root@localhost web]# showmount -e localhost //验证共享

Export list for localhost:

/web 192.168.245.0/24

切换到客户端:

[root@localhost ~]# yum install -y nfs-utils rpcbind

[root@localhost ~]# showmount -e 192.168.10.17 //客户端验证共享

Export list for 192.168.245.100:

/web 192.168.245.0/24

[root@localhost ~]#

[root@localhost ~]#

[root@localhost ~]# yum -y install httpd

[root@localhost ~]# mount -t nfs 192.168.10.17:/web /var/www/html //将共享目录

挂载到网页目录

[root@localhost ~]# systemctl start httpd //启动web服务

[root@localhost ~]# curl 127.0.0.1 //成功访问主页内容

hello world!

[root@localhost ~]# echo "this is kgc " >> /var/www/html/index.html //客户端修

改主页文件

[root@localhost web]# cat index.html //服务器端会同步

this is kgc

nihao

同理可得,服务端写入或修改内容,客户端也会同步

df -h #查看挂载情况

修改/etc/fstab实现自动挂载:

192.168.10.17:/opt/web /var/www/html nfs defaults,_netdev 0 0

defaults,_netdev说明这是一个网络设备

注意:NFS 客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端 NFS 服务突然间停

掉了,那么在客户端就会出现执行 df -h 命令卡死的现象。这个时候使用 umount 命令是无法直接卸载

的,需要加上 -lf 才能卸载

-l 表示解除正在繁忙的文件系统,-f 表示强制。

[root@localhost web]# systemctl stop nfs //服务器端模拟nfs挂掉

[root@localhost ~]# umount /var/www/html //客户端卸载时会卡住

^C

[root@localhost ~]# umount -lf /var/www/html //加lf参数成功卸载

其他nfs文件:

/var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值

/var/lib/nfs/xtab 记录曾经登录过的客户端信息

三.tcpdump

抓包工具 iptables tcpdump

tcpdump option proto dir type 选项 协议 数据的方向 抓取的数据类型

proto(协议):

1. tcp udp icmp

2. ip ipv6 3. arp

dir(方向):

1. src 192.168.91.100 只抓取 源地址是 91.100

2. dst 192.168.91.101 只抓取目的地址是 91.101

3. src 192.168.91.100 and dst 192.168.91.101 只100 到101

type(类型)

1. host 主机

2. net 网段

3. port 端口

4. port range 端口范围

[root@localhost ~]#tcpdump -i ens33

输出格式讲解:

第一列:时分毫秒 11:53:55.288476 

第二例:网络协议ip

第三列:发送方IP地址+端口号 ip地址:192.168.91.1 端口号:47496 >表示数据流向

第四列:主机名协议 主机名:localhost.localdomain 协议:ssh

第五列: seq号 ack号 win窗口长度 tcp的标志位

1.1 过滤规则

1.1.1 基于ip地址/网段过滤

host选项

主机2 ping 主机1

[root@localhost data]#tcpdump -i ens33 host 192.168.126.101

#只关心 和 192.168.126.101 有关的流量

dst 选项 目的地址

src 选项 源地址

net 选项

tcpdump net 网段/24

[root@localhost ~]#tcpdump net 192.168.91.0/24 -i ens33

控制方向 [root@localhost ~]#tcpdump -i ens33 src net 192.168.91.0/24

[root@localhost ~]#tcpdump -i ens33 dst net 192.168.91.0/24

1.1.2基于端口过滤

port 端口号 tcpdump port 80

[root@localhost ~]#tcpdump -i ens33 port 80

[root@localhost ~]#tcpdump -i ens33 port 80 or port 22

#80 和 22 端口

[root@localhost ~]#tcpdump -i ens33 src port 80 or port 22

[root@localhost ~]#tcpdump -i ens33 dst port 80 or port 22

范围端口

[root@localhost ~]#tcpdump -i ens33 portrange 80-8080 

[root@localhost ~]#tcpdump -i ens33 src portrange 80-8080

[root@localhost ~]#tcpdump -i ens33 dst portrange 80-8080

1.1.3 基于协议

protocal 协议种类:ip arp icmp tcp udp

应用层协议不可以直接抓取

[root@localhost ~]#ping www.baidu.com

[root@localhost ~]#tcpdump -i ens33 icmp

1.2 常见参数

-i 指定监听网络监听端口

-w 将捕获信息保存到文件中,且不分析核打印在屏幕上

-r 读取上面存储的文件

-n 不把ip转换成域名,直接显示ip

-nn 直接显示ip和端口号

-t 在每行的输出中,不显示时间

-tt 输出一个时间戳

时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。

-ttt 每行之间的时间间隔

-tttt 详细日期

-v 产生详细的输出

-c 指定收取数据包的数量

-C 需要与w 配合使用 指定单个文件的大小 百万字节

-Q 过滤数据包的方向 in out inout

-q 简洁的输出

-D 显示所有可用的列表

-s 指定数据包的大小

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2046167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MS Visual Studio使用ACLLib库

目录 前言 二、MS Visual Studio使用ACLLib库 1.拿到库文件 2.新建VS项目 1)打开VS Studio 2)新建Windos 桌面向导文件 3)创建 4)选择空项目 5) 新建main.c文件 3.将得到的acllib.c 与 acllib.h文件复制到项目…

HNU-2024计算机系统-小班讨论6

写在前面: 本次讨论课的选题主要围绕着程序性能优化章节中的分支预测部分,我个人感觉这板块是CSAPP教材中最不好理解的部分,需要大家多看教材,多讨论分析。 本文所有题目由全组同学共同完成,感谢每一位同学的支持与付…

【C++】序列与关联容器(二)序列容器

【C】序列与关联容器(二)序列容器 一、C 标准库中的序列容器模板二、array 容器模板三、vector元素模板 一、C 标准库中的序列容器模板 每种容器的实现方法的难易不同,特性不同,适用的应用场景不同 array :元素个数固…

11.4.软件系统分析与设计-算法的分析与设计

算法的分析与设计 涉及到的考点: C语言数据结构(树、链表)–考的不多时间复杂度和空间复杂度的计算排序算法四大经典算法 程序设计语言的基本成分 数据成分:指一种程序设计语言的数据和数据类型。数据分为常量(程序运行时不可改变&#x…

让IP实现https访问的方法

IP SSL证书是主要保护公网ip地址的一种专属信任SSL证书,相比而言IP SSL证书体现的定位很明确。 IP SSL证书是一种数字证书,用于保护网络服务器和网络浏览器之间的通信。它是由受信任的证书颁发机构(CA)颁发的安全套接字层(SSL)证书。证书用于验证服务器…

day 26网络编程—协议

1、协议:通信双方约定的一套标准 2、国际网络通信协议标准: 1.OSI协议: 应用层 发送的数据内容 表示层 数据是否加密 会话层 是否建立会话连接 传输层 数据传输的…

丑数的计算

丑数 就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:n 6 输出:true 解释:6 2 3 示…

Linux---DHCP和FTP(原理+实操)

文章目录 DHCP和FTP(原理实操)DHCP使用DHCP(自动分配IP)的好处分配方式租约过程第一次重新登录更新租约DHCP服务可分配的地址信息主要包括 DHCP安装和配置实验目的实验环境:网络环境:系统环境:具体操作实操注意一、将三台虚拟机网…

数据结构——排序(4):归并排序+计数排序

目录 一、归并排序 (1)思想 (2)过程图示 (3)代码实现 (4) 代码解释 (5)复杂度 二、非比较排序(计数排序) (1)操作步骤 &#x…

《新一代数据可视化分析工具应用指南》正式开放下载

2024年8月12日,由DataEase开源项目组编写的《新一代数据可视化分析工具应用指南》白皮书正式面向广大用户开放下载。 《新一代数据可视化分析工具应用指南》是DataEase开源项目组为了支持企业落地并推广BI工具、推进企业数据可视化建设而编著的指导手册。通过本白皮…

【生成式人工智能-十二-影像生成原理】

文字生成影像的原理 影像生成的应用影像 是怎么生成的图片生成图片:影像生成影像文字生成图片按照文字AT的方式生成NAT 文字生成视频 怎么评价影像生成的好坏引入CLIP模型文字生成图片的难点文字生成视频的难点解决办法减少attention数目分迭代生成 前段时间sora生成…

前端字体没有授权,字体版权检测(是否为方正字体)

1.截图系统中的首页和登录页面,主要是有字体的地方 2.在线字体版权检测地址:字体版权自动检测-求字体网 3.上传照片,开始对图片进行检测,每个账号有三次免费次数 4.检测完,直接查看检测报告即可, 报告中…

[Spring] Spring事务与事务的传播

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

借助 Aspose.Words,在 Word 文档中创建表格

Word 文档中的表格是一种强大的工具,可用于以清晰、结构化的格式组织和呈现数据。表格由行和列组成,行和列相交形成可包含文本、数字、图像或其他元素的单元格。在本文中,我们将学习如何使用 C# 以编程方式在 Word 文档中创建表格。本文通过代…

虚幻5|高级运动实现基础的翻滚Roll 基础篇

一,调整项目设置——输入 1.我设置了翻滚是同时按W+Shift按键,如果你有更好的按键安排,评论区留言 二,打开角色蓝图,打开图表—基础移动(你的放图表就行了,我这里是安排了很多排版的…

LDRA Testbed(TBrun)软件单元测试_实例讲解(局部静态变量)

系列文章目录 LDRA Testbed软件静态分析_操作指南 LDRA Testbed软件静态分析_自动提取静态分析数据生成文档 LDRA Testbed软件静态分析_Jenkins持续集成(自动静态分析并用邮件自动发送分析结果) LDRA Testbed软件静态分析_软件质量度量 LDRA Testbed软件…

使用Hugging Face构建大型语言模型应用

在本文中,我们将介绍如何使用Hugging Face的大型语言模型(LLM)构建一些常见的应用,包括摘要(Summarization)、情感分析(Sentiment analysis)、翻译(Translation&#xff…

初步融合snowboy+pyttsx3+espeak+sherpa-ncnn的python代码

在前文《将Snowboy语音唤醒的“叮”一声改成自定义语言》中,我已经实现唤醒snowboy后,树莓派会说一句自定义文本。今天,会在此基础上增加ASR的应用(基于sherpa-ncnn)。 首先,编写一个asr.py的程序&#xf…

手撕快排——三种实现方法(附动图及源码)

🤖💻👨‍💻👩‍💻🌟🚀 🤖🌟 欢迎降临张有志的未来科技实验室🤖🌟 专栏:数据结构 👨‍💻&…

【C++】STL——list

前言 本篇博客我们接着来理解一个STL库里的list链表的结构,根据前面数据结构的铺垫,理解这个结构相对比较容易。我们来一起看看吧 💓 个人主页:小张同学zkf ⏩ 文章专栏:C 若有问题 评论区见📝 &#x1f38…