目录
一、 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。
二、简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。
五、 磁盘存储术语总结: head, track, sector, sylinder.
八、 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。
九、 总结LVM的基本原理,完成实验对LVM的创建和磁盘扩容。
十四、总结IP地址 A, B, C, D 类,并解析IP地址的组成
十五、201.222.200.111/18计算主机数?子网掩码?说明计算方法。
十六、 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
十七、如何将10.0.0.0/8划分32个子网?求每个子网的掩码,主机数。"
一、 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。
主流的程序包管理器:。redhat:rpm文件,rpm包管理器,rpm:Redhat Package Manager,RPM Package Manager·debian:deb文件,dpkg包管理器
包文件组成(每个包独有)·
包内的文件·
元数据,如:包的名称,版本,依赖性,描述等·
可能会有包安装或卸载时运行的脚本
数据库(公共):var/lib/rpm
程序包名称及版本
依赖关系
功能说明
包安装后生成的各文件路径及校验码信息
CentOS镜像:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
Ubuntu 镜像:
http://cdimage.ubuntu.com/releases/
http://releases.ubuntu.com
第三方组织提供
Fedora-EPEL:Extra Packages for Enterprise Linux
https://fedoraproject.org/wiki/EPEL
https://mirrors.aliyun.com/epel/?spm=a2c6h.13651104.0.0.3bc47dfaZpesAr
Rpmforge:RHEL推荐,包很全,即将关闭
http://repoforge.org/
Community Enterprise Linux Repository:支持最新的内核和硬件相关包
http://www.elrepo.org
软件项目官方站点
http://yum.mariadb.org/10.4/centos8-amd64/rpms/
http://repo.mysql.com/yum/mysql-8.0-community/el/8/x86_64/
搜索引擎
http://pkgs.org
http://rpmfifind.net
http://rpm.pbone.net
https://sourceforge.net/
rpm
rpm {-q|--query} [select-options] [query-options]
[select-options]
-a #所有包
-f #查看指定的文件由哪个程序包安装生成
-p rpmfile #针对尚未安装的程序包文件做查询操作
--whatprovides CAPABILITY #查询指定的CAPABILITY由哪个包所提供
--whatrequires CAPABILITY #查询指定的CAPABILITY被哪个包所依赖
[query-options]
--changelog -c -d -i -l --scripts --provides -R | #查询rpm包的changelog #查询程序的配置文件 #查询程序的文档 #information #查看指定的程序包安装后生成的所有文件 #程序包自带的脚本 #列出指定程序包所提供的CAPABILITY #查询指定的程序包所依赖的CAPABILITY |
#常用查询组合
-qi PACKAGE
-qf FILE
-qc PACKAGE
-ql PACKAGE
-qd PACKAGE
-qpi PACKAGE_FILE
-qpl PACKAGE_FILE
-qa
rpm -ivh vsftpd #对vsftpd进行安装并显示过程和进度
rpm -q ngnix #查询nginx的服务包
rpm -qi nginx #查询nginx详细信息
[root@rocky86 h]# rpm -qi nginx
Name : nginx
Epoch : 1
Version : 1.14.1
Release : 9.module+el8.4.0+542+81547229
Architecture: x86_64
Install Date: Thu 14 Jul 2022 10:11:12 AM CST
Group : System Environment/Daemons
Size : 1669719
License : BSD
Signature : RSA/SHA256, Thu 10 Jun 2021 05:22:38 PM CST, Key ID
15af5dac6d745a60
Source RPM : nginx-1.14.1-9.module+el8.4.0+542+81547229.src.rpm
Build Date : Thu 10 Jun 2021 05:10:40 PM CST
Build Host : ord1-prod-x86build005.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager : infrastructure@rockylinux.org
Vendor : Rocky
URL : http://nginx.org/
Summary : A high performance web server and reverse proxy server
Description :
Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
IMAP protocols, with a strong focus on high concurrency, performance and low
memory usage
rpm -qf /usr/sbin/nginx #查询nginx文件的包信息
[root@rocky86 h]# rpm -qf /usr/sbin/nginx
nginx-1.14.1-9.module+el8.4.0+542+81547229.x86_64
#没安装的指定包文件,新版可省略-p参数
[root@rocky86 h]# rpm -qpc httpd-2.4.37-
47.module+el8.6.0+823+f143cee1.1.x86_64.rpm
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
查询指定包文件
[root@rocky86 0727]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
查询postfix安装脚本信息
#短路或,如果没有安装,就执行安装操作
[root@rocky86 v]# rpm -q vsftpd || rpm -ivh vsftpd-3.0.3-35.el8.x86_64.rpm
package vsftpd is not installed
Verifying... Preparing... Updating / installing... 1:vsftpd-3.0.3-35.el8 | ################################# [100%] ################################# [100%] |
[root@rocky86 v]# rpm -evh vsftpd
Preparing... ################################# [100%]
Cleaning up / removing...
1:vsftpd-3.0.3-35.el8 ################################# [100%]
[root@rocky86 v]# rpm -q vsftpd
package vsftpd is not installed
[root@rocky86 ~]# cat /etc/yum.conf
[main]
gpgcheck=1 #安装包前要做包的合法和完整性校验
installonly_limit=3 #同时可以安装3个包,最小值为2,如设为0或1,
为不限制
clean_requirements_on_remove=True #删除包时,是否将不再使用的包删除best=True #升级时自动选择安装最新版,即使缺少包的依赖
skip_if_unavailable=False #跳过不可用的
yum用法:
#常用选项
-c file|--config file #指定配置文件,默认使用
/etc/yum.conf
-v|--verbose #显示详细信息
-b|--best #尝试在可用包中寻找最匹配的版本
-y|--assumeyes #自动回答为 yes
--nogpgcheck #不进行包校验
--repo repoid|--repoid repoid #指定repo源
--enablerepo repoid #临时启用repo源,可用通配符
--disablerepo repoid #临时禁用repo源,可用通配符
--nodocs #不安装文档
--skip-broken #跳过有问题的包
--enable #启用源,配合 configmanager
--disable #禁用源,配合 configmanager
-x package|--exclude package|--excludepkgs package #排除指定包,可用通配符
--downloadonly #只下载,不安装
yum repolist #查看仓库列表
yum install at ---安装at包
yum reinstall at ---重新安装at包
yum remove at---移除at包
yum provides at --查询文件是由哪个包提供的
apt命令:
apt命令参数
root@ubuntu22:~# apt install nginx
#同时安装多个包
root@ubuntu22:~# apt install nginx redis -y
#安装指定版本的包,默认安装最新版
root@ubuntu22:~# apt install nginx=1.14.0-0ubuntu1
#安装nginx 包,如果己存在,则不升级
root@ubuntu22:~# apt install nginx --no-upgrade
#只升级不安装
root@ubuntu22:~# apt install nginx --only-upgrade
#仅卸载nginx包
root@ubuntu22:~# apt remove -y nginx
#卸载所有依赖包
root@ubuntu22:~# apt autoremove nginx
#纺计源中可更新的信息,并不执行具体更新
root@ubuntu22:~# apt update
#更新所有己安装的包
root@ubuntu22:~# apt upgrade
二、简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。
yum/dnf 是基于C/S 模式
yum 服务器存放rpm包和相关包的元数据库
yum 客户端访问yum服务器进行安装或查询等
yum 实现过程
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元
数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载
repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装
dnf:yum程序在安装的过程中,如果被终止,下次再执行将无法解决依赖,DNF可解决此问题;
私有仓库搭建 ,本次实验对象是:rocky8.9 仓库---------> 麒麟系统获取rocky目标仓库服务
首先我们在rocky中安装httpd服务
yum install httpd
后关闭防火墙
systemctl disabled --now firewalld.service
挂载本地镜像到 /mnt/下----mount /dev/sr0 /mnt/---此操作是为了把后续的AppStream和BaseOS下的资源复制过去,而extras本地镜像中没有,可通过设置本地仓库去同步对应网站资源
后在/var/www/html中创建index.html。写如下信息,浏览器输入响应IP地址即可访问
复制本地镜像文件到创建的目录下
在对应客户机上配置服务器192.168.153.138的仓库地址的AppStream,BaseOS,extras
cp -vr /mnt/AppStream/* /var/www/html/AppStream
cp -vr /mnt/BaseOS/* /var/www/html/BaseOS
由于本地无extras所属文件内容
我们同步aliyun下的extras仓库:
首先做快照
新建所属extras
vim ltx.extras.repo
yum repolist --repo=ali-extras -v
先同步aliyun仓库extras至想要下载的目录下,后cp 至对应目录
即可看到对应数据出现在指定目录,服务器端已成功配置完成
最后我们在麒麟客户端配置本地仓库文件,目标地址为192.168.153.138rocky服务器,后yum clean all 本地缓存,yum makecache新的缓存,yum repolist -v 显示本地仓库配置文件及目标地址仓库
尝试下载目标仓库服务,yum - y install nodejs服务,发现是我们想要的目标rocky服务器地址,说明大功告成。
三、 简要总结apt的工作原理
在服务器上先复制所有DEB包,然后用APT的分析工具genbasedir根据每个DEB 包的包头(Header)信
息对所有的DEB包进行分析,并将该分析结果记录在文件夹base内的一个DEB 索引清单文件中,一旦
APT 服务器内的DEB有所变动,要使用genbasedir产生新的DEB索引清单。
客户端在进行安装或升级时先要查询DEB索引清单,从而获知所有具有依赖关系的软件包,并一同下载
到客户端以便安装。当客户端需要安装、升级或删除某个软件包时,客户端计算机取得DEB索引清单压
缩文件后,会将其解压置放于 /var/cache/apt/,而客户端使用apt-get install或apt-get upgrade命令的
时候,就会将这个文件夹内的数据和客户端计算机内的DEB数据库比对,知道哪些DEB已安装、未安装
或是可以升级的。
四、 编译安装nginx的步骤总结
下载对应nginx
解包
进入包查看配置帮助
#指定安装目录,开启ssl模块,开始编译
根据提示,安装C编译器
yum install -y pcre-devel
安装openssl包
生成makefile文件
#执行make
[root@rocky86 nginx-1.23.0]# make
#执行make install
[root@rocky86 nginx-1.23.0]# make install
查看tree /lnmp/
启动nginx,查看版本信息
通过IP访问成功
五、 磁盘存储术语总结: head, track, sector, sylinder.
六、 总结MBR,GPT结构。
MBR结构总结:
MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
划分分区的单位:
CentOS 5 之前按整柱面划分
CentOS 6 版本后可以按Sector划分
0磁道0扇区:512bytes
446bytes: boot loader 启动相关
64bytes:分区表,其中每16bytes标识一个分区
2bytes: 55AA,标识位
MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区:主和扩展分区对应的1--4,/dev/sda3,逻辑分区从5开始,/dev/sda5
GPT结构总结
GPT分区结构分为4个区域:
GPT头
分区表
GPT分区
备份区域
GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持
8Z( 512Byte/block )64Z ( 4096Byte/block)
使用128位UUID(Universally Unique Identifier) 表示磁盘和分区,GPT分区表自动备份在头和尾两
份, 并有CRC校验位
UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统
可以启动
七、 总结学过的分区,文件系统管理,SWAP管理相关的命令及示例(加注释),示例 fdisk, parted, mkfs, tune2fs, xfs_info, fsck, mount, umount, swapon, swapoff
swapon [options] [<spec>]
#常用选项
-a|--all #激活 /etc/fstab 中的所有交换区
-d|--discard[=policy] #根据条件禁用(once|pages)
-e|--ifexists #自动跳过不存在的设备而不提示
-f|--fixpgsz #必要时重新初始化交换区
-o|--options list #指定选项,swapon -o pri=1,discard=pages,nofail
/dev/sda2
-p|--priority N #指定交换设备的优先级(-1到32767),值越大优先级越高,也可
在/etc/fstab第4列指定pri=value
-s|--summary #显示已使用交换设备的摘要
--show[=columns] #以可自定义的表格形式打印摘要 swapon --show|swapon
--show=NAME,TYPE
--noheadings #不打印表头,配合 --show 选项
--raw #使用原生输出格式,配合 --show 选项
--bytes #在 --show 输出中以字节数显示交换区大小
-v|--verbose #显示详细信息
#<spec> 参数:
-L label #同 LABEL=label
swapon [options] [<spec>]
#常用选项
-a|--all #激活 /etc/fstab 中的所有交换区
-d|--discard[=policy] #根据条件禁用(once|pages)
-e|--ifexists #自动跳过不存在的设备而不提示
-f|--fixpgsz #必要时重新初始化交换区
-o|--options list #指定选项,swapon -o pri=1,discard=pages,nofail
/dev/sda2
-p|--priority N #指定交换设备的优先级(-1到32767),值越大优先级越高,也可
在/etc/fstab第4列指定pri=value
-s|--summary #显示已使用交换设备的摘要
--show[=columns] #以可自定义的表格形式打印摘要 swapon --show|swapon
--show=NAME,TYPE
--noheadings #不打印表头,配合 --show 选项
--raw #使用原生输出格式,配合 --show 选项
--bytes #在 --show 输出中以字节数显示交换区大小
-v|--verbose #显示详细信息
#<spec> 参数:
-L label #同 LABEL=label
禁用swap分区
swapoff [options] [<spec>]
#常用选项
-a|--all #禁用 /proc/swaps 中的所有交换区
-v|--verbose #显示过程
#spec 参数
-L label -U uuid LABEL=label UUID=uuid device filename | #要使用设备的标签 #要使用设备的 UUID #要使用设备的标签 #要使用设备的 UUID #要使用设备的名称 #要使用文件的名称 |
创建swap分区
#先创建分区,选择swap类型
#再创建swap文件系统
[root@ubuntu2204 ~]# mkswap /dev/sdc3
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=e08d9c52-98f2-4fed-8f19-5a890bece201
#查看
[root@ubuntu2204 ~]# blkid /dev/sdc3
/dev/sdc3: UUID="e08d9c52-98f2-4fed-8f19-5a890bece201" TYPE="swap"
PARTUUID="a6ea333f-03"
#修改/etc/fstab文件,添加swap行
#禁用,再次启用
[root@ubuntu2204 ~]# swapoff -a
[root@ubuntu2204 ~]# swapon -a
#查看,比原来多2GB swap空间
[root@ubuntu2204 ~]# free -h
total used free shared buff/cache available
Mem: Swap: | 1.9Gi 295Mi 4.0Gi 0B | 1.5Gi 4.0Gi | 1.0Mi 112Mi | 1.5Gi |
#查看内存
[root@ubuntu2204 ~]# cat /proc/swaps
Filename Type Size Used Priority
/swap.img file | 2097148 | 0 -2 |
/dev/sdc3 partition | 2097148 | 0 -3 |
查看swap分区
Priority越大,优先级越高,会被优先使用
root@ubuntu2204 ~]# swapon -s
Filename Type Size Used Priority
/swap.img file | 2097148 | 0 |
/dev/sdc3 partition | 2097148 | 0 |
-2
-3
[root@ubuntu2204 ~]# cat /proc/swaps
Filename Type Size Used Priority
/swap.img file | 2097148 | 0 |
/dev/sdc3 partition | 2097148 | 0 |
-2
-3
fdisk
fdisk -l /dev/sda查看分区
对想要的磁盘进行分区 fdisk /dev/sdb
parted -l 显示所有分区信息
parted /dev/sdb mklabel gpt在磁盘上创建GPT分区
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 1001
分区
parted /dev/sdb rm 2 删除分区
mkfs,
mkfs.xfs /dev/sd1 对想要分区进行格式化成xfs
tune2fs,
[root@ubuntu2204 ~]# tune2fs -l /dev/sdc1
tune2fs 1.46.5 (30-Dec-2021)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: e55d9611-63c5-43dd-a6b3-fe6409778834
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic
#查看超级块信息
[root@ubuntu2204 ~]# dumpe2fs -h /dev/sdc1
dumpe2fs 1.46.5 (30-Dec-2021)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: e55d9611-63c5-43dd-a6b3-fe6409778834
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
xfs_info,
xfs_info /dev/sdc2
fsck,
mount,
零时挂载至对应目录
mount /dev/sdb1 /sdb1
umount,
[root@ltx-rockycloud ~]$ umount /dev/sdb2 设备取消挂载
umount: /dev/sdb2: not mounted.
[root@ltx-rockycloud ~]$ umount /sdb2 挂载点取消挂载
swapon, swapoff
[root@ltx-rockycloud ~]$ mkswap /dev/sdb2 ----------------创建swap分区
mkswap: /dev/sdb2: warning: wiping old xfs signature.
Setting up swapspace version 1, size = 3 GiB (3221221376 bytes)
no label, UUID=606c9f9f-fe71-4f95-a6c9-0460f32ee12f
[root@ltx-rockycloud ~]$ blkid /dev/sdb2 --------查看
/dev/sdb2: UUID="606c9f9f-fe71-4f95-a6c9-0460f32ee12f" TYPE="swap" PARTUUID="10202c78-02"
[root@ltx-rockycloud ~]$ swapoff -a -------禁用swap分区
[root@ltx-rockycloud ~]$ free -h ----------查看swap
total used free shared buff/cache available
Mem: 1.7Gi 540Mi 780Mi 10Mi 425Mi 1.0Gi
Swap: 0B 0B 0B
[root@ltx-rockycloud ~]$ swapon -a -----开启swap分区
[root@ltx-rockycloud ~]$ free -h -----再次查看swap 多了2G
total used free shared buff/cache available
Mem: 1.7Gi 541Mi 779Mi 10Mi 425Mi 1.0Gi
Swap: 2.0Gi 0B 2.0Gi
[root@ltx-rockycloud ~]$
八、 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。
RAID 等级 | 最少硬盘 | 最大容量 | 可用容量 | 读性能 | 写性能 | 安全性 | 目的 | 应用场景 |
0 | 1 | 0 | n | n | n | 一块硬盘坏, 全部硬盘都会 异常 | 追求最大容量、 速度 | 影片剪接 缓存用途 |
1 | 2 | n- 1 | 1 | n | 高,一个正常 即可 | 追求最大安全性 | 个人企业 备份 | |
5 | 3 | 1 | n- 1 | n- 1 | n- 1 | 高 | 追求最大容量、 最小预算 | 个人企业 备份 |
10 | 4 | 高 | 综合RAID0/1优 点,理论速度较 快 | 大型数据 库、服务 器 |
九、 总结LVM的基本原理,完成实验对LVM的创建和磁盘扩容。
通过pv、vg、lv创建所需要的卷,
后lv扩容300M,
格式化成ext4,后挂载至/sdb2文件下
十、 总结开放系统互联OSI模型,每层作用及对应的协议。
十一、调整动态端口范围为20000-60000
十二、总结TCP包头结构,TCP三次握手,4次挥手。
TCP包头结构
3次握手
4次挥手
十三、总结主机到主机的包传递过程。
十四、总结IP地址 A, B, C, D 类,并解析IP地址的组成
十五、201.222.200.111/18计算主机数?子网掩码?说明计算方法。
11001001.11011110.11(网络号) (主机号 ) 001000.01101111
掩码范围:201.222.0.0/18 201.222.64.0/18 201.222.128.0/18 201.222.192.0/18
主机数:32-18=14,2^14-2=16382个主机
十六、 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
10.0.1.1/16
网络地址:00001010.00000000.00000001.00000001/16
子网掩码:111111111.111111111.00000000.00000000
网段号: 00001010.00000000.00000000.00000000=10.0.0.0/16
10.0.2.2/24
网络地址:00001010.00000000.00000010.00000010 /24
子网掩码:111111111.111111111.111111111.00000000
网段号: 00001010.00000000.00000010.00000000=10.0.2.0/24
由此可见 10.0.2.2/24 认为 10.0.1.1/16不是在同一个子网
反过来,10.0.1.1/16 认为10.0.2.2/24是在同一个子网
十七、如何将10.0.0.0/8划分32个子网?求每个子网的掩码,主机数。"
先算出32个子网 32=2^5 ,
原来:10.0.0.0/8
原来:00001010,000000000,00000000,00000000,/8
目的:划分+5
现在:00001010,00000(网络位) (主机位) 000,00000000,00000000,/13
起始--10.0.0.0/13
10.8.0.0
10.16.0.0
10.24.0.0
。。。。。(每次+8)
末尾---10.248.0.0/13
共32个
主机数 32-13=19,2^19-2=524286个主机数