当前位置: 首页 > article >正文

shell第二次作业

1. 使用case实现成绩优良差的判断

read -p "请输入你的成绩:" score

if ! [[ "$score" =~ ^[0-9]+$ ]];then
    echo "请输入数字"
    exit 1
fi

if [ "$score" -lt 0 ] || [ "$score" -gt 100 ];then
    echo "输入的成绩无效"
    exit 1
fi

case "$score" in
    9[0-9]|100)
        echo "优秀"
        ;;
    6[0-9]|7[0-9]|8[0-9])
        echo "合格"
        ;;
    *)
        echo "未及格"
        ;;
esac


2. for创建20用户
   用户前缀由用户输入
   用户初始密码由用户输入
   例如:test01,test10

read -p "用户前缀和密码:" usrname s
for usrname in $(seq -f "$usrname%02g" 1 10)
do
        id $usrname &> /dev/null
        if [ "$?" -ne 0 ];then
                useradd $usrname &>/dev/null
                echo "$usrname is create"
                echo "$s" | passwd --stdin $username &> /dev/null
                echo "$usrname passwd is create"
        else
                echo "$usrname is already"
        fi
done


3. for ping测试指网段的主机
   网段由用户输入,例如用户输入192.168.2 ,则ping 192.168.2.10 --- 192.168.2.20
   UP: /tmp/host_up.txt
   Down: /tmp/host_down.txt

read -p "请输入网段:" ip
>/tmp/host_up.txt
>/tmp/host_down.txt
for ip in $( seq -f "$ip.%02g" 10 20) 
do
    ping -c 4 $ip
    if [ "$?" -eq 0 ]; then
        echo $ip >>/tmp/host_up.txt
    else
        echo $ip >>/tmp/host_down.txt
    fi
done


4. 使用for实现批量主机root密码的修改
   成功或失败都必须记录
   提示:主机IP存放在一个文件中
   SSH:实现公钥认证,执行远程中主机命令
   实现公钥认证
   # ssh-keygen        在用于管理的主上生成密钥对
   # ssh-copy-id -i 192.168.2.3


read -p "输入修改之后的root密码:" passwd

success_log="/shells/T_file"
failure_log="/shells/F_file"

>"$success_log"
>"$failure_log"

host_ip="/shells/ip"

if [ ! -f "$host_ip" ];then
    echo "主机文件列表不存在"
    exit 1
fi

for ip in $(cat "$host_ip")

do
        if ssh root@"$ip" "echo $passwd | passwd --stdin root";then
                echo "密码修改成功:$ip" >> "$success_log"
        else
                echo "密码修改失败:$ip" >> "$failure_log"
        fi
done


http://www.kler.cn/a/415787.html

相关文章:

  • 33-ESP32-蓝牙篇-00
  • 【Java知识】Java进阶-策略模式实现
  • 技术文档的艺术:在信息与理解之间架起桥梁
  • Jenkins环境搭建及简单介绍
  • PAT甲级 1056 Mice and Rice(25)
  • C#开发合集
  • 程成本控制系统如何跟工程现场管理结合起来?
  • 【Unity-如何提高物理引擎的高精度模拟】
  • 【Python爬虫实战】深入解析 Scrapy:从阻塞与非阻塞到高效爬取的实战指南
  • [Python/网络安全] Git漏洞之Githack工具基本安装及使用详析
  • Pytorch使用手册-使用 TensorBoard 可视化模型、数据和训练过程(专题十)
  • JVM 性能调优 -- JVM常用调优工具【jps、jstack、jmap、jstats 命令】
  • 如何选择黑白相机和彩色相机
  • GAN是一种自监督模型那在判别器中,同时输入生成器生成的SR与真实值HR作比较的话,不就是将HR作为SR的标签吗,如何体现自监督学习呢
  • YOLOv11融合Inner-IoU及相关改进思路
  • I/O流综合练习题
  • 摄影相关常用名词
  • springboot343大学生选修选课系统的设计与实现(论文+源码)_kaic
  • 物联网环境中NDN协议的性能比较分析
  • CQ 社区版 2024.11 | 新增“审批人组”概念、可通过SQL模式自定义审计图表……
  • 详解登录MySQL时出现SSL connection error: unknown error number错误
  • 网络安全、Web安全、渗透测试之笔经面经总结(三)
  • net9 abp vnext 多语言通过数据库动态管理
  • Ubuntu安装不同版本的opencv,并任意切换使用
  • 从单一设备到万物互联:鸿蒙生态崛起的未来之路
  • 【0346】Postgres内核 Startup Process 通过 signal 与 postmaster 交互实现 (5)