SHELL小作业3

文章介绍了三个脚本:for1.sh用于创建20个用户账户,for2.sh通过ping测试网段主机连通性并记录结果,for3.sh实现批量主机root密码修改。涉及SSH密钥生成与免密登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,编写脚本for1.sh,使用for储环创建20账户,账户名前级由用户从键盘输入,账户初始密码由用户输入,例如: test1、test2、test3、-...、 test10

编写脚本文档

[root@server ~]# vim for1.sh

$!/bin/bash

read -p "请输入账户的前缀:" prefix

read -p "请输入用户的账号密码:" passwd

for ((i=1;i<=20;i++))

do

                user=$prefix$i

                if id $user &> /dev/null       (判断用户是否存在 ) 

                then

                        echo "$user账户已存在"

                else

                        useradd $user

                        if [ $? -eq 0 ]   (调出上次命令执行的状态码,判断是否为0(0为执行成功) )

                        then

                                echo "$passwd" | passwd --stdin $user &> /dev/null  (将passwd中存储键盘输入的密码通过管道符交给passwd命令,通过设置来源--stdin 给$user)

                        else

                                echo "用户创建失败"

                                exit

                        fi

                fi

done

测试

[root@server ~]# bash for1.sh

查看账户是否创建成功

[root@server ~]# cat /etc/passwd 

 

 
2.编写脚本for2.sh,使用for循环,通过ping命令测试网段的主机连通性,IP前3段由用户输入,如:输入192.168.48,则ping 192.168.48.125 - 192,168,48,135,将可以ping通的主机IP地址写入到 /tmp/host_up.txt文件中,不能ping通的主机IP地址写入到: /mp/host_down.txt文件中。

[root@server ~]# vim for2.sh

#!/bin/bash

read -p "请输入网段:" ip

for ((i=128;i<=135;i++))

do

        IP="$ip"."$i"

        echo "$IP"

        if ping -c 2 -w 3 $IP &> /dev/null   (使用命令ping测试,发送两个数据包,在3秒内能接收到,既网络通顺)

        then

                echo "$IP is up" >> /tmp/host_up.txt

                echo "$IP is down" >> /tmp/host_down.txt

                fi

done

echo "up is: "

cat /tmp/host_up.txt

echo "down is: "

cat /tmp/host_down.txt

测试

[root@server ~]# bash for2.sh

 

 


3.使用for循环实现批量主机root密码的修改
(1)打开多台机
(2) 使用ssh-keygen命令建立密钥对
3多台主机间通过ssh-copy-id进行免密登录
4编写脚本for3.sh,通过for循环登录主机修改对方root账户密码

编辑一个新文档

输入两个服务机的ip

[root@server ~]# vim ip.txt

 在server端制作免密连接秘钥

[root@server ~]# ssh-keygen -t rsa

连接node1和node2

[root@server ~]#  ssh-copy-id root@192.168.248.131

[root@server ~]#  ssh-copy-id root@192.168.248.132

[root@server ~]#  vim for3.sh

$!/bin/bash

read -p "please inout your passwd: " ps

for i in `cat ip.txt`

do

        ssh $i "echo "$ps" | passwd --stdin root"

done

 测试

[root@server ~]#  for3.sh

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值