LVM实验分享和文本处理工具sed

LVM 逻辑卷管理

PV(物理卷)

PV物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备不如RAID,是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区磁盘等)比较,却包含与LVM相关的管理参数。

VG(卷组)

LVM卷组类似与非LVM系统中的物理硬盘,其由物理卷组成,可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM逻辑卷是由一个或多个物理卷组成

LV(逻辑卷)

LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统。

总的来说LVM就是将一些零碎的磁盘分区(PV)合成一个较大的磁盘(VG).然后根据需要对这些较大的磁盘进行划分成不同的小分区(LV)需要注意的是,这些小的分区是可以动态扩展与缩小的。

pvcreate /dev/md0p1 /dev/md1

pvremove /dev/md0p1

pvs

pvs /dev/md0p1

pvdisplay

pvdisplay /dev/md0p1

vgcreate vgmage26 /dev/md0p1 /dev/md1

-s 8M 指定PE大小,默认4M

vgchange -s 8M 更改PE大小

vgreduce vgmage26 /dev/md1

vgextend vgmage26 /dev/md1

vgremove vgmage26

vgs

vgs vgmage26

vgdisplay

vgdislplay vgmage26

lvcreate

lvcreate -L 10G -n lvmage vgmage

lvreduce

lvmove   移动到同卷组其他PV上

lvremove  移除

1、实验:扩展逻辑卷

先检查需要扩展的大小,VG是否有足够可用空间

1.如果不够则

pvcreate /dev/md2

vgextend vgmage26 /dev/md2

2.如足够则扩展逻辑卷大小

lvextend -L 1G/+1G  /dev/vgmage26/lvmage26_01

lvextend -l +100%FREE /dev/vgmage26/lvmage26_01

3.扩展文件系统大小

resize2fs /dev/vgmage26/lvmage26_01

resize2fs /dev/vgmage26/lvmage26_01 500M 只增加到500M的文件系统

如果是xfs文件系统 用xfs_growfs

xfs_growfs /dev/vg01/lv01

2、实验:减小逻辑卷大小  仅支持Ext文件系统

1.umount  /mnt/lvmage26_01

2.e2fsck -f /dev/vgmage26/lvmage26_01

3.resize2fs /dev/vgmage26/lvmage26_01 300M

4.lvreduce -L 300M /dev/vgmage26/lvmage26_01

5.mount

3、实验:将某块盘从LVM中分离出来

1.先确保数据不在这块PV上

用pvs查看

2.如果在这块PV上,则将数据转移到同卷组的其他PV上

pvmove /dev/pv1名 /dev/pv2名(可以不指定)

3.将pv从Vg中移出

vgreduce vg名 /dev/pv名

4.删除该盘的pv属性

pvremove /dev/pv名

4、实验:将LVM迁移到其他主机

1.将数据移到目标磁盘对应的PV上。(该磁盘不要有其他与该PV无关的分区)

pvmove /dev/pv1名 /dev/pv2名

vgreduce vg名 /dev/pv(多余)  移动除要移动的PV以外的其他PV

2.确保要迁移的VG名与目的系统没有同名的VG

vgrename vgmage26 vg02

lvrename /dev/vg02/lvmage26_01 /dev/vg02/lv01 (非必须)

3.umount /mnt/lvmage26_01/

4.vgchange -an vg02 禁用VG上的所有LV

5.vgexport vg名

关机(如果支持热插排,则不用关机),拔硬盘,插到目标主机上。如果在虚拟机上则进行如下操作

把当前虚拟机的硬盘安装到另一台虚拟机,注意选择现有虚拟磁盘,两台虚拟机一台开机另一台就得关闭。

6.pvscan

vgscan

lvscan

vgimport vg名

vgchange -ay vg名

7.mount /dev/vg名/lv名 /mnt/

sed

sed是一种在线编辑器 、行编辑器,一次处理一行内容,在处理时,把当前处理的行存储在临时缓冲区当中,该缓冲区称为“模式空间”接着用sed命令处理缓冲区中的内容把缓冲区的内容送到标准输出。

特点

sed可以进行数据的替换、删除、新增,数据可以是关键字、特定的行。

sed是一种非交互式文本编辑器,vim是一种交互式文本编辑器。

sed是搜索匹配处理文本工具,grep是用来检索条件关键字的。

sed

-n:不输出模式空间内容到屏幕,即不自动打印

-e: 多点编辑,对每行处理时,可以有多个Script

-f: 把Script写到文件当中,在执行sed时-f 指定文件路径,如果是多个Script,换行写

-r: 支持扩展的正则表达式

-i: 直接将处理的结果写入文件

-i文件名  在将处理的结果写入文件之前备份一份

地址定界:

(1) 不给地址:对全文进行处理

sed -n ‘p‘ 文件

(2) 单地址:

#: 指定的行

sed -n ‘2p‘ 文件

/pattern/:被此处模式所能够匹配到的每一行

sed -n ‘/linux/p‘文件

(3) 地址范围:

#,#

sed -n ‘2,3p‘

#,+#

sed -n ‘2,+1p‘

/pat1/,/pat2/

sed -n ‘/redhat/,/linux/p‘

#,/pat1/

sed -n ‘2,/linux/p‘

(4) ~:步进

sed -n ‘1~2p‘  只打印奇数行

sed -n ‘2~2p‘  只打印偶数行

编辑命令

d: 删除模式空间匹配的行,并立即启用下一轮循环

sed ‘2d‘ pets

p:打印当前模式空间内容,追加到默认输出之后

sed ‘2p‘ pets

a [\]text:在指定行后面追加文本,支持使用\n实现多行追加

sed ‘2a\123\n456\n789‘ pets

i [\]text:在行前面插入文本

sed ‘2i\123\n456\n789‘ pets

c [\]text:替换行为单行或多行文本

sed ‘2c\123\n456\n789‘ pets

w /path/somefile: 保存模式匹配的行至指定文件

sed -n ‘3w /root/3.file‘ pets

r /path/somefile:读取指定文件的文本至模式空间中匹配到的行后

sed ‘3r /root/mage.txt‘ pets

=: 为模式空间中的行打印行号

sed ‘=‘ pets.bak

!:模式空间中匹配行取反处理

sed -n ‘2!p‘ pets

s///:查找替换,支持使用其它分隔符,[email protected]@@,s###替换标记:

g: 行内全局替换

sed ‘s/dog/cat/g‘ pets

高级命令

sed除了模式空间还有一个保持空间,对于处理过的数据可能还有其他处理,可以先传送至保持空间,然后在后续处理中再次传回模式空间。

sed有一些高级命令运用到保持空间,这些命令大多配合使用,例如以下几种组合:

(!命令取反,分号可以分割脚本)

sed -n ‘n;p‘ FILE  显示偶数行

sed ‘1!G;h;$!d‘ FILE  倒序显示

sed -n ‘1!G;h;$p‘ 倒序显示

seq 7 |sed ‘n;d‘ 显示奇数

sed  ‘N;D‘ 显示最后一行

sed ‘$!d‘  显示最后一行

sed ‘G‘  每行之间加空行

sed ‘g‘  把每行内容替换成空行

sed ‘/^$/d;G‘  确保每一行下面都有一个空行

1、删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符

cat grub2.cfg |sed -r ‘s/^[[:space:]]+//‘

2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

sed -r "/^#[[:space:]]/s/^#[[:space:]]+([^[:space:]])/\1/" fstab

sed -r ‘s/^#[[:space:]]+//‘ fstab

3、在centos6系统/root/install.log每一行行首增加#号

sed ‘s/^/#/g‘ /root/install.log

4、在/etc/fstab文件中不以#开头的行的行首增加#号

cat /etc/fstab |sed  ‘s/^[^#]/#&/‘

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

echo /etc/sysconfig/network-scripts/ |sed -r  ‘s#(^/.*/)([^/].*/?$)#a:\1\nb:\2#‘

6、利用sed 取出ifconfig命令中本机的IPv4地址

ifconfig eth0 |sed -n ‘2p‘ |sed ‘s#^.*addr:##g‘ |sed ‘s#  Bcas.*$##g‘

ifconfig eth0 |sed  -n -e  ‘2s#^.*addr:##g‘ -e ‘s#  Bcas.*$##gp‘

作业:

7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数

ls  /run/media/root/CentOS 7 x86_64/Packages | sed -r ‘s#.*\.([^\.]+)\.rpm#\1#‘|sort|uniq -c

8、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)

9、将文本文件的n和n+1行合并为一行,n为奇数行

后两道不会做,后续再修改。

时间: 2024-10-12 05:49:45

LVM实验分享和文本处理工具sed的相关文章

处理文本的工具sed,vim 编辑器的使用   Linux版

处理文本的工具sed Stream EDitor 行编辑器 sed一次处理一行的内容,处理时,将当前处理的行存储在临时缓冲区,称为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成后,将缓冲区的内容送往屏幕,接着处理下一行不断重复,直到末尾. 一次处理一行 文件--->内存空间--->屏幕 模式空间 文件--->内存空间--->屏幕 | 保持空间 sed   -n:不输出模式空间内容的自动打印 -e:多点编辑 -f:/PATH/TO/SCRIPT_FIL

DAY8:文本处理工具sed和vim

8月8号,主要学习内容为: 一.文本处理工具sed 二.vim编辑器 一.文本处理工具sed 1)简介 sed是一种流编辑器,它一次处理一行内容.处理时,把 当前处理的行存储在临时缓冲区中,称为"模式空间"( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕.接着处理下一 行,这样不断重复,直到文件末尾.文件内容并没有改变 ,除非你使用重定向存储输出.Sed主要用来自动编辑一 个或多个文件,简化对文件的反复操作,编写转换程序等. 用

linux下的文本处理工具---sed

文本处理工具sed 1.sed介绍 Sed是一种非交互式的流编辑器,通过多种转换修改流经过它的文本.但是,默认情况下,sed并不改变原文件本身,而只是对流经sed命令的文本进行修改,并将修改后的结果打印到屏幕上.Sed处理文本时是以行为单位的,每处理一行就立即打印出来,然后在处理下一行,直至全文处理结束. Sed可做的编辑动作包括删除.查找替换.添加.插入.从其他文件中读入数据等,如果想对修改后的流文件进行保存更改,则需要使用重定向对修改后输出的内容进行保存 Sed的用法:sed  [optio

第9章 文本处理工具sed

笔记整理开始时间:2018年4月17日08:45:48 更多内容请点击: Linux学习从入门到打死也不放弃,完全笔记整理(持续更新,求收藏,求点赞~~~~) http://blog.51cto.com/13683480/2095439 本章内容 sed介绍 sed用法 sed高级用法 文本处理工具sed Stream EDitor,行编辑器 又称流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时 缓冲区,称为"模式空间"(pattern space),接着用sed命令处理

9-13 文本处理工具sed及awk的用法

文本编辑三剑客:grep, sed, awk    grep: 文本搜索工具:egrep, fgrep    sed: stream editor, 流编辑器:    awk(gawk):文本格式化工具,报告生成器 sed命令: 基本正则表达式的元字符:     字符匹配:            .: 匹配任意单个字符:            []:匹配指定范围内的任意单个字符:            [^]:匹配指定范围内的任意单个字符: [:lower:]:所有小写字母 [:upper:]:

12文本处理工具sed

文本处理的工具sed Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.然后读入下行,执行下一个循环.如果没有使诸如'D' 的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间.这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出.功能:主要用来自动编辑一个或多个文

centos 7中的文本处理工具sed命令的使用

sed是一个强大而简答的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加.移动等),最后输出所有行或者仅输出处理的某些行.sed也可以在无交互的情况下实现相当复杂的文本处理操作,被广泛应用于shell脚本中,用以完成各种自动化处理任务.sed的工作流程主要包括读取.执行和显示三个过程: 读取:sed从输入流(文件.管道.标准输入)中读取一行内容并存储到临时的缓冲区中(也称为模式空间). 执行:默认情况下,所有的sed命令都在模式空间中顺序地执行,除非指定了行的

Linux文本处理工具——Sed

sed:数据流编辑器: awk:报告文本的生成器 sed 基本用法:(Stream EDitor) Stream 流 EDitor 编辑器 行编辑器 全屏编辑器:vi/vimsed:内存空间(模式空间)默认不编辑源文件,仅对模式空间中的数据作处理,处理结束后,将模式空间打印到屏幕 sed [options] 'AddressCommannd' file ... -n: 静默模式,不再默认显示模式空间中的内容 -i: 直接修改源文件 -e SCRIPT -e SCRIPT:可以同时执行多个脚本 -

Linux 的文本处理工具---sed

                sed 处理文本工具 一.概述 Stream EDitor,行编辑器 sed是一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出.sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等  sed 是一种非