SRE-第三周作业

1.编程题

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

#!/bin/bash
cat /dev/null > ipaccess.txt
#获取所有网卡名
echo "当前的网卡"
ip a | awk -F: '/^[0-9]/{print $2}'

#显示选中网卡的信息
read -p "请输入要查询的网卡:" INTER
IP=$(ifconfig ${INTER} | awk '/inet /{print $2}')
NET=$(ifconfig ${INTER} | awk '/inet /{print $2}' | sed -nr 's#(.*)\.[0-9]+#\1#p')
MASK=$(ifconfig ${INTER} | awk '/inet /{print $4}')

echo "地址:${IP}"
echo "网段:${NET}"
echo "掩码:${MASK}"

#函数:将网卡所在网段的主机ping测,通的放进去ipaccess.txt
pingtest (){
for host in {2..20};do
ping -c1 -w1 ${NET}.${host} &>/dev/null && echo ${NET}.${host} >>ipaccess.txt
done
}
#调用函数
pingtest

USER=root
PASSWORD=admin
#函数:ssh进去目标主机,添加用户(使用expect自动化交互输入内容)
adduser () {
expect <<EOF
                spawn ssh -l${USER} ${IP}
                        expect {
                        "yes/no" {send "yes\n";exp_continue }
                        "password" {send "${PASSWORD}\n" }                      
                        }
                        expect "]#" {send "useradd user${i}\n" }
                        expect "]#" {send "exit\n" }
EOF
}
#函数:ssh进去目标主机,添加组,用户。并将用户添加进去组
addgroup (){
expect <<EOF
                spawn ssh -l${USER} ${IP}
                        expect {
                        "yes/no" {send "yes\n";exp_continue }
                        "password" {send "${PASSWORD}\n" }    
                        }
                        expect "]#" {send "groupadd group${i}\n" }
                        expect "]#" {send "useradd -N -e `date -d +1day +%F` user${i}\n" }
                        expect "]#" {send "gpasswd -a user${i} group${i}\n" }
                        expect "]#" {send "exit\n" }
EOF
}

#遍历ipaccess.txt中的IP,判断奇数还是偶数,奇数执行函数addgroup,偶数执行函数adduser
while read IP;do
        if [ $(echo $[ `echo $IP | awk -F"." '{print $4}'` %2 ]) -eq 0 ];then
for i in {1..10};do
adduser
done
        else
for i in {1..10};do
addgroup
done
        fi
done < ipaccess.txt

2.总结TCP三次握手和四次挥手

TCP三次握手

在这里插入图片描述
Listen监听状态,等待来自远方TCP端口的请求连接
SYN-SENT 在发送连接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
ESTABLISHED 代表传输连接建立,双方进入数据传送状态

TCP四次挥手

在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/a787d4e1590e45e391f14582b6586358.png
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失

3.OSI七层模型

在这里插入图片描述

4.搭建yum私服

服务端
#安装httpd客户端使用http连接进来服务端

systemctl disable --now firewalld yum -y install httpd systemctl start httpd

#下载本机在使用的网络yum仓库相关包和meta数据

cd /var/www/html/
mkdir -p centos/7/os/x86_64
yum -y install yum-utils
reposync --repoid=mysql-tools-community --download-metadata -p /var/www/html/centos/7/os/x86_64/

#如果没下载到元数据,也可用createrepo创建

yum -y install createrepo   
createrepo /var/www/html/centos/7/os/x86_64/mysql-tools-community/

客户端
#将原本的yum仓库文件放到备份文件夹

cd /etc/yum.repos.d/
mkdir backup
mv *.repo backup/

#新建yum仓库文件,指定路径为上面的服务端(192.168.110.70)
vim mysql_192.168.110.70.repo

[mysql]
name=mysql
baseurl=http://192.168.110.70/centos/7/os/x86_64/mysql-tools-community/
gpgcheck=0

#重新创建缓存

yum clean all
yum makecache

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值