PC电脑 VMware安装的linux CentOs7如何扩容磁盘?
一、VM中进行扩容设置
必须要关闭当前CentOS,不然扩展按钮是灰色的。
输入值必须大于当前磁盘容量。然后点击扩展,等待扩展完成会提示一个弹框,点击确定,继续确定。


二、操作CentOS扩容——磁盘分区
第一步设置完成。那就启动 CentOS,进入开始操作:
1.df -h查看磁盘。发现啥都没变/dev/mapper/centos-root容量17G,哈哈。
[root@centos1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 13G 4.8G 72% /
/dev/sda1 1014M 154M 861M 16% /boot
tmpfs 782M 0 782M 0% /run/user/0
[root@centos1 ~]#
2. fdisk -l, 查看磁盘分区。这回看到了,第一行就已经输出了磁盘 /dev/sda:107.4 GB
[root@centos1 ~]# fdisk -l磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ac81b设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节[root@centos1 ~]#
3. fdisk /dev/sda,对新加的磁盘进行分区操作(选择新增的磁盘)。 后面的参数就上面查询到的盘,当前因为是扩容就这一个。
[root@centos1 ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助):
如果是多个盘需要注意区分,比如下面就是我后面又研究不 扩容盘,添加盘的情况。命令大致等同,最后不要合并上去就行


4. 输入p查看分区信息,可以看到只有两个分区。Blocks加起来也就20G左右。但磁盘却最上面显示了107.4G,说明存在待分区的磁盘空间。
命令(输入 m 获取帮助):p磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ac81b设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM命令(输入 m 获取帮助):
可以看到输入 m 有命令提示,本着探索精神看一眼都有啥(已汉化并修正描述~):
命令(输入 m获取帮助):m
a 切换可引导标志
b 编辑BSD磁盘标签
c 切换DOS兼容性标志
d 删除分区
g 创建一个新的 空GPT分区表
G 创建一个IRIX (SGI)分区表
l 列出已知的分区类型
m 打印输出这个命令菜单
n 添加新分区
o 创建一个新的空DOS分区表
p 打印分区表
q 不保存更改就退出
s 创建一个新的空Sun 磁盘标签
t 修改分区的系统id
u 改变显示/输入单位
v 验证分区表
w 将表写入磁盘并退出
x 额外功能(仅限专家使用)
5.将为自由空间进行分区。
输入n,新建分区,
继续输入p或直接回车,分区类型我们使用默认的——主分区。
继续输入3或直接回车,分区号使用默认的——3
起始 扇区,直接回车默认,我们不需要分太多。
Last 扇区,直接回车默认,我们不需要分太多。
最后输出“分区 ?已设置为 Linux 类型,大小设为 ?GiB”就表示分区成功了,这两个❓值可能跟实际的分区号和你自己扩容的大小相关。
命令(输入 m 获取帮助):n
Partition type:p primary (2 primary, 0 extended, 2 free)e extended
# 教程说明:直接回车
Select (default p):
Using default response p
# 教程说明:直接回车
分区号 (3,4,默认 3):3
# 教程说明:直接回车
起始 扇区 (41943040-209715199,默认为 41943040):
将使用默认值 41943040
# 教程说明:直接回车
Last 扇区, +扇区 or +size{K,M,G} (41943040-209715199,默认为 209715199):
将使用默认值 209715199
分区 3 已设置为 Linux 类型,大小设为 80 GiB命令(输入 m 获取帮助):
在 CentOS 中进行磁盘分区时,有两种类型可以选择:主分区(Primary)和 扩展分区(Extended)。
主分区(Primary):
主分区是磁盘上的基本分区,它可以被文件系统直接使用。每个硬盘驱动器只能包含最多4个主分区,其中包含一个 活动分区(活动分区是引导 操作系统的分区)。
扩展分区(Extended):
扩展分区是一个特殊的类型的分区,它允许在硬盘上创建更多的逻辑分区。每个硬盘驱动器只能有一个扩展分区,并且它可以包含多个 逻辑分区。逻辑分区是文件系统的一部分,但它们必须通过扩展分区进行访问。
上面打印的信息“ p primary (2 primary, 0 extended, 2 free)”表示该磁盘上有2个主分区和2个可用空间,没有扩展分区。
6. 输入p查看一下分区结果。可以看到新增了一个 /dev/sda3分区。Blocks的大小是80G左右。
命令(输入 m 获取帮助):p磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ac81b设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
/dev/sda3 41943040 209715199 83886080 83 Linux命令(输入 m 获取帮助):
7. 输入w ,将前面的分区操作写入磁盘,表示保存生效。如果放弃就输入q。
命令(输入 m 获取帮助):w
# 教程说明:打印已经修改成功!
The partition table has been altered!# 教程说明:调用ioctl()重新读取分区表。
Calling ioctl() to re-read partition table.# 教程说明:重启生效。
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@centos1 ~]#
WARING:看到警告不要慌,英文没看懂,中文就看到“设备或资源忙”!心想是不是失败了。
确实失败,分区完之后想要读取这个新的分区,结果读不到,告诉你它现在还是用的旧的,如果要用新的就执行partprobe(8)或kpartx(8)或reboot。简单说重启就好了。
8. 输入reboot,重启CentOS,使配置生效
[root@centos1 ~]# reboot
Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(192.点赞.收藏.+关注) at 23:26:05.Type `help' to learn how to use Xshell prompt.
很快就重启成功了,我们继续搞起。。。
画个重点:了解一下磁盘和卷组。
LVM
LVM(Logical Volume Manager)卷组是Linux系统中的一种逻辑存储管理机制。它可以将多个物理硬盘或分区抽象成一个逻辑卷,从而方便地进行存储管理。LVM卷组允许动态地增加、删除和合并物理卷,以及动态地调整逻辑卷的大小,而不需要关心物理硬盘或分区的位置和数量。
LVM的基本组成部分包括:
- 物理卷(Physical Volume,PV):是指LVM中的物理存储设备,如硬盘或分区。在使用LVM之前,需要将物理存储设备初始化为LVM物理卷,并给它们分配一个唯一的标识符。
- 卷组(Volume Group,VG):由一个或多个物理卷组成的逻辑组。在LVM中,物理卷可以被分配到一个或多个卷组中,卷组中的物理卷可以动态地添加、删除或合并,从而方便地进行存储容量的管理。
- 逻辑卷(Logical Volume,LV):逻辑卷是指LVM中的逻辑存储设备,它是由卷组中的物理卷动态分配而来。逻辑卷可以被格式化为文件系统,并像普通的物理硬盘分区一样使用。
LVM的主要优点是提供了更灵活的存储管理方式,可以动态地增加、删除、合并和移动存储空间,而不需要关心物理硬盘或分区的位置和数量。此外,LVM还支持快照、镜像和迁移等高级存储功能,能够满足不同应用场景的需求。
~~~~~~~~~~ 看的一脸懵 ~~~~~
卷组跟磁盘、分区有什么联系和区别?
磁盘(Disk)是计算机的一种存储设备,它通常由一个或多个 platters(盘片)组成,可以存储数据和信息。磁盘可以分区(Partition),将一个磁盘分成多个部分,每个部分都可以有不同的文件系统,以便更好地管理和使用存储空间。
联系:卷组和磁盘都与存储有关,磁盘是物理上的,卷组是逻辑上的。卷组是由多个物理卷组成的逻辑存储设备,而磁盘是一种物理存储设备,可以分区并被卷组使用。在LVM中,卷组的物理卷可以来自磁盘的一个分区或整个磁盘,而卷组可以由多个物理卷组成。
区别:卷组是LVM中的逻辑存储设备,它由一个或多个物理卷组成,可以被看作是一个逻辑上的硬盘,主要用于存储和管理数据。磁盘是计算机的一种存储设备,它可以被分区,每个分区可以拥有不同的文件系统。
~~~ 有点苗苗了哈,总结一下 ~~~~~
磁盘和分区是物理层面的,用于更好地管理存储空间,不同的分区可以拥有不同的文件系统。
而卷组和逻辑卷是逻辑层面的,用于提供更灵活和可扩展的存储管理方式。
卷组是一组物理卷的集合,逻辑上是一个整体。它们可以被用来创建逻辑卷,多逻辑卷进行逻辑管理。
物理卷就可以理解为多少个接入点,顺着接入点就一定能找到一个存放数据的磁盘。卷组可以动态地增加、删除、合并和移动物理卷,从而方便地进行存储容量的管理。
逻辑卷是由卷组中的物理卷动态分配而来,可以被格式化为文件系统并像普通的物理硬盘分区一样使用。但主要还是管理存储空间,不管理文件,要跟文件系统要区分。(卷组->物理卷->逻辑卷->文件系统)
文件系统主要用于存储和访问文件,管理着计算机的存储设备(如硬盘、分区、文件等)和文件。Linux支持多种文件系统,如Ext4、XFS、Btrfs等。逻辑卷可以用来作为文件系统的基础,从而提供更灵活的文件系统构建方式。
~~~ 接地气点 ~~~~~:
平时会有给Linux服务器 挂载,挂盘,加盘,扩容之类的,差不多就是干了这事。
在挂盘操作中,会将某个磁盘增加到卷组,并新增逻辑卷或增加空间到已有逻辑卷中,从而扩展系统的存储容量。这种挂盘操作是动态的,可以方便地增加、删除、合并和移动存储空间,而不需要关心物理硬盘或分区的位置和数量。
~~~常用命令:~~~~~~~ 知道了VG,PV,LV,看一下常用命令: ~~~~~
VG相关命令:卷组(Volume Group,VG)
vgcreate:创建卷组。vgdisplay:显示卷组信息。vgrename:重命名卷组。vgremove:删除卷组。vgextend [选项] VG名称 PV名称1 [PV名称2 ...]: 添加新的物理卷(Physical Volume)。vgs:显示系统中的所有卷组信息。vgscan:扫描系统以查找卷组。vgchange:改变卷组的属性。vgsplit:将卷组拆分为两个卷组。vgmerge:将两个卷组合并为一个卷组。vgreduce:缩减卷组大小
PV相关命令:物理卷(Physical Volume,PV)
pvcreate:创建物理卷。pvdisplay:显示物理卷信息。pvremove:从卷组中移除物理卷。pvmove /dev/sdb1 /dev/sdb将把/dev/sdb1中的数据移动到/dev/sdb中,从而缩减/dev/sdb1的大小。
pvreduce: 缩减磁盘卷的大小
LV相关命令:逻辑卷(Logical Volume,LV)
lvcreate:创建逻辑卷。lvdisplay:显示逻辑卷信息。lvrename:重命名逻辑卷。lvremove:删除逻辑卷。lvreduce: 缩减逻辑卷的大小lvextend:扩展逻辑卷的大小
以上命令的使用方法可以在命令行中输入命令后加上 --help 参数查看帮助文档。
三、操作CentOS扩容——卷组扩容
9. vgdisplay查看当前的卷组。VG Name是centos
[root@centos1 ~]# vgdisplay--- Volume group ---VG Name centosSystem ID Format lvm2Metadata Areas 1Metadata Sequence No 3VG Access read/writeVG Status resizableMAX LV 0Cur LV 2Open LV 2Max PV 0Cur PV 1Act PV 1VG Size <19.00 GiBPE Size 4.00 MiBTotal PE 4863Alloc PE / Size 4863 / <19.00 GiBFree PE / Size 0 / 0 VG UUID aISHGf-rAs9-4VKV-IGMH-1eQk-AscS-a1t6aM[root@centos1 ~]#
vgdisplay输出显示了关于卷组(Volume Group)的信息,卷组的名称为"centos",它由一个物理卷组成,该物理卷的大小为19.00 GiB
输出信息翻译:
- VG Name:卷组的名称。
- Format:卷组的格式,这里是lvm2。
- Metadata Areas:卷组元数据区域的数目。
- Metadata Sequence No:卷组元数据序列号。
- VG Access:卷组的访问方式,这里是read/write,表示可以读取和写入。
- VG Status:卷组的状态,这里是resizable,表示可以调整大小。
- MAX LV:最大逻辑卷数目。
- Cur LV:当前逻辑卷数目。
- Open LV:打开的逻辑卷数目。
- MAX PV:最大物理卷数目。
- Cur PV:当前物理卷数目。
- Act PV:激活的物理卷数目。
- VG Size:卷组的总大小。
- PE Size:物理Extent的大小。
- Total PE:总物理Extent数目。
- Alloc PE / Size:已分配的物理Extent数目及对应的大小。
- Free PE / Size:未分配的物理Extent数目及对应的大小。
- VG UUID:卷组的唯一标识符。
10.pvcreate /dev/sda3创建物理卷。
[root@centos1 ~]# pvcreate /dev/sda3Physical volume "/dev/sda3" successfully created.
[root@centos1 ~]#
11. vgextend centos /dev/sda3将物理卷添加到卷组中
[root@centos1 ~]# vgextend centos /dev/sda3Volume group "centos" successfully extended
[root@centos1 ~]#
12.vgdisplay 查看添加结果。
注释掉未改变的,先看最重要的Free PE / Size未分配的变成了是80G左右。
[root@centos1 ~]# vgdisplay--- Volume group ---
# VG Name centos
# System ID
# Format lvm2
# 教程说明:卷组元数据区域的数目 1=》2Metadata Areas 2
# 教程说明:卷组元数据序列号 3=》4Metadata Sequence No 4
# VG Access read/write
# VG Status resizable
# MAX LV 0
# Cur LV 2
# Open LV 2
# Max PV 0
# 教程说明:当前物理卷数目 1=》2Cur PV 2
# 教程说明:激活的物理卷数目 1=》2Act PV 2
# 教程说明:卷组总大小 '<19.00 GiB' =》'98.99 GiB'VG Size 98.99 GiB
# PE Size 4.00 MiBTotal PE 25342
# Alloc PE / Size 4863 / <19.00 GiBFree PE / Size 20479 / <80.00 GiBVG UUID aISHGf-rAs9-4VKV-IGMH-1eQk-AscS-a1t6aM[root@centos1 ~]#
13. 分配到逻辑卷之前,先要查看一下逻辑卷名称。
我们想要把扩容的空间添加到根目录/下,就得先找到逻辑卷文件系统。
输入df -h,看到挂载点是根目录/的文件系统是/dev/mapper/centos-root
[root@centos1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 13G 4.8G 72% /
/dev/sda1 1014M 154M 861M 16% /boot
tmpfs 782M 0 782M 0% /run/user/0
[root@centos1 ~]#
可以看到只有两个文件系统。其他带 tmp的都临时的,可以不用管。
输入lvs /dev/mapper/centos-root看一下根目录对应的文件系统的逻辑卷信息。【!这个是操作完成后写教程后补的,已经扩容了】
[root@centos1 ~]# lvdisplay /dev/mapper/centos-root--- Logical volume ---LV Path /dev/centos/rootLV Name rootVG Name centosLV UUID lnijLZ-BFbj-d0L8-gpil-s9GN-6Dk8-0LIKIHLV Write Access read/writeLV Creation host, time localhost.localdomain, 2021-09-29 16:10:31 +0800LV Status available# open 1LV Size <96.00 GiBCurrent LE 24575Segments 2Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:0
输入lvs查看所有逻辑卷信息,可以看到上面看到的逻辑卷LV root,属于卷组VG centos。
输入vgs,pvs可以继续看到卷组和对应物理卷的更多信息。
[root@centos1 ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot centos -wi-ao---- <96.00g swap centos -wi-ao---- 2.00g
[root@centos1 ~]# vgsVG #PV #LV #SN Attr VSize VFree centos 2 2 0 wz--n- 98.99g 1020.00m
[root@centos1 ~]# pvsPV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <19.00g 0 /dev/sda3 centos lvm2 a-- <80.00g 1020.00m
[root@centos1 ~]#
14. lvextend -L +79G /dev/mapper/centos-root 分配Free空间到逻辑卷
数字大小看上面自己的,12步看到Free PE / Size 20479 / <80.00 GiB,不足80G,所以写个79
[root@centos1 ~]# lvextend -L +79G /dev/mapper/centos-rootSize of logical volume centos/root changed from <17.00 GiB (4351 extents) to <96.00 GiB (24575 extents).Logical volume centos/root successfully resized.
[root@centos1 ~]#
看到详细信息,逻辑卷 centos/root 从 <17.00 GiB (4351 extents) to <96.00 GiB (24575 extents)分配成功
15.pvdisplay查看分配结果
[root@centos1 ~]# pvdisplay--- Physical volume ---PV Name /dev/sda2VG Name centosPV Size <19.00 GiB / not usable 3.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 4863Free PE 0Allocated PE 4863PV UUID Y1Oc21-XEm2-8Oj6-AjfM-ZjV3-SX4l-UFWnjw--- Physical volume ---PV Name /dev/sda3VG Name centosPV Size 80.00 GiB / not usable 4.00 MiBAllocatable yes PE Size 4.00 MiBTotal PE 20479Free PE 255Allocated PE 20224PV UUID S5deMQ-Ldz9-s3Kp-YldN-fIzG-aFFm-jHdG8b[root@centos1 ~]#
可以看到,一共两个物理卷,都在 centos 卷组下(VG name),然后看到我们最开始的分区/dev/sda3有PV Size 80.00 GiB,已分配块Allocated PE 20224,计算一下20224*4/1024=79G,而未分配块Free PE 255,计算一下255*4 =1024MB
说明都已经从物理卷分配到了逻辑卷
16. 扩容文件系统
此时只是文件系统所在的逻辑卷的存储空间扩大了,但是文件系统管理文件时还是不知晓扩容了,所以需要让它知道一下。
(1) cat /etc/fstab | grep centos-root查看文件系统类型
[root@centos1 ~]# cat /etc/fstab | grep centos-root
/dev/mapper/centos-root / xfs defaults 0 0
[root@centos1 ~]#
可以看到是 xfs ,所以使用 xfs_growfs 命令。
如果是Ext4 文件系统,可以使用resize2fs命令来扩展文件系统。
(2) xfs_growfs /dev/mapper/centos-root扩容文件系统。
[root@centos1 ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1113856 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4455424, imaxpct=25= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 4455424 to 25164800
[root@centos1 ~]#
可以看到 data 数据块已经扩大
17. df -h查看最终成果
[root@centos1 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 96G 13G 84G 13% /
/dev/sda1 1014M 154M 861M 16% /boot
tmpfs 782M 0 782M 0% /run/user/0
[root@centos1 ~]# 相关文章:
PC电脑 VMware安装的linux CentOs7如何扩容磁盘?
一、VM中进行扩容设置 必须要关闭当前CentOS,不然扩展按钮是灰色的。 输入值必须大于当前磁盘容量。然后点击扩展,等待扩展完成会提示一个弹框,点击确定,继续确定。 二、操作CentOS扩容——磁盘分区 第一步设置完成。那就启动 …...
redis极速的奥秘
文章目录 1.基于内存存储实现2.高效的数据结构3.合理的数据编码4.合理的线程模型5. 虚拟内存机制实现原理 1.基于内存存储实现 内存读写是比在磁盘快很多的,Redis 基于内存存储实现的数据库,相对于数据存在磁盘的 MySQL 数据库,省去磁盘 I/O…...
three.js之初识three.js
什么是three.js Three.js是一款运行在浏览器中的 3D 引擎(基于WebGL的API的封装) 什么是WebGL? WebGL(英语:Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和Open…...
二维码智慧门牌管理系统:地址管理的现代革命
文章目录 前言一、标准地址的革新二、广泛的应用前景 前言 在科技不断发展和社会进步的背景下,高效、精准、智能的管理系统已经成为当今社会的迫切需求。传统的门牌管理系统在应对这一需求方面已显得力不从心,因此,二维码智慧门牌管理系统的…...
BricsCAD 23 for Mac:轻松驾驭CAD建模的强大工具
如果你正在寻找一款功能强大、操作简便的CAD建模软件,那么BricsCAD 23 for Mac绝对值得你考虑。这款软件将为你提供一套完整的2D和3D设计解决方案,让你在Mac上轻松创建、编辑和修改图形。 一、BricsCAD 23的功能特点 高效的2D和3D建模:Bric…...
如何利用Web应用防火墙应对未知威胁
网络安全是一个永恒的话题,尤其是在未知威胁不断涌现的情况下。Web应用防火墙(WAF)是企业网络安全防线的重要组成部分,能够帮助企业在面对未知威胁时采取有效的防护措施。本文将探讨如何利用Web应用防火墙应对未知的网络威胁。 一…...
四、多线程服务器
1.进程的缺陷和线程的优点 1.进程的缺陷 创建进程(复制)的工作本身会给操作系统带来相当沉重的负担。 而且,每个进程具有独立的内存空间,所以进程间通信的实现难度也会随之提高。 同时,上下文切换(Cont…...
基于vue实现滑块动画效果
主要实现:通过鼠标移移动、触摸元素、鼠标释放、离开元素事件来进行触发 创建了一个滑动盒子,其中包含一个滑块图片。通过鼠标按下或触摸开始事件,开始跟踪滑块的位置和鼠标/触摸位置之间的偏移量。然后,通过计算偏移量和起始时的…...
探寻蓝牙的未来:从蓝牙1.0到蓝牙5.4,如何引领无线连接革命?
►►►蓝牙名字的来源 这要源于一个小故事,公元940-985年,哈洛德布美塔特(Harald Blatand),后人称Harald Bluetooth,统一了整个丹麦。他的名字“Blatand”可能取自两个古老的丹麦词语。“bla”意思是黑皮肤的,而“tan…...
openssl 之 RSA加密数据设置OAEP SHA256填充方式
背景 如题 环境 openssl 1.1.1l c centos7.9 代码 /** 思路:填充方式自己写,不需要使用库提供的,然后加密时选择不填充的方式加密 关键代码 */ int padding_result RSA_padding_add_PKCS1_OAEP_mgf1(buf, padding_len, (unsigned char*…...
js将带标签的内容转为纯文本
背景:现需要将富文本的所有 html 标签全部删除得到纯文本 思路:创建临时DOM元素并获取其中的文本 创建一个临时 DOM 并给他赋值,然后我们使用 DOM 对象方法提取文本。 代码如下: convertToPlain( html){//新创建一个 divvar di…...
如何通过内网穿透实现远程连接NAS群晖drive并挂载电脑硬盘?
文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…...
4.2 抽象类
1. 抽象类概念 定义一个类时,常常需要定义一些成员方法用于描述类的行为特征,但有时这些方法的实现方式是无法确定的。例如,Animal类中的shout()方法用于描述动物的叫声,但是不同的动物,叫声也不相同,因此…...
ITextRenderer将PDF转换为HTML详细教程
引入依赖 <dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf-itext5</artifactId><version>9.1.18</version></dependency> 问题一:输出中文字体 下载字体simsun.ttc 下载链接&am…...
c#设计模式-行为型模式 之 备忘录模式
🚀简介 备忘录模式(Memento Pattern)是一种行为型设计模式,它保存一个对象的某个状态,以便在适当的时候恢复对象。所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象…...
ffmpeg+安卓+yolo+RK3399部署
一次满足多项需求. 首先, 思路是, 使用ffmpeg解码本地mp4文件, 在无需任何其他改动的情况下, 就可以直接播放rtsp流, 这个是使用ffmpeg的好处. ffmpeg本身是c语言的, 所以需要编译成jni的库, https://note.youdao.com/s/6XeYftc 具体过程在这里, 用windows/macOS, Ubuntu应该都…...
发电机教程:小白必学的柴油发电机技巧
柴油发电机监控是关键的能源管理和维护工具,它用于确保持续的电力供应,提高能源效率,并延长发电机的寿命。 随着科技的不断发展,监控系统变得更加智能和高效,使用户能够远程监测和管理柴油发电机的运行状态。 客户案例…...
基础课1——人工智能的分类和层次
1.人工智能的分类 人工智能(AI)的分类主要有以下几种: 弱人工智能(Artificial Narrow Intelligence,ANI):弱人工智能是擅长于单个方面的人工智能,例如战胜象棋世界冠军的人工智能阿…...
C语言复杂表达式与指针高级
一、指针数组与数组指针 1.指针数组VS数组指针 (1)指针数组:实质是一个数组,因为这个数组中传参的内容全部是指针变量。 (2)数组指针:实质是一个指针,这个指针指向一个数组 2.分析指…...
【Python从入门到进阶】39、使用Selenium自动验证滑块登录
接上篇《38、selenium关于Chrome handless的基本使用》 上一篇我们介绍了selenium中有关Chrome的无头版浏览器Chrome Handless的使用。本篇我们使用selenium做一些常见的复杂验证功能,首先我们来讲解如何进行滑块自动验证的操作。 一、测试用例介绍 我们要通过sel…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
