root 6 years ago
parent 7d5e1e372e
commit e360f9f872

@ -0,0 +1,4 @@
# Google's Python Class
[GooglePython](http://developers.google.com/edu/python)

@ -1,9 +1,6 @@
blkid # **blkid**
===
查看块设备的文件系统类型、LABEL、UUID等信息 ## 说明
## 补充说明
在Linux下可以使用 **blkid命令** 对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备包括交换分区所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。 在Linux下可以使用 **blkid命令** 对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备包括交换分区所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。

@ -1,7 +1,4 @@
dstat # **dstat**
===
通用的系统资源统计工具
## 补充说明 ## 补充说明

@ -1,7 +1,4 @@
iostat # **iostat**
===
监视系统输入输出设备和CPU的使用情况
## 补充说明 ## 补充说明

@ -1,7 +1,4 @@
iotop # **iotop**
===
用来监视磁盘I/O使用状况的工具
## 补充说明 ## 补充说明

@ -1,23 +1,14 @@
lsof # **lsof**
===
显示Linux系统当前已打开的所有文件列表 ## 说明
## 补充说明 **lsof命令** 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具因为lsof命令需要访问核心内存和各种文件所以需要root用户执行
**lsof命令** 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具因为lsof命令需要访问核心内存和各种文件所以需要root用户执行。 在linux环境下任何事物都以文件的形式存在通过文件不仅仅可以访问常规数据还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等系统在后台都为该应用程序分配了一个文件描述符无论这个文件的本质如何该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的
在linux环境下任何事物都以文件的形式存在通过文件不仅仅可以访问常规数据还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等系统在后台都为该应用程序分配了一个文件描述符无论这个文件的本质如何该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。 ## 选项
### 语法 ```info
```
lsof(选项)
```
### 选项
```
-a列出打开文件存在的进程 -a列出打开文件存在的进程
-c<进程名>:列出指定进程所打开的文件; -c<进程名>:列出指定进程所打开的文件;
-g列出GID号进程详情 -g列出GID号进程详情
@ -28,104 +19,70 @@ lsof(选项)
-i<条件>列出符合条件的进程。4、6、协议、:端口、 @ip -i<条件>列出符合条件的进程。4、6、协议、:端口、 @ip
-p<进程号>:列出指定进程号所打开的文件; -p<进程号>:列出指定进程号所打开的文件;
-u列出UID号进程详情 -u列出UID号进程详情
-h显示帮助信息
-v显示版本信息。
```
### 实例
```
lsof
command PID USER FD type DEVICE SIZE NODE NAME
init 1 root cwd DIR 8,2 4096 2 /
init 1 root rtd DIR 8,2 4096 2 /
init 1 root txt REG 8,2 43496 6121706 /sbin/init
init 1 root mem REG 8,2 143600 7823908 /lib64/ld-2.5.so
init 1 root mem REG 8,2 1722304 7823915 /lib64/libc-2.5.so
init 1 root mem REG 8,2 23360 7823919 /lib64/libdl-2.5.so
init 1 root mem REG 8,2 95464 7824116 /lib64/libselinux.so.1
init 1 root mem REG 8,2 247496 7823947 /lib64/libsepol.so.1
init 1 root 10u FIFO 0,17 1233 /dev/initctl
migration 2 root cwd DIR 8,2 4096 2 /
migration 2 root rtd DIR 8,2 4096 2 /
migration 2 root txt unknown /proc/2/exe
ksoftirqd 3 root cwd DIR 8,2 4096 2 /
ksoftirqd 3 root rtd DIR 8,2 4096 2 /
ksoftirqd 3 root txt unknown /proc/3/exe
migration 4 root cwd DIR 8,2 4096 2 /
migration 4 root rtd DIR 8,2 4096 2 /
migration 4 root txt unknown /proc/4/exe
ksoftirqd 5 root cwd DIR 8,2 4096 2 /
ksoftirqd 5 root rtd DIR 8,2 4096 2 /
ksoftirqd 5 root txt unknown /proc/5/exe
events/0 6 root cwd DIR 8,2 4096 2 /
events/0 6 root rtd DIR 8,2 4096 2 /
events/0 6 root txt unknown /proc/6/exe
events/1 7 root cwd DIR 8,2 4096 2 /
``` ```
**lsof输出各列信息的意义如下** ## 实例
* COMMAND进程的名称 lsof输出各列信息的意义如下:
* PID进程标识符
* PPID父进程标识符需要指定-R参数 * COMMAND进程的名称
* USER进程所有者 * PID进程标识符
* PGID进程所属组 * PPID父进程标识符需要指定-R参数
* FD文件描述符应用程序通过文件描述符识别该文件。 * USER进程所有者
* PGID进程所属组
* FD文件描述符应用程序通过文件描述符识别该文件。
文件描述符列表: 文件描述符列表:
1. cwd表示current work dirctory应用程序的当前工作目录这是该应用程序启动的目录除非它本身对这个目录进行更改 * cwd表示current work dirctory应用程序的当前工作目录这是该应用程序启动的目录除非它本身对这个目录进行更改
2. txt该类型的文件是程序代码如应用程序二进制文件本身或共享库如上列表中显示的 /sbin/init 程序 * txt该类型的文件是程序代码如应用程序二进制文件本身或共享库如上列表中显示的 /sbin/init 程序
3. lnnlibrary references (AIX); * lnnlibrary references (AIX);
4. erFD information error (see NAME column); * erFD information error (see NAME column);
5. jldjail directory (FreeBSD); * jldjail directory (FreeBSD);
6. ltxshared library text (code and data); * ltxshared library text (code and data);
7. mxx hex memory-mapped type number xx. * mxx hex memory-mapped type number xx.
8. m86DOS Merge mapped file; * m86DOS Merge mapped file;
9. memmemory-mapped file; * memmemory-mapped file;
10. mmapmemory-mapped device; * mmapmemory-mapped device;
11. pdparent directory; * pdparent directory;
12. rtdroot directory; * rtdroot directory;
13. trkernel trace file (OpenBSD); * trkernel trace file (OpenBSD);
14. v86  VP/ix mapped file; * v86  VP/ix mapped file;
15. 0表示标准输出 * 0表示标准输出
16. 1表示标准输入 * 1表示标准输入
17. 2表示标准错误 * 2表示标准错误
一般在标准输出、标准错误、标准输入后还跟着文件状态模式: 一般在标准输出、标准错误、标准输入后还跟着文件状态模式:
1. u表示该文件被打开并处于读取/写入模式。 * u表示该文件被打开并处于读取/写入模式。
2. r表示该文件被打开并处于只读模式。 * r表示该文件被打开并处于只读模式。
3. w表示该文件被打开并处于。 * w表示该文件被打开并处于。
4. 空格表示该文件的状态模式为unknow且没有锁定。 * 空格表示该文件的状态模式为unknow且没有锁定。
5. -表示该文件的状态模式为unknow且被锁定。 * -表示该文件的状态模式为unknow且被锁定。
同时在文件状态模式后面,还跟着相关的锁: 同时在文件状态模式后面,还跟着相关的锁:
1. Nfor a Solaris NFS lock of unknown type; * Nfor a Solaris NFS lock of unknown type;
2. rfor read lock on part of the file; * rfor read lock on part of the file;
3. Rfor a read lock on the entire file; * Rfor a read lock on the entire file;
4. wfor a write lock on part of the file;(文件的部分写锁) * wfor a write lock on part of the file;(文件的部分写锁)
5. Wfor a write lock on the entire file;(整个文件的写锁) * Wfor a write lock on the entire file;(整个文件的写锁)
6. ufor a read and write lock of any length; * ufor a read and write lock of any length;
7. Ufor a lock of unknown type; * Ufor a lock of unknown type;
8. xfor an SCO OpenServer Xenix lock on part      of the file; * xfor an SCO OpenServer Xenix lock on part      of the file;
9. Xfor an SCO OpenServer Xenix lock on the      entire file; * Xfor an SCO OpenServer Xenix lock on the      entire file;
10. spaceif there is no lock. * spaceif there is no lock.
文件类型: 文件类型:
1. DIR表示目录。 * DIR表示目录。
2. CHR表示字符类型。 * CHR表示字符类型。
3. BLK块设备类型。 * BLK块设备类型。
4. UNIX UNIX 域套接字。 * UNIX UNIX 域套接字。
5. FIFO先进先出 (FIFO) 队列。 * FIFO先进先出 (FIFO) 队列。
6. IPv4网际协议 (IP) 套接字。 * IPv4网际协议 (IP) 套接字。
7. DEVICE指定磁盘的名称 * DEVICE指定磁盘的名称
8. SIZE文件的大小 * SIZE文件的大小
9. NODE索引节点文件在磁盘上的标识 * NODE索引节点文件在磁盘上的标识
10. NAME打开文件的确切名称 * NAME打开文件的确切名称
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -15,34 +15,12 @@
物理卷:指定要创建的物理卷对应的设备文件名。 物理卷:指定要创建的物理卷对应的设备文件名。
### 实例 ## 实例
查看磁盘信息:
```
[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格式 ,然后将`/dev/hda6`到`/dev/hda9`建立成为PV格式
``` ```sh
[root@localhost ~]# pvscan pvscan # 检查有无 PV在系统上找不到任何的 PV 存在!
No matching physical volumes found #找不到任何的 PV 存在!
``` ```
将6-9分区转成pv注意大括号的用途 将6-9分区转成pv注意大括号的用途
@ -175,6 +153,7 @@ FAQ:(Frequently Asked Question)
2.逻辑卷可以动态扩充的大小取决于卷组的大小 2.逻辑卷可以动态扩充的大小取决于卷组的大小
3.PE的大小最终影响 逻辑卷的最大大小逻辑卷的大小一定是PE的整数倍 3.PE的大小最终影响 逻辑卷的最大大小逻辑卷的大小一定是PE的整数倍
5.一个逻辑卷只能属于一个卷组 5.一个逻辑卷只能属于一个卷组
6.执行lvm操作时先前的meta元数据都保存在/etc/lvm/archive目录用vgcfgrestore可进行恢复操作
## LVM拉伸逻辑卷 ## LVM拉伸逻辑卷
@ -182,7 +161,8 @@ FAQ:(Frequently Asked Question)
(可在线扩容,无需卸载逻辑卷) (可在线扩容,无需卸载逻辑卷)
vgdisplay或vgs # 确保VG中有足够的空闲空间通过以下指令查询即可 vgdisplay或vgs # 确保VG中有足够的空闲空间通过以下指令查询即可
lvextend -L +5G /dev/vg01/lv01 # 扩充逻辑卷,增大5G的大小 lvextend -L +5G /dev/vg01/lv01 # 扩充逻辑卷,增大5G的大小
resize2fs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小) resize2fs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小)ext4格式命令
xfs_growfs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小)xfs格式命令
df -hT # 查看更新后文件系统 df -hT # 查看更新后文件系统
备注在没有使用命令resize2fs命令之前使用df -hT 命令看到逻辑卷的大小并没有变化,为什么? 备注在没有使用命令resize2fs命令之前使用df -hT 命令看到逻辑卷的大小并没有变化,为什么?
@ -192,7 +172,7 @@ df -hT # 查看更新后文件系统
## LVM缩小逻辑卷 ## LVM缩小逻辑卷
```sh ```sh
(在实际运作当中很少使用且这种操作及其危险,容易导致数据丢失)备注:逻辑卷的缩小必须是离线操作,要卸载逻辑卷; (在实际运作当中很少使用且这种操作及其危险,容易导致数据丢失)备注:逻辑卷的缩小必须是离线操作,要卸载逻辑卷;xfsdump可备份xfs系统格式
umount /dev/vg01/lv01 # 卸载已经挂载的逻辑卷 umount /dev/vg01/lv01 # 卸载已经挂载的逻辑卷
e2fsck -f /dev/vg01/lv01 # 强制检测文件系统信息 e2fsck -f /dev/vg01/lv01 # 强制检测文件系统信息
resize2fs /dev/vg01/lv01 10G # 缩小文件系统(一般都有提示信息)指定逻辑卷大小为10G大小 resize2fs /dev/vg01/lv01 10G # 缩小文件系统(一般都有提示信息)指定逻辑卷大小为10G大小
@ -361,4 +341,533 @@ vgs, vgdisplay # 查看卷组信息
```sh ```sh
vgreduce vg01 /dev/sdd # 将一个PV从指定卷组中移除 vgreduce vg01 /dev/sdd # 将一个PV从指定卷组中移除
vgdisplay或vgs # 查看缩小后的卷组大小 vgdisplay或vgs # 查看缩小后的卷组大小
``` ```
**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
```
**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
```
**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"。
**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"
```
**vgchange命令** 用于修改卷组的属性经常被用来设置卷组是处于活动状态或非活动状态。处于活动状态的卷组无法被删除必须使用vgchange命令将卷组设置为非活动状态后才能删除。
### 语法
```
vgchange(选项)(参数)
```
### 选项
```
-a设置卷组的活动状态。
```
### 参数
卷组:指定要设置属性的卷组。
### 实例
使用vgchange命令将卷组状态改为活动的。在命令行中输入下面的命令
```
[root@localhost ~]# vgchange -ay vg1000 #将卷组"vg1000"设置为活动状态
```
输出信息如下:
```
1 logical volume(s) in volume group "vg1000" now active
```
**vgremove命令** 用于用户删除LVM卷组。当要删除的卷组上已经创建了逻辑卷时vgremove命令需要进行确认删除防止误删除数据。
### 语法
```
vgremove(选项)(参数)
```
### 选项
```
-f强制删除。
```
### 参数
卷组:指定要删除的卷组名称。
### 实例
使用vgremove命令删除LVM卷组"vg1000"。在命令行中输入下面的命令:
```
[root@localhost ~]# vgremove vg1000 #删除卷组"vg1000"
Volume group "vg1000" successfully removed
```
**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
```
**vgextend命令** 用于动态扩展LVM卷组它通过向卷组中添加物理卷来增加卷组的容量。LVM卷组中的物理卷可以在使用vgcreate命令创建卷组时添加也可以使用vgextend命令动态的添加。
### 语法
```
vgextend(选项)(参数)
```
### 选项
```
-d调试模式
-t仅测试。
```
### 参数
* 卷组:指定要操作的卷组名称;
* 物理卷列表:指定要添加到卷组中的物理卷列表。
### 实例
使用vgextend命令向卷组"vg2000"中添加物理卷。在命令行中输入下面的命令:
```
[root@localhost ~]# vgextend vg2000 /dev/sdb2 #将物理卷"/dev/sdb2"加入卷组"vg2000"
```
输出信息如下:
```
Volume group "vg2000" successfully extended
```
**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"
```
**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`进行访问。
**lvscan命令** 用于扫描当前系统中存在的所有的LVM逻辑卷。使用lvscan指令可以发现系统中的所有逻辑卷及其对应的设备文件。
### 语法
```
lvscan(选项)
```
### 选项
```
-b显示逻辑卷的主设备和次设备号。
```
### 实例
使用lvscan命令扫描系统中的所有逻辑卷。在命令行中输入下面的命令
```
[root@localhost ~]# lvscan #扫描所有的逻辑卷
```
输出信息如下:
```
ACTIVE '/dev/vg1000/lvol0' [200.00 MB] inherit
```
**lvdisplay命令** 用于显示LVM逻辑卷空间大小、读写状态和快照信息等属性。如果省略"逻辑卷"参数则lvdisplay命令显示所有的逻辑卷属性。否则仅显示指定的逻辑卷属性。
### 语法
```
lvdisplay(参数)
```
### 参数
逻辑卷:指定要显示属性的逻辑卷对应的设备文件。
### 实例
使用lvdisplay命令显示指定逻辑卷的属性。在命令行中输入下面的命令
```
[root@localhost ~]# lvdisplay /dev/vg1000/lvol0 #显示逻辑卷属性
```
输出信息如下:
```
--- Logical volume ---
LV Name /dev/vg1000/lvol0
......省略部分输出内容......
Block device 253:0
```
**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
```
**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
```
**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
```
**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
```

@ -0,0 +1,11 @@
# **madadm**
常见Raid类型及基本特性,n代表磁盘数量
| Raid级别 | Raid0 | Raid1 | Raid5 | Raid6 | Raid10 |
| :--: | :--: | :--: | :--: | :--: | :--: |
| 别名 | 条带 | 镜像 | 分布式奇偶校检条带 | 双重奇偶校检条带 | 镜像加条带 |
| 磁盘数 | n≥1 | 2n(n≥1) | n≥3 | n≥4 | 2n(n≥2)≥4 |
| 可用容量 | 全部 | 50% | (n-1)/n | (n-2)/n | 50% |
| 最大容错 | 0 | n-1 | 1 | | n/2 |
| 读性能 | n | n | n-1 | | n |
| 写性能 | n | 1 | n-1 | | n/2 |

@ -1,7 +1,4 @@
mpstat # **mpstat**
===
显示各个可用CPU的状态
## 补充说明 ## 补充说明

@ -1,20 +1,10 @@
# netstat # **netstat**
=== ## 说明
查看Linux中网络系统状态信息
## 补充说明
**netstat命令** 用来打印Linux中网络系统的状态信息可让你得知整个Linux系统的网络情况。 **netstat命令** 用来打印Linux中网络系统的状态信息可让你得知整个Linux系统的网络情况。
### 语法 ## 选项
```sh
netstat(选项)
```
### 选项
```sh ```sh
-a或--all显示所有连线中的Socket -a或--all显示所有连线中的Socket

@ -1,47 +1,27 @@
tail # **tail**
===
在屏幕上显示指定文件的末尾若干行 ## 说明
## 补充说明
**tail命令** 用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。 **tail命令** 用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
注意:如果表示字节或行数的N值之前有一个”+”号则从文件开头的第N项开始显示而不是显示文件的最后N项。N值后面可以有后缀b表示512k表示1024m表示1 048576(1M)。 注意:如果表示bytes或lines的K值之前有一个”+”号则从文件开头的第K项开始显示K值后缀b表示512b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y
### 语法 ## 选项
``` ```info
tail(选项)(参数) --c, --bytes=K 输出文件尾部的第KK为整数个字节内容
-f, --follow[={name|descriptor}] 显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效
-F与选项“-follow=name --retry"连用时功能相同
-n, --lines=K 输出文件的尾部NN位数字行内容
--pid=<进程号> :与“-f”选项连用当指定的进程号的进程终止后自动退出tail命令
-q或——quiet或——silent当有多个文件参数时不输出各个文件名
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用指定监视文件变化时间隔的秒数
``` ```
### 选项 ## 实例
```sh
tail file # 显示文件file的最后10行
tail -n +20 file # 显示文件file的内容从第20行至文件末尾
tail -c 10 file # 显示文件file的最后10个字符
``` ```
--retry即是在tail命令启动时文件不可访问或者文件稍后变得不可访问都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用
-c<N>或——bytes=<N>输出文件尾部的NN为整数个字节内容
-f<name/descriptor>或;--follow<nameldescript>显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效
-F与选项“-follow=name”和“--retry"连用时功能相同;
-n<N>或——line=<N>输出文件的尾部NN位数字行内容。
--pid=<进程号>:与“-f”选项连用当指定的进程号的进程终止后自动退出tail命令
-q或——quiet或——silent当有多个文件参数时不输出各个文件名
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用指定监视文件变化时间隔的秒数
-v或——verbose当有多个文件参数时总是输出各个文件名
--help显示指令的帮助信息
--version显示指令的版本信息。
```
### 参数
文件列表:指定要显示尾部内容的文件列表。
### 实例
```
tail file 显示文件file的最后10行
tail -n +20 file 显示文件file的内容从第20行至文件末尾
tail -c 10 file 显示文件file的最后10个字符
```
<!-- Linux命令行搜索引擎https://jaywcjlove.github.io/linux-command/ -->

@ -6,9 +6,9 @@
### 选项 ### 选项
``` ```info
-a显示活动内页 -a显示活动内页
-f显示启动后创建的进程总数 -f显示boot启动后创建的进程总数;
-m显示slab信息 -m显示slab信息
-n头信息仅显示一次 -n头信息仅显示一次
-s以表格方式显示事件计数器和内存状态 -s以表格方式显示事件计数器和内存状态

Loading…
Cancel
Save