From e360f9f872672c5b1b97ea87365037b522cdae0a Mon Sep 17 00:00:00 2001 From: root Date: Thu, 9 May 2019 20:12:42 +0800 Subject: [PATCH] --- LearnPython3/GooglePythonClass.py | 4 + Linux_man_cn/blkid.md | 7 +- Linux_man_cn/dstat.md | 5 +- Linux_man_cn/iostat.md | 5 +- Linux_man_cn/iotop.md | 5 +- Linux_man_cn/lsof.md | 157 +++------ Linux_man_cn/lvm.md | 567 ++++++++++++++++++++++++++++-- Linux_man_cn/mdadm.md | 11 + Linux_man_cn/mpstat.md | 5 +- Linux_man_cn/netstat.md | 16 +- Linux_man_cn/tail.md | 54 +-- Linux_man_cn/vmstat.md | 4 +- 12 files changed, 638 insertions(+), 202 deletions(-) create mode 100644 LearnPython3/GooglePythonClass.py diff --git a/LearnPython3/GooglePythonClass.py b/LearnPython3/GooglePythonClass.py new file mode 100644 index 0000000..60300b3 --- /dev/null +++ b/LearnPython3/GooglePythonClass.py @@ -0,0 +1,4 @@ +# Google's Python Class + +[GooglePython](http://developers.google.com/edu/python) + diff --git a/Linux_man_cn/blkid.md b/Linux_man_cn/blkid.md index 91055ff..1da15db 100644 --- a/Linux_man_cn/blkid.md +++ b/Linux_man_cn/blkid.md @@ -1,9 +1,6 @@ -blkid -=== +# **blkid** -查看块设备的文件系统类型、LABEL、UUID等信息 - -## 补充说明 +## 说明 在Linux下可以使用 **blkid命令** 对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。 diff --git a/Linux_man_cn/dstat.md b/Linux_man_cn/dstat.md index f5f29ff..f9af23e 100644 --- a/Linux_man_cn/dstat.md +++ b/Linux_man_cn/dstat.md @@ -1,7 +1,4 @@ -dstat -=== - -通用的系统资源统计工具 +# **dstat** ## 补充说明 diff --git a/Linux_man_cn/iostat.md b/Linux_man_cn/iostat.md index ddd84f7..f8e0119 100644 --- a/Linux_man_cn/iostat.md +++ b/Linux_man_cn/iostat.md @@ -1,7 +1,4 @@ -iostat -=== - -监视系统输入输出设备和CPU的使用情况 +# **iostat** ## 补充说明 diff --git a/Linux_man_cn/iotop.md b/Linux_man_cn/iotop.md index b1e3802..fd0dd32 100644 --- a/Linux_man_cn/iotop.md +++ b/Linux_man_cn/iotop.md @@ -1,7 +1,4 @@ -iotop -=== - -用来监视磁盘I/O使用状况的工具 +# **iotop** ## 补充说明 diff --git a/Linux_man_cn/lsof.md b/Linux_man_cn/lsof.md index 23216ff..29e5670 100644 --- a/Linux_man_cn/lsof.md +++ b/Linux_man_cn/lsof.md @@ -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工具能够查看这个列表对系统监测以及排错将是很有帮助的。 +## 选项 -### 语法 - -``` -lsof(选项) -``` - -### 选项 - -``` +```info -a:列出打开文件存在的进程; -c<进程名>:列出指定进程所打开的文件; -g:列出GID号进程详情; @@ -28,104 +19,70 @@ lsof(选项) -i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip ) -p<进程号>:列出指定进程号所打开的文件; -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:进程的名称 -* PID:进程标识符 -* PPID:父进程标识符(需要指定-R参数) -* USER:进程所有者 -* PGID:进程所属组 -* FD:文件描述符,应用程序通过文件描述符识别该文件。 +lsof输出各列信息的意义如下: + +* COMMAND:进程的名称 +* PID:进程标识符 +* PPID:父进程标识符(需要指定-R参数) +* USER:进程所有者 +* PGID:进程所属组 +* FD:文件描述符,应用程序通过文件描述符识别该文件。 文件描述符列表: -1. cwd:表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改 -2. txt:该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序 -3. lnn:library references (AIX); -4. er:FD information error (see NAME column); -5. jld:jail directory (FreeBSD); -6. ltx:shared library text (code and data); -7. mxx :hex memory-mapped type number xx. -8. m86:DOS Merge mapped file; -9. mem:memory-mapped file; -10. mmap:memory-mapped device; -11. pd:parent directory; -12. rtd:root directory; -13. tr:kernel trace file (OpenBSD); -14. v86  VP/ix mapped file; -15. 0:表示标准输出 -16. 1:表示标准输入 -17. 2:表示标准错误 +* cwd:表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改 +* txt:该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序 +* lnn:library references (AIX); +* er:FD information error (see NAME column); +* jld:jail directory (FreeBSD); +* ltx:shared library text (code and data); +* mxx :hex memory-mapped type number xx. +* m86:DOS Merge mapped file; +* mem:memory-mapped file; +* mmap:memory-mapped device; +* pd:parent directory; +* rtd:root directory; +* tr:kernel trace file (OpenBSD); +* v86  VP/ix mapped file; +* 0:表示标准输出 +* 1:表示标准输入 +* 2:表示标准错误 一般在标准输出、标准错误、标准输入后还跟着文件状态模式: -1. u:表示该文件被打开并处于读取/写入模式。 -2. r:表示该文件被打开并处于只读模式。 -3. w:表示该文件被打开并处于。 -4. 空格:表示该文件的状态模式为unknow,且没有锁定。 -5. -:表示该文件的状态模式为unknow,且被锁定。 +* u:表示该文件被打开并处于读取/写入模式。 +* r:表示该文件被打开并处于只读模式。 +* w:表示该文件被打开并处于。 +* 空格:表示该文件的状态模式为unknow,且没有锁定。 +* -:表示该文件的状态模式为unknow,且被锁定。 同时在文件状态模式后面,还跟着相关的锁: -1. N:for a Solaris NFS lock of unknown type; -2. r:for read lock on part of the file; -3. R:for a read lock on the entire file; -4. w:for a write lock on part of the file;(文件的部分写锁) -5. W:for a write lock on the entire file;(整个文件的写锁) -6. u:for a read and write lock of any length; -7. U:for a lock of unknown type; -8. x:for an SCO OpenServer Xenix lock on part      of the file; -9. X:for an SCO OpenServer Xenix lock on the      entire file; -10. space:if there is no lock. +* N:for a Solaris NFS lock of unknown type; +* r:for read lock on part of the file; +* R:for a read lock on the entire file; +* w:for a write lock on part of the file;(文件的部分写锁) +* W:for a write lock on the entire file;(整个文件的写锁) +* u:for a read and write lock of any length; +* U:for a lock of unknown type; +* x:for an SCO OpenServer Xenix lock on part      of the file; +* X:for an SCO OpenServer Xenix lock on the      entire file; +* space:if there is no lock. 文件类型: -1. DIR:表示目录。 -2. CHR:表示字符类型。 -3. BLK:块设备类型。 -4. UNIX: UNIX 域套接字。 -5. FIFO:先进先出 (FIFO) 队列。 -6. IPv4:网际协议 (IP) 套接字。 -7. DEVICE:指定磁盘的名称 -8. SIZE:文件的大小 -9. NODE:索引节点(文件在磁盘上的标识) -10. NAME:打开文件的确切名称 - - - \ No newline at end of file +* DIR:表示目录。 +* CHR:表示字符类型。 +* BLK:块设备类型。 +* UNIX: UNIX 域套接字。 +* FIFO:先进先出 (FIFO) 队列。 +* IPv4:网际协议 (IP) 套接字。 +* DEVICE:指定磁盘的名称 +* SIZE:文件的大小 +* NODE:索引节点(文件在磁盘上的标识) +* NAME:打开文件的确切名称 diff --git a/Linux_man_cn/lvm.md b/Linux_man_cn/lvm.md index f89a337..1703745 100644 --- a/Linux_man_cn/lvm.md +++ b/Linux_man_cn/lvm.md @@ -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格式 -``` -[root@localhost ~]# pvscan -No matching physical volumes found #找不到任何的 PV 存在! +```sh +pvscan # 检查有无 PV在系统上,找不到任何的 PV 存在! ``` 将6-9分区转成pv,注意大括号的用途: @@ -175,6 +153,7 @@ FAQ:(Frequently Asked Question) 2.逻辑卷可以动态扩充的大小取决于卷组的大小 3.PE的大小最终影响 逻辑卷的最大大小,逻辑卷的大小一定是PE的整数倍 5.一个逻辑卷只能属于一个卷组 +6.执行lvm操作时,先前的meta元数据都保存在/etc/lvm/archive目录,用vgcfgrestore可进行恢复操作 ## LVM拉伸逻辑卷 @@ -182,7 +161,8 @@ FAQ:(Frequently Asked Question) (可在线扩容,无需卸载逻辑卷) vgdisplay或vgs # 确保VG中有足够的空闲空间,通过以下指令查询即可 lvextend -L +5G /dev/vg01/lv01 # 扩充逻辑卷,增大5G的大小 -resize2fs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小) +resize2fs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小)ext4格式命令 +xfs_growfs /dev/vg01/lv01 # 更新文件系统(检测磁盘的大小)xfs格式命令 df -hT # 查看更新后文件系统 备注:在没有使用命令resize2fs命令之前,使用df -hT 命令看到逻辑卷的大小并没有变化,为什么? @@ -192,7 +172,7 @@ df -hT # 查看更新后文件系统 ## LVM缩小逻辑卷 ```sh -(在实际运作当中很少使用且这种操作及其危险,容易导致数据丢失)备注:逻辑卷的缩小必须是离线操作,要卸载逻辑卷; +(在实际运作当中很少使用且这种操作及其危险,容易导致数据丢失)备注:逻辑卷的缩小必须是离线操作,要卸载逻辑卷;xfsdump可备份xfs系统格式 umount /dev/vg01/lv01 # 卸载已经挂载的逻辑卷 e2fsck -f /dev/vg01/lv01 # 强制检测文件系统信息 resize2fs /dev/vg01/lv01 10G # 缩小文件系统(一般都有提示信息)指定逻辑卷大小为10G大小; @@ -361,4 +341,533 @@ vgs, vgdisplay # 查看卷组信息 ```sh vgreduce vg01 /dev/sdd # 将一个PV从指定卷组中移除 vgdisplay或vgs # 查看缩小后的卷组大小 -``` \ No newline at end of file +``` + +**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 +``` diff --git a/Linux_man_cn/mdadm.md b/Linux_man_cn/mdadm.md index e69de29..aa3515a 100644 --- a/Linux_man_cn/mdadm.md +++ b/Linux_man_cn/mdadm.md @@ -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 | diff --git a/Linux_man_cn/mpstat.md b/Linux_man_cn/mpstat.md index 26e4456..45d255b 100644 --- a/Linux_man_cn/mpstat.md +++ b/Linux_man_cn/mpstat.md @@ -1,7 +1,4 @@ -mpstat -=== - -显示各个可用CPU的状态 +# **mpstat** ## 补充说明 diff --git a/Linux_man_cn/netstat.md b/Linux_man_cn/netstat.md index fb84972..4edaba7 100644 --- a/Linux_man_cn/netstat.md +++ b/Linux_man_cn/netstat.md @@ -1,20 +1,10 @@ -# netstat +# **netstat** -=== - -查看Linux中网络系统状态信息 - -## 补充说明 +## 说明 **netstat命令** 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。 -### 语法 - -```sh -netstat(选项) -``` - -### 选项 +## 选项 ```sh -a或--all:显示所有连线中的Socket; diff --git a/Linux_man_cn/tail.md b/Linux_man_cn/tail.md index b71a271..fc8ed55 100644 --- a/Linux_man_cn/tail.md +++ b/Linux_man_cn/tail.md @@ -1,47 +1,27 @@ -tail -=== +# **tail** -在屏幕上显示指定文件的末尾若干行 - -## 补充说明 +## 说明 **tail命令** 用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。 -注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。 +注意:如果表示bytes或lines的K值之前有一个”+”号,则从文件开头的第K项开始显示,K值后缀:b表示512,b 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 -### 语法 +## 选项 -``` -tail(选项)(参数) +```info +--c, --bytes=K :输出文件尾部的第K(K为整数)个字节内容 +-f, --follow[={name|descriptor}] :显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效 +-F:与选项“-follow=name --retry"连用时功能相同 +-n, --lines=K :输出文件的尾部N(N位数字)行内容 +--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或——bytes=:输出文件尾部的N(N为整数)个字节内容; --f或;--follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效; --F:与选项“-follow=name”和“--retry"连用时功能相同; --n或——line=:输出文件的尾部N(N位数字)行内容。 ---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个字符) -``` - - - diff --git a/Linux_man_cn/vmstat.md b/Linux_man_cn/vmstat.md index 430b66d..017a092 100644 --- a/Linux_man_cn/vmstat.md +++ b/Linux_man_cn/vmstat.md @@ -6,9 +6,9 @@ ### 选项 -``` +```info -a:显示活动内页; --f:显示启动后创建的进程总数; +-f:显示boot启动后创建的进程总数; -m:显示slab信息; -n:头信息仅显示一次; -s:以表格方式显示事件计数器和内存状态;