Sre网络班阶段测试(满分100分)
说明:
1. 开卷,把代码和命令敲出来,能跑通,贴进来即可
2.不会写的题可以不写,但尽量写一下哪里不懂
一:用sed 命令修改/etc/fstab文件,删除文件中的空行,注释行,并保留文件备份(7分)
答案写这里:
sed -i.bak -e '/^#/d' -e '/^[[:space:]]*$/d' /etc/fstab
二: 用 find 命令查找出 /var/ 目录中大于1M且以db结尾的文件(7分)
答案写这里:
find /var/* -name *db -size +1M
三: 先判断当前主机是否安装了nginx包,如果没安装,则执行命令安装,如果己安装,则执行命令卸载,用短路运算实现(rocky8.6)(7分)
答案写这里:
rpm -qa|grep nginx && yum remove nginx -y || yum install nginx -y
四:请用 rpm 命令列出 nginx 包中所有的配置文件(7分)
答案写这里:
rpm -qc nginx
五: 新增一块20G的硬盘,分三个区,大小分别是3GB,4GB,5GB,将这三个分区做成物理卷,然后创建卷组,在该卷组上创建一个6GB的逻辑卷,挂载至/log/ 目录下,再将该逻辑卷扩容至10GB,请写出实现步骤,文件系统不限(7分)
答案写这里:
- 先添加硬盘,重启虚拟机,lsblk查看硬盘是否正常添加
- fidsk /dev/nvme0n2,添加三个分区
- pvcreate /dev/nvme0n2p1 /dev/nvme0n2p2 /dev/nvme0n2p3
- vgcreate mage-vg /dev/nvme0n2p1 /dev/nvme0n2p2 /dev/nvme0n2p3
- lvcreate -L 6G mage-vg -n mage-lv
- fsck.ext4 /dev/mage-vg/mage-lv(实际使用这条命令才执行成功,不知道啥问题mkfs -t ext4 /dev/mapper/mage--vg-mage--lv)
- mount /dev/mapper/mage--vg-mage--lv /log(永久挂载需要写入/etc/fstab文件中)
- lvextend -L +4G /dev/mage-vg/mage-lv
- resize2fs /dev/mapper/mage--vg-mage--lv
六:根据下列命令执行结果,写出你能读出来的信息(7分)
```bash
[mage@rocky86 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 199G 0 part
├─rl-root 253:0 0 70G 0 lvm /
├─rl-swap 253:1 0 2G 0 lvm [SWAP]
└─rl-home 253:2 0 127G 0 lvm /home
```
答案写这里:
Sda:磁盘名称
Sda1:第一个分区,挂载/boot
Sda2作为了PV,VG名为rl,有三个逻辑卷,root挂载/,swap作为交换分区,home挂载/home
MAJ:MIN,主要和次要设备数量
RM,可移动设备
SIZE,空间大小
RO,只读设备
Type:设备类型
Mountpoint,挂载点
七: 请配置一块网卡,IP地址是 10.0.0.110,子网掩码是24位,网关是 10.0.0.2,DNS分别是 10.0.0.2 和 114.114.114.114,请写出配置文件内容,另外,写一个脚本,配置成别名,该别名对 root用户永久生效,要求传入网卡设备名可以让修改后的内容重载生效。(8分)
答案写这里:
网卡配置文件:
TYPE=Ethernet
BOOTPROTO=static
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=10.0.0.110
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.2
DNS2=114.114.114.114
脚本:
[root@192 etc]# cat wangka.sh
#!/bin/bash
read -p "请输入网卡名:" dev
echo "TYPE=Ethernet
BOOTPROTO=static
NAME=${dev}
DEVICE=${dev}
ONBOOT=yes
IPADDR=10.0.0.110
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.2
DNS2=114.114.114.114" > /etc/sysconfig/network-scripts/ifcfg-${dev}
nmcli c reload
nmcli c up $dev
八: 请描述一下一个网络请求从一台设备到另一台设备的具体过程(10分)
答案写这里:
九:当执行shell脚本时,可向shell脚本传参,请说明 $0, $#,$@,$* 这几个参数的含义(10分)
答案写这里:
$0:脚本本身名字
$#:位置变量个数
$@:位置变量列表
$*: 以一个单字符串显示所有向脚本传递的参数
十: 写一个脚本,计算出100以内能被3整除的数之和,以及能被4整除的数之后,然后再输出这两个数字(10分)
答案写这里:
[root@192 etc]# cat sum.sh
#!/bin/bash
bei3=0
bei4=0
for((i=1;3*i<=100;i++))
do
let "bei3 += i*3"
done
echo "3倍数和:$bei3"
for((i=1;4*i<=100;i++))
do
let "bei4 += i*4"
done
echo "4倍数和:$bei4"
十一:写一个脚本,打印输出8行8列的国际象棋棋盘,使用红黄两色(10分)
答案写这里:
[root@192 etc]# cat guojixiangqi.sh
#!/bin/bash
for i in {1..8}
do
for j in {1..8}
do
sum=$[i+j]
if [ $[sum%2] -eq 0 ];then
echo -ne "\033[43m \033[0m"
else
echo -ne "\033[41m \033[0m"
fi
done
echo
done
十二:写一个脚本,生成10个随机数放到一个数组中,再将该数组中的元素从小大到排序进行输出(10分)
答案写这里:
#!/bin/bash
declare -i min
declare -a num
for ((i=0;i<10;i++));
do
num[$i]=$RANDOM
done
echo " old array is ${num[*]}"
for ((j=1;j<10;j++));
do
for ((h=1;h<=10-j;h++));
do
let k=h-1
if [ ${num[$h]} -lt ${num[$k]} ];then
min=${num[$h]}
num[$h]=${num[$k]}
num[$k]=${min}
fi
done
done
echo " new array is ${num[*]}"