1. 总结vim的三种模式切换

Vim编辑器中设置了3种模式——命令模式(或普通模式)、编辑模式(或插入模式)、末行模式(或扩展命令模式)

每种模式分别又支持多种不同的命令快捷键。

命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。打开vim认进入命令模式。

输入模式:正常的文本录入。

末行模式:保存或退出文档。

SRE云计算作业2_练习题

配置vimrc实现写脚本自动生成注释

set ts=4
set expandtab
set ignorecase
set shiftwidth=4
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1,"#!/bin/bash")
call setline(2,"#")
call setline(3,"#****************************************")
call setline(4,"#Author: lxcnihao")
call setline(5,"#Q: 453976422")
call setline(6,"#Date: ".strftime("%Y-%m-%d"))
call setline(7,"#FileName: ".expand("%"))
call setline(8,"#Description: The test script ")
call setline(9,"#Copyright (C): ".strftime("%Y")." All rights reserved")
call setline(10,"#***************************************")
call setline(11,"")
endif
endfunc

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

[root@lxc-rocky-8 ~]# echo /etc/sysconfig/network-script/ifcfg-ens160 | tr "/" "\n" | grep "^[^i]" | tr "\n" "/"
etc/sysconfig/network-script/
[root@lxc-rocky-8 ~]# echo /etc/sysconfig/network-scripts/ifcfg-ens160 |grep -o "ifcfg-ens160"
ifcfg-ens160
[root@lxc-rocky-8 ~]# echo /etc/sysconfig/network-scripts/ifcfg-ens160 | tr "/" "\n"

etc
sysconfig
network-scripts
ifcfg-ens160

[root@lxc-rocky-8 ~]# echo /etc/sysconfig/network-scripts/ifcfg-ens160 | tr "/" "\n"| grep "^i"
ifcfg-ens160

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


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

4.1分区

两种分区方式:MBR(分区不超2T) ,GPT(支持128个分区)

[root@lxc-rocky-8 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
nvme0n1 259:0 0 50G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 49G 0 part
├─rl-root 253:0 0 47G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
[root@lxc-rocky-8 ~]# fdisk -l
Disk /dev/nvme0n1: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xaf7fe7ed

Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 2099199 2097152 1G 83 Linux
/dev/nvme0n1p2 2099200 104857599 102758400 49G 8e Linux LVM




Disk /dev/mapper/rl-root: 47 GiB, 50432311296 bytes, 98500608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/rl-swap: 2 GiB, 2176843776 bytes, 4251648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

4.2文件系统

创建文件系统

[root@lxc-rocky-8 ~]# mkfs.ext4 /dev/sdb1

4.3挂载

  1. 挂载:mount /dev/sdb2 /backup         解释:设备/dev/sdb2挂载到/backup目录


5.总结RAID特性,LVM特性。

RAID 0    

  1. 2块或以上物理硬盘串联    
  2. 数据依次写入到硬盘中,任何一个硬盘故障都会损坏数据

RAID 1    

  1. 2块以上硬盘    
  2. 将数据同时写入到多块硬盘设备上(可理解为数据的镜像或备份)一块损坏另一块可实现冗余

RAID 5    

  1. 3块以上硬盘  
  2. 硬盘设备的数据校验信息保存到其他硬盘设备中

RAID 10    

  1. 至少4个硬盘    
  2. 先两两组成RAID1,再组成RAID0      
  3. 只要坏的不是同一阵列中的所有硬盘,那么最多可以损坏50%的硬盘设备而不丢失数据

LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。

  1. 物理卷[Physical Volume,PV]:pvscan  pvdisplay  pvcreate  pvmove
  2. 卷组[Volume Group,VG]:vgscan  vgcreate  vgdisplay  vgremove  vgextend  vgreduce
  3. 逻辑卷[Logical Volume,LV]:lvscan  lvcreate  lvdisplay  lvremove  lvextend  lvreduce
  4. [Physical Extent,PE]

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生成快照,修改或删除原卷中的数据,基于快照卷还原数据。