shell第四天作业——流程控制之循环

news2024/11/14 8:49:00

题目

一、for创建20个用户,用户前缀由用户输入,用户初始密码由用户输入。

二、for循环ping测试指定网段的主机,网段由用户输入。

三、使用for/while实现批量主机root密码的修改


一、for创建20个用户,用户前缀由用户输入,用户初始密码由用户输入。

例如:test01,test10

1、编写脚本

[root@client_2 homework4]# vim add20user.sh
#!/bin/bash
read -p "please input username's prefix:" namepre
read -p "please input initial password:" passwd
count=20
for name in ${namepre}{01..20}
do
	useradd $name &> /dev/null
	if [ $? -eq 0 ];then
		echo $passwd | passwd $name --stdin &> /dev/null
	else
		echo "user $name already exists."
		let count--
	fi
done
echo "created $count users successfully"

2、加可执行权限

[root@client_2 homework4]# chmod a+rx add20user.sh

3、测试

二、for循环ping测试指定网段的主机,网段由用户输入。

例如用户输入192.168.5 ,则ping 192.168.5.1 --- 192.168.5.10,并将结果保存到文件中。
UP: /tmp/host_up.txt
Down: /tmp/host_down.txt

1、创建记录文件

[root@client_2 homework4]# touch /tmp/host_up.txt
[root@client_2 homework4]# touch /tmp/host_down.txt

2、编写脚本

[root@client_2 homework4]# vim forPing.sh 
#!/bin/bash
read -p "please input network segment:" seg
for ip in ${seg}.{1..10}
do
	if ping -c2 $ip &> /dev/null ;then
		date >> /tmp/host_up.txt
		echo "$ip is up" >> /tmp/host_up.txt
	else
		date >> /tmp/host_down.txt
		echo "$ip is down" >> /tmp/host_down.txt
	fi
done

3、加可执行权限

[root@client_2 homework4]# chmod a+rx forPing.sh

4、测试

三、使用for/while实现批量主机root密码的修改

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

1、创建主机IP文件

[root@client_2 homework4]# vim host_ip.txt
192.168.5.128
192.168.5.129
192.168.5.131

2、与文件中写入的主机配置免密登录

本地创建密钥对:(192.168.5.130本机)

[root@client_2 homework4]# ssh-keygen

使对端对本地授权登录(要保证对端的家目录下有.ssh目录):

[root@client_2 .ssh]# ssh-copy-id root@192.168.5.128
[root@client_2 .ssh]# ssh-copy-id root@192.168.5.129
[root@client_2 .ssh]# ssh-copy-id root@192.168.5.131

检查免密登录是否成功(略)

3、编写脚本

for循环:

[root@client_2 homework4]# vim chpwd_ssh.sh 
#!/bin/bash
read -p "please input new password for hosts:" passwd
for line in `cat /root/shell/homework4/host_ip.txt`
do
	ssh root@$line "echo $passwd | passwd root --stdin" &> /dev/null
	if [ $? -eq 0 ];then
		echo "$line change password successfully"
	else
		echo "$line change password failed"
	fi
done

while循环:

[root@client_2 homework4]# vim chpwd_ssh.sh 
#!/bin/bash
read -p "please input new password for hosts:" passwd
exec < /root/shell/homework4/host_ip.txt
while read line
do
	ssh -n root@$line "echo $passwd | passwd root --stdin" &> /dev/null
	if [ $? -eq 0 ];then
		echo "$line change password successfully"
	else
		echo "$line change password failed"
	fi
done

注意:while循环读取文件是从文件中每读入一行执行一次循环,ssh -n是为了防止ssh命令执行后文件数据读入到对端主机而造成程序终止循环。ssh -n等价于ssh < /dev/null

4、测试

关闭192.168.5.128主机以模拟失败

over~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年已然要结束了,一起来分享下你的故事吧!2023年的接力棒已经递到手里,千言万语不如一句Fighting!

【系列专栏】&#xff1a;博主结合工作实践输出的&#xff0c;解决实际问题的专栏&#xff0c;朋友们看过来&#xff01; 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》 《Android开发实战》 《实用硬件方案设计》 长期持续带来更多案例与技术文章分享…

c++语法欠缺地方

sizeof是用来计算变量占多大内存的&#xff0c;单位是字节&#xff08;byte&#xff09;&#xff1b;sizeof 后面跟类型时&#xff0c;必须加上括号&#xff0c;例如sizeof(double);后面跟变量可以不用加括号&#xff0c;例如&#xff1a;sizeof d%d是以十进制形式输出有符号整…

CDP集群卸载过程

CDP集群卸载过程 1. 登录到Cloudera Manager&#xff0c;并停止整个集群服务。 2. 停用并移除所有Parcel 3. “停用”CDH7的Parcel。 4. 从主机删除”CDH6的Parcel 5. 删除集群 6. 登录server机器&#xff0c;停止CM Server服务 systemctl stop cloudera-scm-server 7. 移除…

如何实现高性能点赞(三)

数据库设计 数据库表中至少要包含三个字段&#xff1a;被点赞用户id&#xff0c;点赞用户id&#xff0c;点赞状态。再加上主键id&#xff0c;创建时间&#xff0c;修改时间就行了。 建表语句 对应的对象 UserLike 数据库操作 操作数据库同样封装在接口中 LikedService L…

【2.2】服务拆分--服务远程调用

服务拆分--服务远程调用1 案例--根据订单id查询订单功能2 远程调用方式分析2.1 注册RestTemplate2.2 发http请求3 总结1 案例–根据订单id查询订单功能 需求&#xff1a;根据订单id查询订单的同时&#xff0c;把订单所属的用户信息一起返回。 由上一节的测试结果可以看出&…

opencv-python常用函数解析及参数介绍(五)——腐蚀与膨胀

腐蚀与膨胀前言膨胀腐蚀开运算与闭运算礼帽与黑帽运用膨胀和腐蚀获得图像轮廓前言 有些时候图片上会有一些划痕或者污渍&#xff0c;会影响图片的质量&#xff0c;假设我有一张写有“艾醒”的图片&#xff0c;但是有花花绿绿的划痕和污渍&#xff0c;这时我们就可以运用腐蚀与…

五、Web自动化测试

Web自动化测试5.1 Selenium Web 自动化5.1.1 Selenium 和 Robot Framework SeleniumLibrary 库介绍安装 robotframework-seleniumlibrary导入 SeleniumLibrary5.1.2 Open Browser 和 Close Browser5.1.3 Input Text5.1.4 Click Button5.1.5 Click Element5.1.6 Click Link5.1.7…

2022CTF培训(十)IOT 相关 CVE 漏洞分析

附件下载链接 这里选择的设备是一款家用路由器&#xff0c;型号为 D-Link DIR-850L(EOL) 。由于该款路由器已停产&#xff0c;官网无法下载到固件&#xff0c;不过目前这个网站还能下载到相关的固件&#xff0c;当然附件中也会提供需要分析的固件。 固件解密 以 DIR850LB1_FW…

归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)

目录 一、概念 1、归一化&#xff08;Normalization&#xff09;&#xff1a; 2、标准化&#xff08;Standardization&#xff09;&#xff1a; 3、中心化/零均值化&#xff08;zero-centered&#xff09;&#xff1a; 二、联系和差异&#xff1a; 三、标准化和归一化的多种…

Faster RCNN网络源码解读(Ⅵ) --- RPN网络代码解析(上)RPNHead类与AnchorsGenerator类解析

目录 一、代码作用&#xff08;rpn_function.py&#xff09; 二、代码解析 2.1 RPNHead类 2.2 AnchorsGenerator类 2.2.1 初始化函数__init__ 2.2.2 正向传播过程 forward 2.2.3 set_cell_anchors生成anchors模板 2.2.4 generate_anchors生成anchors 2.2.5 cached_g…

【Linux】vim 中批量添加注释

本期主题&#xff1a;vim 中批量添加注释博客主页&#xff1a;小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限&#xff0c;出现错误希望大家不吝赐 此文主要介绍两种方法&#xff1a;方法一 &#xff1a;块选择模式&#xff1b;方法二: 替换命令 &#x…

Java基础随手记

数组 数组的使用 数组可以存放多个同一类型的数据&#xff0c;数组也是一种数据类型&#xff0c;是引用类型。即&#xff1a;数组就是一组数据 问题引入 传统的解决方式 使用数组来解决 可以看到&#xff0c;我们创建了一个double类型元素的数组&#xff0c;将我们要计算…

buuctf-misc-[GKCTF 2021]你知道apng吗1

先下载附件&#xff0c;快要过年了&#xff0c;十二月份还没发过文章&#xff0c;紧急写一篇。 下载文件后缀名为apng 搜索一下APNG&#xff08;基于PNG的位图动画格式&#xff09;_百度百科 利用火狐浏览器可以打开 类似gif图片的格式&#xff0c;用专门工具进行拆解&#xf…

MySQL内部的核心组件

mysql前言 1.MySQL的驱动 2.数据库的连接池 3.MySQL的工作线程 4.SQL接口 5.SQL解析器 6.查询优化器 7.执行器组件 8.存储引擎接口 1.MySQL的驱动是做什么的&#xff1f; 尤其记得刚刚学习MySQL的时候&#xff0c;引入的pom坐标&#xff1a;mysql-connector-java&#xff0c;这…

软考- 计算机组成原理与体系结构

【考点梳理】 考点1、数据的表示&#xff08;★★★★&#xff09; 考点1.1、进制的转换 【考法分析】 本考点的基本考法是与内存地址计算、IP地址计算结合考查。 【要点分析】 1、十进制转R进制&#xff08;短除法&#xff09;&#xff1b; 2、R进制转十进制&#xff0…

Arduino与Proteus仿真实例-WS2812实现音乐氛围灯仿真

WS2812实现音乐氛围灯仿真 本文将使用WS2812实现一个音乐氛围灯。Arduino通过检测音频信号强度,然后转换成W2812灯带驱动信号,从而实现音乐氛围灯。 WS2812的驱动和使用在前面的文章中作了详细的介绍,请参考: Arduino与Proteus仿真实例-WS2812-RGB-LED灯带酷炫效果仿真Ar…

【软件质量】软件质量分析总结报告

软件质量-----“软件与明确地和隐含地定义的需求相一致的程度” 一、质量的概念 Ⅰ、传统的质量概念:产品性能是否符合技术规范 Ⅱ、质量是一组固有特性满足要求的程度 Ⅲ、适用性质量 Ⅳ、质量不仅指产品质量&#xff0c;也指过程和体系的质量 二、软件质量 Ⅰ、产品质…

教你如何用一行Python代码实现GUI图形界面

文章目录一、选择文件夹二、选择文件三、选择日期四、输入文本五、弹窗无按钮六、弹窗无标题七、弹窗只有OK按钮八、弹窗只有Error按钮(红色)九、显示通知窗口十、弹窗选择十一、自定义弹窗实战一、选择文件夹 首先导入PySimpleGUI库&#xff0c;并且用缩写sg来表示。 import…

Kubernetes 笔记(02)— 基本架构、工作机制简述、Master 组件、Node 组件

1. Kubernetes 的基本架构 Kubernetes 采用了现今流行的“控制面 / 数据面”&#xff08;Control Plane / Data Plane&#xff09;架构&#xff0c;集群里的计算机被称为“节点”&#xff08;Node&#xff09;&#xff0c;可以是实机也可以是虚机&#xff0c;少量的节点用作控制…

【CUDA入门笔记】GPU存储结构模型(2)

GPU存储结构模型 1.CPU可以读写GPU设备中的Global Memory、Constant Memory以及Texture Memory内存储的内容&#xff1b;主机代码可以把数据传输到设备上&#xff0c;也可以从设备中读取数据&#xff1b; 2.GPU中的线程使用Register、Shared Memory、Local Memory、Global Me…