SRE-第二周作业

1、总结VIM三种模式

  • 命令模式:默认模式,可实现光标移动,复制,粘贴,删除文本
  • 插入模式:可修改文本
  • 扩展模式:可保存,退出,设置显示行号,等其他显示内容

1.1vimrc:定制vim工作特性

全局:/etc/vimrc

个人:~./.vimrc

编辑vimrc实现自动脚本注释

autocmd BufNewFile *.sh exec ":call tag()"

func tag()
        if expand("%:e") == 'sh'
        call append(0,"#/bin/bash")
        call append(1,"   ")
        call append(2,"###############################   ")
        call append(3,"#Author:ken")
        call append(4,"#Create_Time:2022/9/13")
        call append(5,"#Version:1.0.0")
        call append(6,"##############################   ")
         endif
endfunc

autocmd BufNewFile * normal G

 现在使用vim编辑创建.sh文件会自动加上注释

2. 使用grep/sed实现获取/etc/sysconfig/network-script/ifcfg-eth0目录的/etc/sysconfig/network-script/。或获取目录的ifcfg-eth0

grep+其他文本处理工具

[root@localhost ~]# ll /etc/sysconfig/network-scripts/ | grep eth0 | tr -s " " | cut -d" " -f9

sed

[root@localhost ~]# echo /etc/sysconfig/network-scripts/ifcfg-eth0 | sed -nr 's#.*/(.*)$#\1#p' 

3. 完成编程题,可以让用户选择当前主机的所有网卡,选中网卡后,获取ip,网段,掩码。通过ping命令检测在线的主机,打印在线的主机,写入一个文件中。
当ip的结尾是奇数时,在目标主机或当前主机,批量添加user1到user100用户,否则添加group1到group100,并生成对应的用户user1到user100,让用户的过期时间在1天之后。

#/bin/bash

###############################   
#Author:ken
#Create_Time:2022/9/13
#Version:1.0.0
############################## 
 
ifconfig | sed -nr '/flags/s#(.*):.*#\1#p'
read -p "请输入网卡名:" drvie
IP=$(ifconfig ${drvie} | awk '/inet /{print $2}')
MASK=$(ifconfig ${drvie} | awk '/inet /{print $4}')
NETWORK=$(echo ${IP} |  sed -nr 's#(.*)\.[0-9]{1,3}$#\1#p')

#打印所选的网卡IP,掩码,网段到终端
echo ${IP},${MASK},${NETWORK}

#网段内能ping通的IP放到/root/ip.txt
for i in {1..10} ;do
                ping -c1 -w1 ${NETWORK}.${i} >/dev/null && echo ${NETWORK}.${i} >> /root/ip.txt
done

#判断网卡IP尾数是否奇数,执行对应的操作
num=$(echo $IP | sed -nr '{s#.*\.([0-9]{1,3})$#\1#p}')
if [ $[$num%2] -eq 1 ];then
        for i in {1..10};do
                useradd  -N -e `date -d next-day +%F` user${i}    #-N不自动创建组,-e账号过期时间
        done
else
        for i in {1..10};do
                groupadd group${i}                                #如果网卡IP尾数是偶数创建组
                useradd -N -e `date -d next-day +%F` user${i}     #创建用户
                gpasswd -a user${i} group${i}                     #将用户加进组里
        done
fi

4. 总结分区,格式化,挂载命令的使用。

  • 分区方式:

fdisk:管理MBR分区,fdisk  /dev/sda 对硬盘进行分区,子选项n创建新分区,d删除分区

gdisk:管理GPT分区(与fdisk用法类似,只是管理的分区类型不同)

  • 格式化,创建文件系统:

两种创建文件系统命令:(创建文件系统同时会格式化)

mkfs.ext4 /dev/sda1

mkfs -t etx4 /dev/sda1

  • 挂载

临时挂载

mount /dev/sda1 /mnt       #临时将/dev/sda1挂载到/mnt目录,重启失效

umount /mnt                     #取消挂载

永久挂载

[root@localhost ~]# blkid

[root@localhost ~]# vim /etc/fstab              #在配置文件中使用分区UUID进行挂载(或者是设备名)

UUID=895953e9-017f-4c9b-b386-438808bc2b73 /mnt xfs defaults 0 0

[root@localhost ~]# mount -a             #使生效

5. 总结RAID特性,LVM特性

  • RAID特性

RAID独立磁盘冗余阵列,作用是多个磁盘合成一个阵列,提供更好的性能,冗余

RAID-0:两块硬盘并行写入速度快,但没容错,其中一块损坏数据就损坏

RAID-1:一样的数据同时写入两块硬盘占用两个空间,两块硬盘数据同样所以总空间只能使用50%,两块硬盘数据一样其中一块坏了数据不丢失

RAID-5:写入需要校验会稍慢,读取性能比较高。每块盘的角色一样都会存放检验数据。有容错性最多允许坏一块盘

RAID-6:有2个校验位,容错率比较好,可以允许最多坏2块,但最少要4块硬盘组合

RAID-10:4块硬盘每2块先做RAID1,两个RAD1当成两个单独硬盘再组合成RAID0(用4块硬盘举例,可以更多)

  • LVM特性

逻辑卷可以允许多个物理设备(分区,硬盘)间重新组织文件系统,可以更好的利用空间和比较弹性的进行扩容

6. 准备20G/30G的2个分区,生成VG,并创建10G的mylv,
基于LVM,将10G的LV格式化挂载分区到/data/mysql, 添加gentoo用户,指定家目录为/data/mysql,确保/data/mysql的权限是gentoo用户,
并切换确保gentoo用户家目录正常,之后复制/etc/sysconfig到gentoo家目录。
此时扩容mylv到20G,确保数据不丢失。
之后缩容mylv到5G确保数据不丢失。
现在基于mylv生成快照,修改或删除原卷中的数据,基于快照卷还原数据。

#创建pv

[root@localhost ~]# pvcreate /dev/sdb 

[root@localhost ~]# pvcreate /dev/sdc

#创建vg

[root@localhost ~]# vgcreate vg0 /dev/sd{b,c}

#创建lv

[root@localhost ~]# lvcreate -n lv0 -L 10G vg0    #使用vg0的空间,大小为10G

#基于LVM,将10G的LV格式化挂载分区到/data/mysql

[root@localhost ~]# mkfs.ext4 /dev/vg0/lv0

[root@localhost ~]# mount /dev/vg0/lv0 /data/mysql      #临时挂载

#添加gentoo用户,指定家目录为/data/mysql,确保/data/mysql的权限是gentoo用户

[root@localhost ~]# useradd -d /data/mysql/ gentoo

[root@localhost ~]# chown gentoo /data/mysql/      

#并切换确保gentoo用户家目录正常,之后复制/etc/sysconfig到gentoo家目录

[root@localhost mysql]# cp -R /etc/sysconfig/ /data/mysql/

#扩容mylv到20G,扩容数据不会丢失(因为vg空间充足,所以直接扩lv)
[root@localhost mysql]# lvextend -r -L +10G /dev/vg0/lv0 

#缩容mylv到5G确保数据不丢失(缩容不能保证数据不丢失,最好先快照)

[root@localhost mysql]# lvcreate -n lv0_bak -s -p r -L 20G /dev/vg0/lv0    #创建快照

[root@localhost ~]# umount /data/mysql/   #取消挂载

[root@localhost ~]# e2fsck -f /dev/vg0/lv0                       #检查文件系统
[root@localhost ~]# resize2fs /dev/vg0/lv0 5G                #将文件系统缩减为5G
[root@localhost ~]# lvreduce -L -15G /dev/vg0/lv0          #将逻辑卷减15G空间
[root@localhost ~]# mount /dev/vg0/lv0 /data/mysql/       #重新挂载

缩容后文件还在,无丢失

#修改或删除原卷中的数据,基于快照卷还原数据

[root@localhost ~]# rm -rf /data/mysql/sysconfig/                      #模拟删除破坏文件
[root@localhost ~]# umount /data/mysql/                                  #取消逻辑卷挂载
[root@localhost ~]# lvconvert --merge /dev/vg0/lv0_bak          #将快照恢复
[root@localhost ~]# mount /dev/vg0/lv0 /data/mysql/               #重新挂载

通过快照恢复回来


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值