Black-Gold 6 years ago
parent 9713e79f90
commit 7d5e1e372e

@ -1,11 +0,0 @@
from flask import Flask, url_for()
app = Flask(__name__)
@app.route('/')
def index():
return 'index!'
if __name__ == '__main__':
app.run()

@ -14,7 +14,7 @@
## 选项
```sh
```info
必选参数对长短选项同时适用
-d,--date=STRING 用STRING描述时间而不是'NOW'

@ -1,44 +0,0 @@
lvcreate
===
用于创建LVM的逻辑卷
## 补充说明
**lvcreate命令** 用于创建LVM的逻辑卷。逻辑卷是创建在卷组之上的。逻辑卷对应的设备文件保存在卷组目录下例如在卷组"vg1000"上创建一个逻辑卷"lvol0",则此逻辑卷对应的设备文件为"/dev/vg1000/lvol0"。
### 语法
```
lvcreate(选项)(参数)
```
### 选项
```
-L指定逻辑卷的大小单位为“kKmMgGtT”字节
-l指定逻辑卷的大小LE数
```
### 参数
逻辑卷:指定要创建的逻辑卷名称。
### 实例
使用lvcreate命令在卷组"vg1000"上创建一个200MB的逻辑卷。在命令行中输入下面的命令
```
[root@localhost ~]# lvcreate -L 200M vg1000 #创建大小为200M的逻辑卷
```
输出信息如下:
```
Logical volume "lvol0" created
```
说明:创建成功后,新的逻辑卷"lvol0",将通过设备文件`/dev/vg1000/lvol0`进行访问。
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,38 +0,0 @@
lvdisplay
===
显示逻辑卷属性
## 补充说明
**lvdisplay命令** 用于显示LVM逻辑卷空间大小、读写状态和快照信息等属性。如果省略"逻辑卷"参数则lvdisplay命令显示所有的逻辑卷属性。否则仅显示指定的逻辑卷属性。
### 语法
```
lvdisplay(参数)
```
### 参数
逻辑卷:指定要显示属性的逻辑卷对应的设备文件。
### 实例
使用lvdisplay命令显示指定逻辑卷的属性。在命令行中输入下面的命令
```
[root@localhost ~]# lvdisplay /dev/vg1000/lvol0 #显示逻辑卷属性
```
输出信息如下:
```
--- Logical volume ---
LV Name /dev/vg1000/lvol0
......省略部分输出内容......
Block device 253:0
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,43 +0,0 @@
lvextend
===
扩展逻辑卷空间
## 补充说明
**lvextend命令** 用于在线扩展逻辑卷的空间大小而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间整个空间扩展过程对于应用程序来说是完全透明的。
### 语法
```
lvextend(选项)(参数)
```
### 选项
```
-L指定逻辑卷的大小单位为“kKmMgGtT”字节
-l指定逻辑卷的大小LE数
```
### 参数
逻辑卷:指定要扩展空间的逻辑卷。
### 实例
使用lvextend命令为逻辑卷`/dev/vg1000/lvol0`增加100M空间。在命令行中输入下面的命令
```
[root@localhost ~]# lvextend -L +100M /dev/vg1000/lvol0 #为了解决增加100M空间
```
输出信息如下:
```
Extending logical volume lvol0 to 300.00 MB
Logical volume lvol0 successfully resized
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -0,0 +1,364 @@
# *LVM*
## **pvcreate**
## 选项
```info
-f 强制创建物理卷,不需要用户确认
-u 指定设备的UUID
-y 所有的问题都回答“yes”
-Z 是否利用前4个扇区
```
### 参数
物理卷:指定要创建的物理卷对应的设备文件名。
### 实例
查看磁盘信息:
```
[root@localhost ~]# fdisk -l
Disk /dev/hda: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 1288 10241437+ 83 Linux
/dev/hda3 1289 1925 5116702+ 83 Linux
/dev/hda4 1926 5005 24740100 5 Extended
/dev/hda5 1926 2052 1020096 82 Linux swap / Solaris
/dev/hda6 2053 2235 1469916 8e Linux LVM
/dev/hda7 2236 2418 1469916 8e Linux LVM
/dev/hda8 2419 2601 1469916 8e Linux LVM
/dev/hda9 2602 2784 1469916 8e Linux LVM
```
检查有无 PV 在系统上,然后将`/dev/hda6`到`/dev/hda9`建立成为PV格式
```
[root@localhost ~]# pvscan
No matching physical volumes found #找不到任何的 PV 存在!
```
将6-9分区转成pv注意大括号的用途
```
[root@localhost ~]# pvcreate /dev/hda{6,7,8,9}
Physical volume "/dev/hda6" successfully created
Physical volume "/dev/hda7" successfully created
Physical volume "/dev/hda8" successfully created
Physical volume "/dev/hda9" successfully created
```
这就分別表示每个 PV 的信息与系统所有 PV 的信息:
```
[root@localhost ~]# pvscan
PV /dev/hda6 lvm2 [1.40 GB]
PV /dev/hda7 lvm2 [1.40 GB]
PV /dev/hda8 lvm2 [1.40 GB]
PV /dev/hda9 lvm2 [1.40 GB]
Total: 4 [5.61 GB] / in use: 0 [0 ] / in no VG: 4 [5.61 GB]
```
更详细的列示出系统上面每个 PV 信息:
```
[root@localhost ~]# pvdisplay
"/dev/hda6" is a new physical volume of "1.40 GB"
--- NEW Physical volume ---
PV Name /dev/hda6 #实际的 partition 分区名称
VG Name #因为尚未分配出去,所以空白!
PV Size 1.40 GB #就是容量说明
Allocatable NO #是否已被分配,结果是 NO
PE Size (KByte) 0 #在此 PV 內的 PE 大小
Total PE 0 #共分割出几个 PE
free PE 0 #沒被 LV 用掉的 PE
Allocated PE 0 #尚可分配出去的 PE 数量
PV UUID Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN
....(底下省略)....
```
删除物理卷:
```
[root@localhost ~]# pvremove /dev/sdb2
Labels on physical volume "/dev/sdb2" successfully wiped
```
修改物理卷属性:
```
[root@localhost ~]# pvchange -x n /dev/sdb1 #禁止分配指定物理卷上的PE
Physical volume "/dev/sdb1" changed
1 physical volume changed / 0 physical volumes not changed
```
**pvscan命令** 会扫描系统中连接的所有硬盘列出找到的物理卷列表。使用pvscan命令的`-n`选项可以显示硬盘中的不属于任何卷组的物理卷,这些物理卷是未被使用的。
### 语法
```
pvscan(选项)
```
### 选项
```
-d调试模式
-e仅显示属于输出卷组的物理卷
-n仅显示不属于任何卷组的物理卷
-s短格式输出
-u显示UUID。
```
### 实例
使用pvscan命令扫描当前系统中所有硬盘的物理卷在命令行中输入下面的命令
```
[root@localhost ~]# pvscan #扫描所有硬盘上的物理卷
```
输出信息如下:
```
PV /dev/sdb1 lvm2 [101.94 MB]
PV /dev/sdb2 lvm2 [101.98 MB]
Total: 2 [203.92 MB] / in use: 0 [0 ] / in no VG: 2 [203.92
MB]
```
说明:本例中,输出了两个物理卷,它们不属于任何卷组,是可被利用的物理卷。
**pvdisplay命令** 用于显示物理卷的属性。pvdisplay命令显示的物理卷信息包括物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。
## 选项
```info
-s 以短格式输出;
-m 显示PE到LE的映射。
```
## LVM(逻辑卷管理)
```sh
概念介绍:
LVM logical volume Manager逻辑卷管理通过将底层物理硬盘抽象封装起来以逻辑卷的形式表现给上层系统逻辑卷的大小可以动态调整的而且不会丢失数据。新加入的硬盘也不会改变现有上层的逻辑卷
LVM特点
1.作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性;
2.LVM屏蔽了底层磁盘布局便于动态的调整磁盘空间大小
相关概念:
PE物理拓展单元) #逻辑卷空间管理的基本单位默认是4M的大小
PV 物理卷
VG 卷组
LV 逻辑卷
LVM原理解析
1.物理磁盘被格式化为PV空间被分为一个个的PE
2.不同的PV加入同一个VG不同的PV的PE全部进入VG的PE池
3.LV基于PE创建大小为PE的整数倍组成LV的PE可能来自不同物理磁盘
4.LV格式化完成后挂载就可以使用了
5.LV的扩充缩减实际上就是增加了或者减少了组成该LV的PE的数量。其过程不会丢失数据信息
```
FAQ:(Frequently Asked Question)
1.LV的大小应该由PE大小和PE数量决定;默认PE为4M大小的情况下一个逻辑卷最大可以支持256G
2.逻辑卷可以动态扩充的大小取决于卷组的大小
3.PE的大小最终影响 逻辑卷的最大大小逻辑卷的大小一定是PE的整数倍
5.一个逻辑卷只能属于一个卷组
## LVM拉伸逻辑卷
```sh
(可在线扩容,无需卸载逻辑卷)
vgdisplay或vgs # 确保VG中有足够的空闲空间通过以下指令查询即可
lvextend -L +5G /dev/vg01/lv01 # 扩充逻辑卷,增大5G的大小
resize2fs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小)
df -hT # 查看更新后文件系统
备注在没有使用命令resize2fs命令之前使用df -hT 命令看到逻辑卷的大小并没有变化,为什么?
逻辑卷是底层的东西,操作系统要使用底层的空间需要创建文件系统,创建文件系统(格式化操作)的时候大小就固定下来,因此逻辑卷的大小也是固定的。在拉伸逻辑卷空间时,并没有更新文件系统,所以要要执行更新文件系统的操作,要操作系统识别固定的大小;
```
## LVM缩小逻辑卷
```sh
(在实际运作当中很少使用且这种操作及其危险,容易导致数据丢失)备注:逻辑卷的缩小必须是离线操作,要卸载逻辑卷;
umount /dev/vg01/lv01 # 卸载已经挂载的逻辑卷
e2fsck -f /dev/vg01/lv01 # 强制检测文件系统信息
resize2fs /dev/vg01/lv01 10G # 缩小文件系统(一般都有提示信息)指定逻辑卷大小为10G大小
lvreduce -L 10G /dev/vg01/lv01 # 缩小LV
lvdisplay lvs ; lvscan # 查看缩小后的LV
mount /dev/vg01/lv01 /mnt # 挂载
切记:严格按照顺序执行命令。先缩小文件系统,后缩小底层空间
```
## LVM拉伸卷组
```sh
pvcreate /dev/sdd # 创建新的物理卷
vgextend vg01 /dev/sdd # 向vg01卷组中添加物理卷/dev/sdd
vgs, vgdisplay # 查看卷组信息
```
## LVM缩小卷组
```sh
vgreduce vg01 /dev/sdd # 将一个PV从指定卷组中移除
vgdisplay或vgs # 查看缩小后的卷组大小
```
**pvchange命令** 允许管理员改变物理卷的分配许可。如果物理卷出现故障可以使用pvchange命令禁止分配物理卷上的PE。
### 语法
```
pvchange(选项)(参数)
```
### 选项
```
-u生成新的UUID
-x是否允许分配PE。
```
### 参数
物理卷:指定要修改属性的物理卷所对应的设备文件。
### 实例
使用pvchange命令禁止分配指定物理卷上的PE。在命令行中输入下面的命令
```
pvchange -x n /dev/sdb1 #禁止分配"/dev/sdb1"上的PE
```
输出信息如下:
```
Physical volume "/dev/sdb1" changed
1 physical volume changed / 0 physical volumes not changed
```
**pvremove命令** 用于删除一个存在的物理卷。使用pvremove指令删除物理卷时它将LVM分区上的物理卷信息删除使其不再被视为一个物理卷。
### 语法
```
pvremove(选项)(参数)
```
### 选项
```
-d调试模式
-f强制删除
-y对提问回答“yes”。
```
### 参数
物理卷:指定要删除的物理卷对应的设备文件名。
### 实例
使用pvremove指令删除物理卷`/dev/sdb2`。在命令行中输入下面的命令:
```
pvremove /dev/sdb2 #删除物理卷
Labels on physical volume "/dev/sdb2" successfully wiped
```
**pvdisplay命令** 用于显示物理卷的属性。pvdisplay命令显示的物理卷信息包括物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。
## 选项
```info
-s 以短格式输出;
-m 显示PE到LE的映射。
```
## LVM(逻辑卷管理)
```sh
概念介绍:
LVM logical volume Manager逻辑卷管理通过将底层物理硬盘抽象封装起来以逻辑卷的形式表现给上层系统逻辑卷的大小可以动态调整的而且不会丢失数据。新加入的硬盘也不会改变现有上层的逻辑卷
LVM特点
1.作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性;
2.LVM屏蔽了底层磁盘布局便于动态的调整磁盘空间大小
相关概念:
PE物理拓展单元) #逻辑卷空间管理的基本单位默认是4M的大小
PV 物理卷
VG 卷组
LV 逻辑卷
LVM原理解析
1.物理磁盘被格式化为PV空间被分为一个个的PE
2.不同的PV加入同一个VG不同的PV的PE全部进入VG的PE池
3.LV基于PE创建大小为PE的整数倍组成LV的PE可能来自不同物理磁盘
4.LV格式化完成后挂载就可以使用了
5.LV的扩充缩减实际上就是增加了或者减少了组成该LV的PE的数量。其过程不会丢失数据信息
```
FAQ:(Frequently Asked Question)
1.LV的大小应该由PE大小和PE数量决定;默认PE为4M大小的情况下一个逻辑卷最大可以支持256G
2.逻辑卷可以动态扩充的大小取决于卷组的大小
3.PE的大小最终影响 逻辑卷的最大大小逻辑卷的大小一定是PE的整数倍
5.一个逻辑卷只能属于一个卷组
## LVM拉伸逻辑卷
```sh
(可在线扩容,无需卸载逻辑卷)
vgdisplay或vgs # 确保VG中有足够的空闲空间通过以下指令查询即可
lvextend -L +5G /dev/vg01/lv01 # 扩充逻辑卷,增大5G的大小
resize2fs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小)
df -hT # 查看更新后文件系统
备注在没有使用命令resize2fs命令之前使用df -hT 命令看到逻辑卷的大小并没有变化,为什么?
逻辑卷是底层的东西,操作系统要使用底层的空间需要创建文件系统,创建文件系统(格式化操作)的时候大小就固定下来,因此逻辑卷的大小也是固定的。在拉伸逻辑卷空间时,并没有更新文件系统,所以要要执行更新文件系统的操作,要操作系统识别固定的大小;
```
## LVM缩小逻辑卷
```sh
(在实际运作当中很少使用且这种操作及其危险,容易导致数据丢失)备注:逻辑卷的缩小必须是离线操作,要卸载逻辑卷;
umount /dev/vg01/lv01 # 卸载已经挂载的逻辑卷
e2fsck -f /dev/vg01/lv01 # 强制检测文件系统信息
resize2fs /dev/vg01/lv01 10G # 缩小文件系统(一般都有提示信息)指定逻辑卷大小为10G大小
lvreduce -L 10G /dev/vg01/lv01 # 缩小LV
lvdisplay lvs ; lvscan # 查看缩小后的LV
mount /dev/vg01/lv01 /mnt # 挂载
切记:严格按照顺序执行命令。先缩小文件系统,后缩小底层空间
```
## LVM拉伸卷组
```sh
pvcreate /dev/sdd # 创建新的物理卷
vgextend vg01 /dev/sdd # 向vg01卷组中添加物理卷/dev/sdd
vgs, vgdisplay # 查看卷组信息
```
## LVM缩小卷组
```sh
vgreduce vg01 /dev/sdd # 将一个PV从指定卷组中移除
vgdisplay或vgs # 查看缩小后的卷组大小
```

@ -1,45 +0,0 @@
lvreduce
===
收缩逻辑卷空间
## 补充说明
**lvreduce命令** 用于减少LVM逻辑卷占用的空间大小。使用lvreduce命令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据所以在操作前必须进行确认。
### 语法
```
lvreduce(选项)(参数)
```
### 选项
```
-L指定逻辑卷的大小单位为“kKmMgGtT”字节
-l指定逻辑卷的大小LE数
```
### 参数
逻辑卷:指定要操作的逻辑卷对应的设备文件。
### 实例
使用lvreduce命令减少指定的逻辑卷的空间大小。在命令行中输入下面的命令
```
[root@localhost ~]# lvreduce -L -50M /dev/vg1000/lvol0 #将逻辑卷的空间大小减少50M
```
输出信息如下:
```
......省略部分输出内容......
Do you really want to reduce lvol0? [y/n]: y #确认操作
Reducing logical volume lvol0 to 252.00 MB
Logical volume lvol0 successfully resized
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,43 +0,0 @@
lvremove
===
删除指定LVM逻辑卷
## 补充说明
**lvremove命令** 用于删除指定LVM逻辑卷。如果逻辑卷已经使用mount命令加载则不能使用lvremove命令删除。必须使用umount命令卸载后逻辑卷方可被删除。
### 语法
```
lvremove(选项)(参数)
```
### 选项
```
-f强制删除。
```
### 参数
逻辑卷:指定要删除的逻辑卷。
### 实例
使用lvremove命令删除指定的逻辑卷。在命令行中输入下面的命令
```
[root@localhost ~]# lvremove /dev/vg1000/lvol0 #删除逻辑卷"lvol0"
```
输出信息如下:
```
Do you really want to remove active logical
volume "lvol0"? [y/n]: y #确认删除
Logical volume "lvol0" successfully removed
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,43 +0,0 @@
lvresize
===
调整逻辑卷空间大小
## 补充说明
**lvresize命令** 用于调整LVM逻辑卷的空间大小可以增大空间和缩小空间。使用lvresize命令调整逻辑卷空间大小和缩小空间时需要谨慎因为它有可能导致数据丢失。
### 语法
```
lvresize(选项)(参数)
```
### 选项
```
-L指定逻辑卷的大小单位为“kKmMgGtT”字节
-l指定逻辑卷的大小LE数
```
### 参数
逻辑卷:指定要删除的逻辑卷。
### 实例
使用lvresize命令调整最大的逻辑卷大小。在命令行中输入下面的命令
```
[root@localhost ~]# lvresize -L +200M /dev/vg1000/lvol0 #将逻辑卷空间增加200M
```
输出信息如下:
```
Extending logical volume lvol0 to 280.00 MB
Logical volume lvol0 successfully resized
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,37 +0,0 @@
lvscan
===
扫描逻辑卷
## 补充说明
**lvscan命令** 用于扫描当前系统中存在的所有的LVM逻辑卷。使用lvscan指令可以发现系统中的所有逻辑卷及其对应的设备文件。
### 语法
```
lvscan(选项)
```
### 选项
```
-b显示逻辑卷的主设备和次设备号。
```
### 实例
使用lvscan命令扫描系统中的所有逻辑卷。在命令行中输入下面的命令
```
[root@localhost ~]# lvscan #扫描所有的逻辑卷
```
输出信息如下:
```
ACTIVE '/dev/vg1000/lvol0' [200.00 MB] inherit
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,19 +1,10 @@
mkswap
===
建立和设置SWAP交换分区
# **mkswap**
## 补充说明
**mkswap命令** 用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的大小但是这个参数是为了向后兼容设置的没有使用的必要一般都将整个文件或者设备作为交换区
**mkswap命令** 用于在一个文件或者设备上建立交换分区。在建立完之后要使用sawpon命令开始使用这个交换区。最后一个选择性参数指定了交换区的大小但是这个参数是为了向后兼容设置的没有使用的必要一般都将整个文件或者设备作为交换区
### 语法
```
mkswap(选项)(参数)
```
### 选项
## 选项
```
-c建立交换区前先检查是否有损坏的区块
@ -22,11 +13,7 @@ mkswap(选项)(参数)
-v1建立新式交换区。
```
### 参数
设备:指定交换空间对应的设备文件或者交换文件。
### 实例
## 实例
**查看系统swap space大小**

@ -1,7 +1,4 @@
pv
===
显示当前在命令行执行的命令的进度信息,管道查看器。
## 补充说明

@ -1,43 +0,0 @@
pvchange
===
修改物理卷属性
## 补充说明
**pvchange命令** 允许管理员改变物理卷的分配许可。如果物理卷出现故障可以使用pvchange命令禁止分配物理卷上的PE。
### 语法
```
pvchange(选项)(参数)
```
### 选项
```
-u生成新的UUID
-x是否允许分配PE。
```
### 参数
物理卷:指定要修改属性的物理卷所对应的设备文件。
### 实例
使用pvchange命令禁止分配指定物理卷上的PE。在命令行中输入下面的命令
```
pvchange -x n /dev/sdb1 #禁止分配"/dev/sdb1"上的PE
```
输出信息如下:
```
Physical volume "/dev/sdb1" changed
1 physical volume changed / 0 physical volumes not changed
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,102 +0,0 @@
# **pvcreate**
## 选项
```info
-f 强制创建物理卷,不需要用户确认
-u 指定设备的UUID
-y 所有的问题都回答“yes”
-Z 是否利用前4个扇区
```
### 参数
物理卷:指定要创建的物理卷对应的设备文件名。
### 实例
查看磁盘信息:
```
[root@localhost ~]# fdisk -l
Disk /dev/hda: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 1288 10241437+ 83 Linux
/dev/hda3 1289 1925 5116702+ 83 Linux
/dev/hda4 1926 5005 24740100 5 Extended
/dev/hda5 1926 2052 1020096 82 Linux swap / Solaris
/dev/hda6 2053 2235 1469916 8e Linux LVM
/dev/hda7 2236 2418 1469916 8e Linux LVM
/dev/hda8 2419 2601 1469916 8e Linux LVM
/dev/hda9 2602 2784 1469916 8e Linux LVM
```
检查有无 PV 在系统上,然后将`/dev/hda6`到`/dev/hda9`建立成为PV格式
```
[root@localhost ~]# pvscan
No matching physical volumes found #找不到任何的 PV 存在!
```
将6-9分区转成pv注意大括号的用途
```
[root@localhost ~]# pvcreate /dev/hda{6,7,8,9}
Physical volume "/dev/hda6" successfully created
Physical volume "/dev/hda7" successfully created
Physical volume "/dev/hda8" successfully created
Physical volume "/dev/hda9" successfully created
```
这就分別表示每个 PV 的信息与系统所有 PV 的信息:
```
[root@localhost ~]# pvscan
PV /dev/hda6 lvm2 [1.40 GB]
PV /dev/hda7 lvm2 [1.40 GB]
PV /dev/hda8 lvm2 [1.40 GB]
PV /dev/hda9 lvm2 [1.40 GB]
Total: 4 [5.61 GB] / in use: 0 [0 ] / in no VG: 4 [5.61 GB]
```
更详细的列示出系统上面每个 PV 信息:
```
[root@localhost ~]# pvdisplay
"/dev/hda6" is a new physical volume of "1.40 GB"
--- NEW Physical volume ---
PV Name /dev/hda6 #实际的 partition 分区名称
VG Name #因为尚未分配出去,所以空白!
PV Size 1.40 GB #就是容量说明
Allocatable NO #是否已被分配,结果是 NO
PE Size (KByte) 0 #在此 PV 內的 PE 大小
Total PE 0 #共分割出几个 PE
free PE 0 #沒被 LV 用掉的 PE
Allocated PE 0 #尚可分配出去的 PE 数量
PV UUID Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN
....(底下省略)....
```
删除物理卷:
```
[root@localhost ~]# pvremove /dev/sdb2
Labels on physical volume "/dev/sdb2" successfully wiped
```
修改物理卷属性:
```
[root@localhost ~]# pvchange -x n /dev/sdb1 #禁止分配指定物理卷上的PE
Physical volume "/dev/sdb1" changed
1 physical volume changed / 0 physical volumes not changed
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,86 +0,0 @@
# **pvdisplay**
## 说明
**pvdisplay命令** 用于显示物理卷的属性。pvdisplay命令显示的物理卷信息包括物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。
## 选项
```info
-s 以短格式输出;
-m 显示PE到LE的映射。
```
## LVM(逻辑卷管理)
```sh
概念介绍:
LVM logical volume Manager逻辑卷管理通过将底层物理硬盘抽象封装起来以逻辑卷的形式表现给上层系统逻辑卷的大小可以动态调整的而且不会丢失数据。新加入的硬盘也不会改变现有上层的逻辑卷
LVM特点
1.作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性;
2.LVM屏蔽了底层磁盘布局便于动态的调整磁盘空间大小
相关概念:
PE物理拓展单元) #逻辑卷空间管理的基本单位默认是4M的大小
PV 物理卷
VG 卷组
LV 逻辑卷
LVM原理解析
1.物理磁盘被格式化为PV空间被分为一个个的PE
2.不同的PV加入同一个VG不同的PV的PE全部进入VG的PE池
3.LV基于PE创建大小为PE的整数倍组成LV的PE可能来自不同物理磁盘
4.LV格式化完成后挂载就可以使用了
5.LV的扩充缩减实际上就是增加了或者减少了组成该LV的PE的数量。其过程不会丢失数据信息
```
FAQ:(Frequently Asked Question)
1.LV的大小应该由PE大小和PE数量决定;默认PE为4M大小的情况下一个逻辑卷最大可以支持256G
2.逻辑卷可以动态扩充的大小取决于卷组的大小
3.PE的大小最终影响 逻辑卷的最大大小逻辑卷的大小一定是PE的整数倍
5.一个逻辑卷只能属于一个卷组
## LVM拉伸逻辑卷
```sh
(可在线扩容,无需卸载逻辑卷)
vgdisplay或vgs # 确保VG中有足够的空闲空间通过以下指令查询即可
lvextend -L +5G /dev/vg01/lv01 # 扩充逻辑卷,增大5G的大小
resize2fs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小)
df -hT # 查看更新后文件系统
备注在没有使用命令resize2fs命令之前使用df -hT 命令看到逻辑卷的大小并没有变化,为什么?
逻辑卷是底层的东西,操作系统要使用底层的空间需要创建文件系统,创建文件系统(格式化操作)的时候大小就固定下来,因此逻辑卷的大小也是固定的。在拉伸逻辑卷空间时,并没有更新文件系统,所以要要执行更新文件系统的操作,要操作系统识别固定的大小;
```
## LVM缩小逻辑卷
```sh
(在实际运作当中很少使用且这种操作及其危险,容易导致数据丢失)备注:逻辑卷的缩小必须是离线操作,要卸载逻辑卷;
umount /dev/vg01/lv01 # 卸载已经挂载的逻辑卷
e2fsck -f /dev/vg01/lv01 # 强制检测文件系统信息
resize2fs /dev/vg01/lv01 10G # 缩小文件系统(一般都有提示信息)指定逻辑卷大小为10G大小
lvreduce -L 10G /dev/vg01/lv01 # 缩小LV
lvdisplay lvs ; lvscan # 查看缩小后的LV
mount /dev/vg01/lv01 /mnt # 挂载
切记:严格按照顺序执行命令。先缩小文件系统,后缩小底层空间
```
## LVM拉伸卷组
```sh
pvcreate /dev/sdd # 创建新的物理卷
vgextend vg01 /dev/sdd # 向vg01卷组中添加物理卷/dev/sdd
vgs, vgdisplay # 查看卷组信息
```
## LVM缩小卷组
```sh
vgreduce vg01 /dev/sdd # 将一个PV从指定卷组中移除
vgdisplay或vgs # 查看缩小后的卷组大小
```
## 实例

@ -1,39 +0,0 @@
pvremove
===
删除一个存在的物理卷
## 补充说明
**pvremove命令** 用于删除一个存在的物理卷。使用pvremove指令删除物理卷时它将LVM分区上的物理卷信息删除使其不再被视为一个物理卷。
### 语法
```
pvremove(选项)(参数)
```
### 选项
```
-d调试模式
-f强制删除
-y对提问回答“yes”。
```
### 参数
物理卷:指定要删除的物理卷对应的设备文件名。
### 实例
使用pvremove指令删除物理卷`/dev/sdb2`。在命令行中输入下面的命令:
```
pvremove /dev/sdb2 #删除物理卷
Labels on physical volume "/dev/sdb2" successfully wiped
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,46 +0,0 @@
pvscan
===
扫描系统中所有硬盘的物理卷列表
## 补充说明
**pvscan命令** 会扫描系统中连接的所有硬盘列出找到的物理卷列表。使用pvscan命令的`-n`选项可以显示硬盘中的不属于任何卷组的物理卷,这些物理卷是未被使用的。
### 语法
```
pvscan(选项)
```
### 选项
```
-d调试模式
-e仅显示属于输出卷组的物理卷
-n仅显示不属于任何卷组的物理卷
-s短格式输出
-u显示UUID。
```
### 实例
使用pvscan命令扫描当前系统中所有硬盘的物理卷在命令行中输入下面的命令
```
[root@localhost ~]# pvscan #扫描所有硬盘上的物理卷
```
输出信息如下:
```
PV /dev/sdb1 lvm2 [101.94 MB]
PV /dev/sdb2 lvm2 [101.98 MB]
Total: 2 [203.92 MB] / in use: 0 [0 ] / in no VG: 2 [203.92
MB]
```
说明:本例中,输出了两个物理卷,它们不属于任何卷组,是可被利用的物理卷。
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,41 +0,0 @@
vgchange
===
修改卷组属性
## 补充说明
**vgchange命令** 用于修改卷组的属性经常被用来设置卷组是处于活动状态或非活动状态。处于活动状态的卷组无法被删除必须使用vgchange命令将卷组设置为非活动状态后才能删除。
### 语法
```
vgchange(选项)(参数)
```
### 选项
```
-a设置卷组的活动状态。
```
### 参数
卷组:指定要设置属性的卷组。
### 实例
使用vgchange命令将卷组状态改为活动的。在命令行中输入下面的命令
```
[root@localhost ~]# vgchange -ay vg1000 #将卷组"vg1000"设置为活动状态
```
输出信息如下:
```
1 logical volume(s) in volume group "vg1000" now active
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,51 +0,0 @@
vgconvert
===
转换卷组元数据格式
## 补充说明
**vgconvert命令** 用于转换指定LVM卷组的元数据格式通常将“LVM1”格式的卷组转换为“LVM2”格式。转换卷组元数据前必须保证卷组处于非活动状态否则无法完成转换操作。
### 语法
```
vgconvert(选项)(参数)
```
### 选项
```
-M要转换的卷组格式。
```
### 参数
卷组:指定要转换格式的卷组。
### 实例
转换卷组元数据格式前使用vgchange命令将卷组设置为非活动状态。在命令行中输入下面的命令
```
[root@localhost lvm]# vgchange -an vg1000 #设置卷组状态为非活动状态
0 logical volume(s) in volume group "vg1000" now active 
```
使用vgconvert命令将卷组"vg1000"从"LVM1"格式转换为"LVM2"格式。在命令行中输入下面的命令:
```
[root@localhost lvm]# vgconvert -M2 vg1000 #转换卷组为"LVM2"格式
Volume group vg1000 successfully converted
```
使用vgchange命令将卷组设置为活动状态。在命令行中输入下面的命令
```
[root@localhost lvm]# vgchange -ay vg1000 #设置卷组状态为活动状态
0 logical volume(s) in volume group "vg1000" now active
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,44 +0,0 @@
vgcreate
===
用于创建LVM卷组
## 补充说明
**vgcreate命令** 用于创建LVM卷组。卷组Volume Group将多个物理卷组织成一个整体屏蔽了底层物理卷细节。在卷组上创建逻辑卷时不用考虑具体的物理卷信息。
### 语法
```
vgcreate(选项)(参数)
```
### 选项
```
-l卷组上允许创建的最大逻辑卷数
-p卷组中允许添加的最大物理卷数
-s卷组上的物理卷的PE大小。
```
### 参数
* 卷组名:要创建的卷组名称;
* 物理卷列表:要加入到卷组中的物理卷列表。
### 实例
使用vgcreate命令创建卷组 "vg1000",并且将物理卷`/dev/sdb1`和`/dev/sdb2`添加到卷组中。在命令行中输入下面的命令:
```
[root@localhost ~]# vgcreate vg1000 /dev/sdb1 /dev/sdb2 #创建卷组"vg1000"
```
输出信息如下:
```
Volume group "vg1000" successfully created
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,46 +0,0 @@
vgdisplay
===
显示LVM卷组的信息
## 补充说明
**vgdisplay命令** 用于显示LVM卷组的信息。如果不指定"卷组"参数,则分别显示所有卷组的属性。
### 语法
```
vgdisplay(选项)(参数)
```
### 选项
```
-A仅显示活动卷组的属性
-s使用短格式输出的信息。
```
### 参数
卷组:要显示属性的卷组名称。
### 实例
使用vgdisplay命令显示存在的卷组"vg1000"的属性。在命令行中输入下面的命令:
```
[root@localhost ~]# vgdisplay vg1000 #显示卷组"vg1000"的属性
```
输出信息如下:
```
--- Volume group ---
VG Name vg1000
......省略部分输出内容......
free PE / Size 50 / 200.00 MB
VG UUID ICprwg-ZmhA-JKYF-WYuy-jNHa-AyCN-ZS5F7B
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,43 +0,0 @@
vgextend
===
向卷组中添加物理卷
## 补充说明
**vgextend命令** 用于动态扩展LVM卷组它通过向卷组中添加物理卷来增加卷组的容量。LVM卷组中的物理卷可以在使用vgcreate命令创建卷组时添加也可以使用vgextend命令动态的添加。
### 语法
```
vgextend(选项)(参数)
```
### 选项
```
-d调试模式
-t仅测试。
```
### 参数
* 卷组:指定要操作的卷组名称;
* 物理卷列表:指定要添加到卷组中的物理卷列表。
### 实例
使用vgextend命令向卷组"vg2000"中添加物理卷。在命令行中输入下面的命令:
```
[root@localhost ~]# vgextend vg2000 /dev/sdb2 #将物理卷"/dev/sdb2"加入卷组"vg2000"
```
输出信息如下:
```
Volume group "vg2000" successfully extended
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,43 +0,0 @@
vgreduce
===
从卷组中删除物理卷
## 补充说明
**vgreduce命令** 通过删除LVM卷组中的物理卷来减少卷组容量。不能删除LVM卷组中剩余的最后一个物理卷。
### 语法
```
vgreduce(选项)(参数)
```
### 选项
```
-a如果命令行中没有指定要删除的物理卷则删除所有的空物理卷
--removemissing删除卷组中丢失的物理卷使卷组恢复正常状态。
```
### 参数
* 卷组:指定要操作的卷组名称;
* 物理卷列表:指定要删除的物理卷列表。
### 实例
使用vgreduce命令从卷组"vg2000"中移除物理卷`/dev/sdb2`。在命令行中输入下面的命令:
```
[root@localhost ~]# vgreduce vg2000 /dev/sdb2 #将物理卷"/dev/sdb2"从卷组"vg2000"中删除
```
输出信息如下:
```
Removed "/dev/sdb2" from volume group "vg2000"
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,36 +0,0 @@
vgremove
===
用于用户删除LVM卷组
## 补充说明
**vgremove命令** 用于用户删除LVM卷组。当要删除的卷组上已经创建了逻辑卷时vgremove命令需要进行确认删除防止误删除数据。
### 语法
```
vgremove(选项)(参数)
```
### 选项
```
-f强制删除。
```
### 参数
卷组:指定要删除的卷组名称。
### 实例
使用vgremove命令删除LVM卷组"vg1000"。在命令行中输入下面的命令:
```
[root@localhost ~]# vgremove vg1000 #删除卷组"vg1000"
Volume group "vg1000" successfully removed
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,39 +0,0 @@
vgrename
===
使用vgrename命令可以重命名卷组的名称。
## 补充说明
**grename命令** 可以重命名卷组的名称。
### 语法
```
vgrename [选项] [旧卷组路径|旧卷组名称|旧卷组UUID] [新卷组路径|新卷组名称]
```
### 选项
```
-d 启用调试模式
-t 启用测试模式
```
### 例子
重命名卷组/dev/vg1为/dev/vg2。
```bash
[root@localhost ~]# vgrename /dev/vg1 /dev/vg2
Volume group "vg1" successfullyrenamed to "vg2"
```
重命名卷组vg1为vg2。
```bash
[root@localhost ~]# vgrename vg1 vg2
Volume group "vg1" successfully renamed to "vg2"
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,41 +0,0 @@
vgscan
===
扫描并显示系统中的卷组
## 补充说明
**vgscan命令** 查找系统中存在的LVM卷组并显示找到的卷组列表。vgscan命令仅显示找到的卷组的名称和LVM元数据类型要得到卷组的详细信息需要使用vgdisplay命令。
### 语法
```
vgscan(选项)
```
### 选项
```
-d调试模式
--ignorerlockingfailure忽略锁定失败的错误。
```
### 实例
使用vgscan命令扫描系统中所有的卷组。在命令行中输入下面的命令
```
[root@localhost ~]# vgscan #扫描并显示LVM卷组列表
```
输出信息如下:
```
Found volume group "vg2000" using metadata type lvm2
Found volume group "vg1000" using metadata type lvm2
```
说明本例中vgscan指令找到了两个LVM2卷组"vg1000"和"vg2000"。
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,104 +0,0 @@
vi
===
功能强大的纯文本编辑器
## 补充说明
**vi命令** 是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim它是vi的增强版vi Improved与vi编辑器完全兼容而且实现了很多增强功能。
vi编辑器支持编辑模式和命令模式编辑模式下可以完成文本的编辑功能命令模式下可以完成对文件的操作命令要正确使用vi编辑器就必须熟练掌握着两种模式的切换。默认情况下打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
vi编辑器提供了丰富的内置命令有些内置命令使用键盘组合键即可完成有些内置命令则需要以冒号“”开头输入。常用内置命令如下
```
Ctrl+u向文件首翻半屏
Ctrl+d向文件尾翻半屏
Ctrl+f向文件尾翻一屏
Ctrl+b向文件首翻一屏
Esc从编辑模式切换到命令模式
ZZ命令模式下保存当前文件所做的修改后退出vi
:行号:光标跳转到指定行的行首;
:$:光标跳转到最后一行的行首;
x或X删除一个字符x删除光标后的而X删除光标前的
D删除从当前光标到光标所在行尾的全部字符
dd删除光标行正行内容
ndd删除当前行及其后n-1行
nyy将当前行及其下n行的内容保存到寄存器其中为一个字母n为一个数字
p粘贴文本操作用于将缓存区的内容粘贴到当前光标所在位置的下方
P粘贴文本操作用于将缓存区的内容粘贴到当前光标所在位置的上方
/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
name文本查找操作用于从当前光标所在位置开始向文件头部查找指定字符串的内容查找的字符串会被加亮显示
abs/F/T替换文本操作用于在第a行到第b行之间将F字符串换成T字符串。其中“s/”表示进行替换操作;
a在当前字符后添加文本
A在行末添加文本
i在当前字符前插入文本
I在行首插入文本
o在当前行后面插入一空行
O在当前行前面插入一空行
:wq在命令模式下执行存盘退出操作
:w在命令模式下执行存盘操作
:w在命令模式下执行强制存盘操作
:q在命令模式下执行退出vi操作
:q在命令模式下执行强制退出vi操作
:e文件名在命令模式下打开并编辑指定名称的文件
:n在命令模式下如果同时打开多个文件则继续编辑下一个文件
:f在命令模式下用于显示当前的文件名、光标所在行的行号以及显示比例
:set number在命令模式下用于在最左端显示行号
:set nonumber在命令模式下用于在最左端不显示行号
```
### 语法
```
vi(选项)(参数)
```
### 选项
```
+<行号>:从指定行号的行开始先是文本内容;
-b以二进制模式打开文件用于编辑二进制文件和可执行文件
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
-d以diff模式打开文件当多个文件编辑时显示文件差异部分
-l使用lisp模式打开“lisp”和“showmatch”
-m取消写文件功能重设“write”选项
-M关闭修改功能
-n不实用缓存功能
-o<文件数目>:指定同时打开指定数目的文件;
-R以只读方式打开文件
-s安静模式不现实指令的任何错误信息。
```
### 参数
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
## 知识扩展
vi编辑器有三种工作方式命令方式、输入方式和ex转义方式。通过相应的命令或操作在这三种工作方式之间可以进行转换。
**命令方式**
在Shell提示符后输入命令vi进入vi编辑器并处于vi的命令方式。此时从键盘上输入的任何字符都被作为编辑命令来解释例如a(append表示附加命令i(insert表示插入命令x表示删除字符命令等。如果输入的字符不是vi的合法命令则机器发出“报警声”光标不移动。另外在命令方式下输入的字符即vi命令并不在屏幕上显示出来例如输入i屏幕上并无变化但通过执行i命令编辑器的工作方式却发生变化由命令方式变为输入方式。
**输入方式**
通过输入vi的插入命令i、附加命令a、打开命令o、替换命令s、修改命令(c或取代命令r可以从命令方式进入输入方式。在输入方式下从键盘上输入的所有字符都被插入到正在编辑的缓冲区中被当做该文件的正文。进入输入方式后输入的可见字符都在屏幕上显示出来而编辑命令不再起作用仅作为普通字母出现。例如在命令方式下输入字母i进到输入方式然后再输入i就在屏幕上相应光标处添加一个字母i。
由输入方式回到命令方式的办法是按下Esc键。如果已在命令方式下那么按下Esc键就会发出“嘟嘟”声。为了确保用户想执行的vi命令是在命令方式下输入的不妨多按几下Esc键听到嘟声后再输入命令。
**ex转义方式**
vi和ex编辑器的功能是相同的二者的主要区别是用户界面。在vi中命令通常是单个字母如a,x,r等。而在ex中命令是以Enter键结束的命令行。vi有一个专门的“转义”命令可访问很多面向行的ex命令。为使用ex转义方式可输入一个冒号:。作为ex命令提示符冒号出现在状态行通常在屏幕最下一行。按下中断键通常是Del键可终止正在执行的命令。多数文件管理命令都是在ex转义方式下执行的例如读取文件把编辑缓冲区的内容写到文件中等。转义命令执行后自动回到命令方式。例如
```
:1,$s/I/i/g 按Enter键
```
则从文件第一行至文件末尾($将大写I全部替换成小写i。vi编辑器的三种工作方式之间的转换如图所示。
!vi
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -1,18 +1,9 @@
vmstat
===
# **vmstat**
显示虚拟内存状态
## 补充说明
## 说明
**vmstat命令** 的含义为显示虚拟内存状态“Viryual Memor Statics”但是它可以报告关于进程、内存、I/O等系统整体运行状态。
### 语法
```
vmstat(选项)(参数)
```
### 选项
```

Loading…
Cancel
Save