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

[LINUX操作系统]shell脚本之循环

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

[root@master ~]# vim for1.sh
#!/bin/bashread -p "请输入账户名称前缀:" prefixread -p "请输入账户密码:"  -s passwdfor ((i=1;i<=20;i++))
douser=$prefix$iif id -u $user &> /dev/nullthenecho "$user 已经存在!"elseuseradd $userecho "$passwd" | passwd --stdin  $user  &> /dev/nullecho "$user 账户创建成功!"fi
done
[root@master ~]# bash for1.sh 
请输入账户名称前缀:test
请输入账户密码:
[root@master ~]# tail -20 /etc/passwd

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

[root@master ~]# vim for2.sh
#!/bin/bashread -p "请输入网络位:" ipfor ((i=125;i<=135;i++))
doIP=$ip.$iecho "测试ip:$IP"if ping -c 2  -w  3  $IP  &> /dev/nullthenecho "$IP is up"  >> /tmp/host_up.txtelseecho "$IP is down" >> /tmp/host_down.txtfi
done
[root@master ~]# bash for2.sh 
[root@master ~]# cat /tmp/host_up.txt 
[root@master ~]# cat /tmp/host_down.txt 


3.使用for循环实现批量主机root密码的修改

(1)打开多台主机

(2)使用ssh-keygen命令建立密钥对

(3)多台主机间通过ssh-copy-id进行免密登录

(4)编写脚本for3.sh,通过for循环登录主机修改对方root账户密码

[root@master ~]# vim ip.txt
192.168.171.134
[root@master ~]# ssh-keygen -t rsa
[root@master ~]# ssh-copy-id 192.168.171.134
[root@master ~]# vim for3.sh
#!/bin/bashread -p "please input your passwd:" passwdfor i in `cat ip.txt`
dossh $i  "echo $passwd | passwd --stdin root"
done
[root@master ~]# bash for3.sh
please input your passwd:123测试:
ssh root@192.168.171.134
passwd:123

测试是否登录成功:

http://www.dtcms.com/a/313337.html

相关文章:

  • 【Qt】QObject::startTimer: Timers cannot be started from another thread
  • 如何玩转 Kubernetes K8S
  • 【QT】概述
  • 快速搭建一个非生产k8s环境
  • Android 之 网络通信(HTTP/TCP/UDP/JSON)
  • 量子物理学的前沿意义虚无、形式混乱
  • 入门MicroPython+ESP32:ESP32链接WIFI全攻略
  • Dify中自定义工具类的类型
  • 多模态后训练反常识:长思维链SFT和RL的协同困境
  • GitLab 代码管理平台部署及使用
  • CCF-GESP 等级考试 2025年6月认证C++一级真题解析
  • 扩散模型(一)——综述
  • 介绍JAVA语言、介绍greenfoot 工具
  • 案例介绍|JSON数据格式的转换|pyecharts模块简介
  • noob靶机复现笔记
  • 纯JavaScript实现文本选择工具栏:功能详解与源码解析
  • RAG 知识库实战指南:基于 Spring AI 构建 AI 知识问答应用
  • Git用法记录
  • UE5的渲染Debug技巧
  • C语言字符串拷贝的三重境界:从下标到指针的华丽变身
  • 设备健康管理标准规范:技术架构与合规性实现指南
  • 《人形机器人的觉醒:技术革命与碳基未来》——类人关节设计:人工肌肉研发进展及一款超生物肌肉Hypermusclet的设计与制造
  • K8S服务发现原理及开发框架的配合
  • k8s黑马教程笔记
  • LeetCode 刷题【29. 两数相除】
  • 波士顿房价预测工具 - XGBoost实现
  • 2.4.1-2.4.3控制范围-控制进度-控制成本
  • C++ 生成动态库.dll 及 C++调用DLL,C++ 生成静态库.lib及 C++调用lib
  • 其它IO函数
  • 在 ArkUI 中实现丝滑嵌套滚动:让你的页面像抖音一样顺滑