前语:以下部分内容参考了其他博客。我下面写的内容网上一大堆,只不过那些都是别人的,要自己亲手总结,自己亲手敲一敲才会学到知识。所以,各位看官别嫌弃部分内容又和某一篇博客内容一样。一样的都是基础,一样的都是原理。

一、简介

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

基本的逻辑卷管理概念:

PV(Physical Volume)- 物理卷 
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备

VG(Volumne Group)- 卷组 
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

LV(Logical Volume)- 逻辑卷 
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

关系图如下:

PE(Physical Extent)- 物理块

LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块,也就是说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。所以调整PE会影响到LVM的最大容量!不过,在 CentOS 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。

简介内容来自博客:https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html

二、安装LVM管理工具

2.1 检查系统是否安装了LVM管理工具

#rpm -qa|grep lvm

2.2 如果未安装,使用yum方式安装

#yun install lvm*

#rpm -qa|grep lvm

三、创建LVM系统分区的主要操作步骤

3.1、给新的系统做分区

一、给系统做分区操作
1、查看当前系统的磁盘情况:lsblk 或 fdisk -l
2、创建新的分区(最多可分配3个主分区1个扩展分区,或4个主分区):fdisk
3、创建物理卷PV:pvcreate
4、创建卷组VG:vgcreate
5、创建逻辑卷LV:lvcreate
6、将新建分区设置为系统所需格式(可选择ext3、etx4等格式):mkfs.ext4 或 mkfs.ext3
7、挂载LV到指定挂载点(系统没有该挂载点时需要提前手动创建):mount
8、将分区信息写入/etc/fstab(设置开机自动挂载磁盘):手动写入fstab文件(#sudo blkid;#vim /etc/fstab)结束

3.2 LVM扩容

二、LVM扩容操作
1、如果当前卷组没有free空间,可添加一块新的物理磁盘1.1、创建分区:fdisk1.2、创建PV:pvcreate1.3、将刚刚创建的PV添加到要扩容的VG中:vgextend1.4、使用VG的free空间对LV扩容:lvextend1.5、对文件系统进行扩容:resize2fs
2、如果当前VG还有free空间,可直接使用VG的free空间对LV扩容2.1、查看VG的free空间:vgs2.2、使用VG的free空间对LV扩容:lvextend2.3、对文件系统进行扩容:resize2fs结束

3.3 LVM缩减

三、LVM缩减操作(需要离线操作)
3.1、umount文件系统:umount
3.2、缩减文件系统:resize2fs
3.3、磁盘检查:e2fsck
3.4、缩减LV:lvreduce
3.5、挂载:mount
3.6、查看:df -h结束

3.4、VG缩减

四、VG缩减
1、umount文件系统:umount
2、查看当前PV情况:pvs
3、将物理卷从逻辑卷中删除:vgreduce
4、查看pv情况:pvs结束

3.5、删除LVM

四、删除LVM:把创建的步骤反过来操作
1、umount文件系统:umount
2、移除LV:lvremove
3、在/etc/fstab文件中删除对应逻辑卷
4、移除VG:vgremove
5、移除PV:pvremove结束

四、实际操作

4.1 磁盘分区

首先,可以通过命令 lsblk 查看磁盘分区状态,卷组与逻辑卷信息:

例如:lsblk

[root@0023 ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda           253:0    0   40G  0 disk
├─vda1        253:1    0    4G  0 part [SWAP]
└─vda2        253:2    0   36G  0 part /
vdb           253:16   0   60G  0 disk
└─vdb1        253:17   0   60G  0 part ├─is-boot 252:0    0  528M  0 lvm  /boot├─is-opt  252:1    0    8G  0 lvm  /opt├─is-log  252:2    0   16G  0 lvm  /srv/ftpd/log└─is-data 252:3    0   30G  0 lvm  /opt/filedata/data
vdc           253:32   0  860G  0 disk # vdc就是新挂上的硬盘。下面将其分区,然后添加在卷组is中,扩容is卷组。
# 然后,再创建逻辑卷。

也可以通过 df -h查看当前服务器分区挂载信息:

例如:df -h

[root@0023 ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/vda2               36G  2.0G   32G   6% /
devtmpfs                16G     0   16G   0% /dev
tmpfs                   16G     0   16G   0% /dev/shm
tmpfs                   16G  161M   16G   2% /run
tmpfs                   16G     0   16G   0% /sys/fs/cgroup
/dev/mapper/is-boot  504M  804K  466M   1% /boot
/dev/mapper/is-opt   7.8G  137M  7.3G   2% /opt
/dev/mapper/is-log    16G   45M   15G   1% /srv/ftpd/log
/dev/mapper/is-data   30G  302M   28G   2% /opt/filedata/data
tmpfs                  3.2G     0  3.2G   0% /run/user/1000
tmpfs                  3.2G     0  3.2G   0% /run/user/0

也可以通过命令 fdisk -l 查看当前挂在服务器上的磁盘信息:

例如:

[root@0026 ~]# fdisk -lDisk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000a9cf3Device Boot      Start         End      Blocks   Id  System
/dev/vda1            2048     8390655     4194304   82  Linux swap / Solaris
/dev/vda2   *     8390656    83886079    37747712   83  LinuxDisk /dev/vdb: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4426653cDevice Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   125829119    62913536   83  LinuxDisk /dev/mapper/is-boot: 553 MB, 553648128 bytes, 1081344 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/mapper/is-opt: 17.2 GB, 17179869184 bytes, 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/mapper/is-log: 17.2 GB, 17179869184 bytes, 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/mapper/is-data: 26.8 GB, 26843545600 bytes, 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/vdc: 3221.2 GB, 3221225472000 bytes, 6291456000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

好,开始对vdc磁盘分区。下面例子中的主要步骤:

fdisk /dev/vdc

m  表示 查看帮助信息。

n   表示 添加一个新的分区。

p   表示 添加分区的类型为主分区,后面继续回车,表示选择默认值。注意:(1803550719-2018)/2/1024/1024=860GiB。

t    表示  设置一个分区的系统id。

L   表示  以列表的形式展示出id对应的类型。

8e  表示 选择的id是8e,对应的分区管理机制是Linux LVM。

p  表示 打印(print)出分区列表信息。

w  表示 只要确认上一步信息无误,最后保存(将分区列表保存至磁盘)且退出。

至此,分区操作步骤完成。

[root@0023 ~]# fdisk /dev/vdc
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x91bba662.Command (m for help): m
Command actiona   toggle a bootable flagb   edit bsd disklabelc   toggle the dos compatibility flagd   delete a partitiong   create a new empty GPT partition tableG   create an IRIX (SGI) partition tablel   list known partition typesm   print this menun   add a new partitiono   create a new empty DOS partition tablep   print the partition tableq   quit without saving changess   create a new empty Sun disklabelt   change a partition's system idu   change display/entry unitsv   verify the partition tablew   write table to disk and exitx   extra functionality (experts only)Command (m for help): n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-1803550719, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1803550719, default 1803550719):
Using default value 1803550719
Partition 1 of type Linux and of size 860 GiB is setCommand (m for help): t
Selected partition 1
Hex code (type L to list all codes): L0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1 80  Old Minix
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'Command (m for help): pDisk /dev/vdc: 923.4 GB, 923417968640 bytes, 1803550720 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x91bba662Device Boot      Start         End      Blocks   Id  System
/dev/vdc1            2048  1803550719   901774336   8e  Linux LVMCommand (m for help): w
The partition table has been altered!

4.2 磁盘扩容

完成了分区后,开始进行扩容。整个操作流程就是:

分区 ——> 创建物理卷 ——> 卷组扩容 ——> 逻辑卷扩容

|——> 创建逻辑卷

创建物理卷:

[root@0023 ~]# pvcreate /dev/vdc1
Physical volume "/dev/vdc1" successfully created.

卷组扩容:

[root@0023 ~]# vgextend is /dev/vdc1
Volume group "is" successfully extended
# is:卷组名

查看卷组扩容的信息:Free  PE / Size 就是当前卷组的可用容量,即可用于对逻辑卷扩容,或新创建逻辑卷。

[root@0023 ~]# vgdisplay--- Volume group ---VG Name               isSystem ID             Format                lvm2Metadata Areas        2Metadata Sequence No  6VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                4Open LV               4Max PV                0Cur PV                2Act PV                2VG Size               919.99 GiBPE Size               4.00 MiBTotal PE              235518Alloc PE / Size       13956 / 54.52 GiBFree  PE / Size       221562 / 865.48 GiB           ######## 当前卷组is的可用空间VG UUID               PaHd9O-kwNB-GU5n-6ef4-X9PS-MQ87-cIegBg

卷组有可用空间了,为业务需要,创建一个逻辑卷:

[root@0023 ~]# mkdir -p /opt/filedata/databackup
[root@0023 ~]# lvcreate -L 410g -n databackup isLogical volume "databackup" created.
#分区databackup的大小为410G,410G前面的 L 必须大写。

创建文件系统:(或:mkfs.ext4  -f  /dev/is/databackup)

[root@0023 ~]# mkfs -t ext4 /dev/is/databackup
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
26869760 inodes, 107479040 blocks
5373952 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2256535552
3280 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done  

写入文件系统(新建的逻辑卷不需要这一步,但是逻辑卷扩展就需要这一步):

[root@0023 ~]# resize2fs /dev/is/databackup
resize2fs 1.42.9 (28-Dec-2013)
The filesystem is already 107479040 blocks long.  Nothing to do!

分区挂载:

[root@0023 ~]# mount /dev/is/databackup /opt/filedata/databackup
# 挂载成功后,不会打印信息
# 挂载之前,必须要保证文件夹路径/opt/filedata/databackup已经存在。如果不存在,就手动创建。

为了在系统启动时自动加载文件系统,将分区信息写入/etc/fstab:

[root@0023 ~]# sudo blkid
/dev/mapper/is-databackup: UUID="de43cb01-4ef6-44a5-8869-cae2366s33d4" TYPE="ext4"
# sudo blkid 查看 分区的唯一ID号。[root@0023 ~]# vim /etc/fstab[root@0023 ~]# cat /etc/fstab
UUID=de43cb01-4ef6-44a5-8869-cae2366s33d4 /opt/filedata/databackup ext4 defaults 0 0

至此,就可以输入 vgdisplay 查看卷组的free容量,看看是不是少了410G了。

上面,是创建了一个卷组。下面,开始对已经存在的逻辑卷扩容。

操作步骤简单,只需要两行命令:

lvextend -L +450g /dev/is/data     resize2fs /dev/is/data

注意:

(1)如果450g前面没有+号的话,就表示将data逻辑卷扩容至450g。有+号,表示对data逻辑卷在原来的基础上再扩容450g。

如果,想将当前卷组is的全部剩余free容量都添加到data逻辑卷中,可执行:lvextend -l +100%FREE /dev/is/data

+号前面是小写的L。

(2) resizefs2命令重新加载逻辑卷的大小才能生效。

4.3 LVM缩减

注意:缩减操作需要离线处理。

A. umount 文件系统

B. 缩减文件系统

# resize2fs /dev/vg0/lv1 4G

提示需要先运行磁盘检查。

C. 检查磁盘

# e2fsck –f /dev/vg0/lv1

D. 再次执行缩减操作

缩减文件系统成功,下面缩减LV的大小。

E. 缩减LV

# lvreduce /dev/vg0/lv1 –L 4G

说明:Step E 和Step D 缩减的大小必须保持一致,这里的4G是缩减到的大小;如果使用的是"-4G",则表示容量减少多少的意思。

F. 挂载查看

LV 缩减成功。

LVM缩减参考来源:https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html

4.4 VG缩减

A. umount 文件系统

B. 查看当前的PV详情

C. 将/dev/sdg 从vg0 中移除

# vgreduce vg0 /dev/sdg

D. 再次查看PV情况

/dev/sdg 已经不属于vg0了。

E. 查看vg0 的情况

vg0 的大小减少了5GB.

VG 缩减成功。

VG缩减参考来源:https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html

4.5 删除LVM

如果要彻底的来移除LVM的话,需要把创建的步骤反过来操作。

A. umount 文件系统

B. 移除LV

# lvremove /dev/vg0/lv1

C. 移除VG

# vgremove vg0

D. 移除PV

# pvremove /dev/md5 /dev/sdf1 /dev/sdg /dev/sdh

LVM 移除成功。

LVM移除参考来源:https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html

Linux逻辑卷的拉伸和缩小。

五、LVM快照(snapshot)

LVM快照参考来源:https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html

Centos 7 利用LVM实现动态扩容(1)相关推荐

  1. Centos 7.5利用LVM实现动态扩容大小

    Centos 7.5 利用LVM实现动态扩容大小 操作系统:Centos 7.5 64位 说明:当有在操作系统时发现磁盘空间不足时,可以通过增加磁盘空间大小来满足,但是以哪种方式来增加可能有不同方法, ...

  2. 云主机磁盘存储动态扩容(LVM)方案

    一.场景 云主机使用的越来越多,现在几乎没有不使用云主机的,经常会碰到需要升级硬盘存储的操作,直接添加磁盘,或动态在原有的分区上扩容,所使用的方案大致有如下: 1.基于lvm格式 在线动态扩容 2.非 ...

  3. 3306端口_Spring Boot随机端口你都不会,怎么动态扩容?

    一般情况下每个spring boot工程启动都有固定的端口,但是固定端口不利用服务的动态扩容,如果在一台服务器上需要对同一个服务进行多实例部署,很容易出现端口冲突,那么怎么解决这个问题呢? rando ...

  4. 1 CentOS下磁盘LVM扩容

    前几天遇到了这样一个情景: 一个服务器是以虚拟机的形式提供的,通过df -h看服务器磁盘空间只有30多个G,但通过fdisk -l看发现有一个160G的磁盘空间 没有挂载,因此需要在不重启的前提下将1 ...

  5. Linux-通过LVM对服务器磁盘进行动态扩容

    最近在一次部署配置服务器的过程中,部署完成后使用的时候发现磁盘空间不能满足需求需要扩容,于是就在服务器的硬盘位增加了几块硬盘,然后在Linux管理后台,格式化.挂载磁盘.磁盘分区.结果是操作完成后(服 ...

  6. 动手Lab|利用CSI和Kubernetes实现动态扩容

    简介 随着我们对客户的关注,尤其是对金融领域的客户,我们可以发现容器编排技术具有很大的发展空间.开发者们希望能通过开源解决方案来重新设计运行在虚拟化基础设施和裸金属上的独立应用程序. 对于可扩展性和技 ...

  7. 虚拟机增加磁盘空间后lv扩容详细流程,linux扩容根目录详细流程【openstack和VMware虚拟机方法同理】,centos重装系统lvm后不可用处理流程,2021尾声祝福送上。

    文章目录 致辞 说明 环境准备 扩容流程 扩容根[/]目录 做扇区 增加pv空间 增加vg空间 增加lv空间 扩容后信息一览和说明 新增一块硬盘,把容量加到固定的vg和lv上 做扇区 增加pv空间 创 ...

  8. centos7.5系统动态扩容磁盘及系统挂载未分配硬盘空间

    一.系统动态扩容磁盘 系统 原磁盘大小 扩容大小 centos7.5 20G 18G 本次实验为虚拟机,首先看看本机原来的磁盘大小 [root@123 ~]# lsblk NAME MAJ:MIN R ...

  9. Linux扩大原有磁盘以增大LVM空间【扩容partion分区方式】

    如果Linux磁盘分区是LVM格式的,在扩大原有磁盘空间后,再对磁盘分区part扩容,进而实现LVM动态扩容 本次搭建的服务器为Vmware虚拟机,CentOS7.6 通过把原有500G磁盘扩大到70 ...

最新文章

  1. HTML5十五大新特性
  2. Hibernate学习笔记(一)----针对不同的数据库不同的配置
  3. docker mysql配置 丢失_Docker 从入门到掉坑
  4. Linux下命令行压缩照片或图片的脚本 (ImageMagick使用心得,convert,import,display实例)
  5. 《服务外包概论》实验报告——版本管理与控制工具的综合应用
  6. LeetCode77:Combinations
  7. golang 并发实践
  8. jQuery—淘宝精品服饰案例
  9. 31 SD配置-主数据-信用管理-定义自动信贷控制
  10. 计算机网络实验vc6实现串口通信,用vc的串口通信实验报告.docx
  11. 有线电信服务全球市场:未来三年复合年增长率将放缓
  12. os.path 大全
  13. [Material Design] 教你做一个Material风格、动画的按钮(MaterialButton)
  14. Shell nohup 命令详解
  15. 伺服速度控制模式接线图_PLC采用转矩、位置、速度模式控制伺服电机的方法
  16. i78700和i510400f性能差距大不大
  17. APIO 2017 考拉的游戏 题解
  18. 搞不懂DMP是什么?看这里就够
  19. redis脚本将hgetall转为json
  20. java 公历 农历_Java给定公历日期计算相应农历/阴历日期

热门文章

  1. 计算机二级C语言-A程序填空题
  2. 低代码学习教程:根据身份证号码计算性别
  3. 浏览器主页被hao.qq劫持
  4. 运筹学----线性规划组成三要素、可行域、最优值、线性规划问题数学模型一般形式、线性规划问题数学模型标准形式
  5. 2019年安徽省大学生网络攻防赛赛前培训——Day2
  6. 雷军亲自捧场,双液冷游戏手机演绎“暴力美学”
  7. Unity开发win10软件系列问题6: unity调用 win10 虚拟键盘tabtip.exe
  8. Unity3d自学之路(一)
  9. 小人数字时钟安卓版本APP
  10. 基于python的动物判别系统