SHELL第二次项目

目录

项目要求

项目步骤

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

1.1、创建for1.txt文件

1.2、输入编写的代码

1.3、结果展示

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地址写入到:/tmp/host_down.txt文件中

2.1、创建for2.txt文件

2.2、输入编写的代码

2.3、结果展示(打开相应的文件夹查看)

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

3.1、使用ssh-keyqen命令建立密钥对

3.2、通过 ssh-copy-id 将sever端的公钥上传到两个服务端,实现免密登录

3.3、编写for3.xtt文件

3.4、 输入编写的代码

3.5、结果展示


项目要求

1.编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如:test1、test2、test3、.......、 test10
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地址写入到:/tmp/host_down.txt文件中
3.使用for循环实现批量主机root密码的修改
(1)打开多台主机
(2)使用ssh-keyqen命令建立密钥对
(3)多台主机间通过ssh-copy-id进行免密登录
(4)编写脚本for3.sh,通过for循环登录主机修改对方root账户密码

项目步骤

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

1.1、创建for1.txt文件

vim for1.sh                #创建for1.txt文件

1.2、输入编写的代码

#!/bin/bash

read -p "请输入账户名前缀:" username
read -p "请输入账户初始密码:" password

for((i=1;i<=20;i++))                #for循环
do
        if id $username$i &> /dev/null        
        then
                echo -e "\e[1;32m 用户$username$i已存在 \e[0m"        #用户已存在将字体显示为绿色
        else
                echo "正在创建账户,请稍等"
                useradd $username$i        #批量创建用户
                echo "$password" | passwd --stdin $username$i &> /dev/null        #批量创建密码
                echo -e "\e[1;32m 用户$username$i创建成功 \e[0m"        ##用户创建成功将字体显示为绿色
        fi
done

 1.3、结果展示

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地址写入到:/tmp/host_down.txt文件中

2.1、创建for2.txt文件

vim for2.txt                #创建for2.txt文件

 2.2、输入编写的代码

#!/bin/bash

read -p "请输入测试网段IP前三段:" ip

for((i=125;i<=135;i++))                #for循环
do
        IP="$ip.$i"
        if ping -c 2 -w 3 $IP &> /dev/null                #ping通数据只显示两行,但是全部丢进黑洞中
        then
                echo -e "\e[1;32m $IP成功ping通 \e[0m" >> /tmp/host_up.txt               #ping通就会被丢进/tmp/host_up.txt文件中,并显示绿色
        else
                echo -e "\e[1;31m $IP无法ping通 \e[0m" >> /tmp/host_down.txt                #无法ping通就会被丢进/tmp/host_down.txt文件中,并显示红色
        fi
done

2.3、结果展示(打开相应的文件夹查看)

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

3.1、使用ssh-keyqen命令建立密钥对

ssh-keygen -t rsa                        #使用ssh-keyqen命令建立密钥对

3.2、通过 ssh-copy-id 将sever端的公钥上传到两个服务端,实现免密登录

ssh-copy-id root@192.168.159.131

ssh-copy-id root@192.168.159.132

 3.3、编写for3.xtt文件

vim for3.txt

3.4、 输入编写的代码

#!/bin/bash

read -p "请输入要修改的主机起始地址:" user1
read -p "请输入要修改的主机结尾地址:" user2
read -p "请输入新密码:" passwd

for ((i=$user1;i<=$user2;i++))                #for循环
do
        ssh root@192.168.159.$i "echo "$passwd" | passwd --stdin root &> /dev/null"
        if [ $? -eq 0 ]
        then
                echo -e "\e[1;32m 新密码修改成功 \e[0m"
        else
                echo -e "\e[1;31m 新密码修改失败 \e[0m"
        fi
done

 3.5、结果展示

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

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

相关文章

【Leetcode】2583. 二叉树中的第 K 大层和

文章目录 题目思路代码结果 题目 题目链接 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和&#xff08;不一定不同&#xff09;。如果树少于 k 层&#xff0c;则返回 -1 。 注意&#xff0c;如果两个节点与根…

Linux java查看内存消耗 linux查看java程序内存(转载)

Linux java查看内存消耗 linux查看java程序内存 目录 一、jps命令。 二、ps命令。 三、top命令。 四、free命令。 五、df命令。 查看应用的CPU、内存使用情况&#xff0c;使用jps、ps、top、free、df命令查看。 一、jps命令。 可以列出本机所有java应用程序的进程pid。…

应用感知型网络性能管理

网络基础设施似乎日益复杂和先进&#xff0c;迫使网络管理员抛弃传统的管理方法。应用感知型网络性能管理是一种用于监控网络性能的新型整体方法&#xff0c;它为管理员提供了强大的 IT 资源管理功能。应用感知型网络性能管理为 IT 管理员带来了精细视图、动态资源分配、主动故…

【计算机学院寒假社会实践】——卫生服务无限情,社区居民乐融融

为了加强社区基层党组织建设和改进社区工作&#xff0c;推动社区更好繁荣发展&#xff0c;曲阜师范大学计算机学院“青年扎根基层&#xff0c;服务走进社区”实践队员周兴睿在2024年2月14日来到了山东省滨州市陈集社区&#xff0c;对社区卫生进行清洁工作。 这一年&#xff0c;…

拓扑空间简介

目录 介绍集合论与映射映射相关定义映射&#xff08;map&#xff09;映射的一种分类&#xff1a;一一的和到上的 拓扑空间背景介绍开子集开子集的选择 拓扑拓扑空间常见拓扑拓扑子空间同胚其他重要定义 开覆盖紧致性有限开覆盖紧致性 R R R的紧致性 习题 介绍 这是对梁灿彬的《…

虚拟机安装Docker装载Mysql

目录 1.安装docker 2. docker中安装mysql 1.选择mysql镜像 2.查看镜像 3.启动mysql 4.修改配置 5.进入容器查看配置&#xff1a; 6.设置启动docker时&#xff0c;即运行mysql 1.安装docker SSH 登录到虚拟机: 使用MobaXterm或其他SSH客户端连接到虚拟机&#xff1a; ss…

【VRTK】【Unity】【VR开发】使用注意事项-Simulator没反应

【背景】 建立一个基本的VRTK项目后&#xff0c;用Simulator Rig模拟运行&#xff0c;移动鼠标后发现Simulator Rig没有任何反应。 【分析】 Console中的报错信息类似于没有启用Legacy unity input package&#xff0c;Legacy的意思是经典的&#xff0c;所以应该是指没有在p…

CMake和VsCode调试的使用

目录 CMake使用 CMake下载 创建系统文件目录 MakeList编写规范 VsCode启动调试 添加配置文件 添加断点&#xff0c;启动调试 CMake使用 CMake下载 输入指令 sudo apt install cmake 安装cmake&#xff0c;使用 cmake -version可查看cmake的版本信息 创建系统文件目…

成功解决ModuleNotFoundError: No module named ‘cv2’

&#x1f525; 成功解决ModuleNotFoundError: No module named ‘cv2’ &#x1f525; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 …

Java面试问题集锦

1.JDK、JRE、JVM 三者有什么关系&#xff1f; JDK&#xff08;全称 Java Development Kit&#xff09;&#xff0c;Java开发工具包&#xff0c;能独立创建、编译、运行程序。 JDK JRE java开发工具&#xff08;javac.exe/java.exe/jar.exe) JRE&#xff08;全称 Java Runtim…

FreeSWITCH 1.10.10 简单图形化界面14 - 添加mod_729编码转码支持

FreeSWITCH 1.10.10 简单图形化界面14 - 添加729编码转码支持 0、 界面预览1、G729简介2、透传模式使用G7293、转码模式使用G729 FreeSWITCH界面安装参考&#xff1a;https://blog.csdn.net/jia198810/article/details/132479324 0、 界面预览 http://myfs.f3322.net:8020/ 用…

装修避坑干货|无把手柜门的5种形式。福州中宅装饰,福州装修

无把手柜门有多种形式&#xff0c;每种形式都有其独特的设计和功能。以下是其中几种常见的形式&#xff1a; ❶直接扣柜门&#xff1a;常见于吊柜柜门或中间断开设计的收纳柜&#xff0c;直接借用柜门的厚度拉开即可&#xff0c;无需把手&#xff0c;使视觉更简洁。地柜柜门也可…

程序环境和预处理(1)

文章目录 目录1. 程序的翻译环境和执行环境2. 详解编译链接2.1 翻译环境2.2 编译本身也分为几个阶段2.3 运行环境 3. 预处理详解3.1 预定义符号3.2 #define3.2.1 #define 定义标识符3.2.2 #define 定义宏3.2.3 #define 替换规则3.2.4 #和##3.2.5 带副作用的宏参数3.2.6 宏和函数…

Windows Server 2012 IIS中发布ASP.NET CORE项目

服务器安装IIS&#xff1a; 微软官网下载SDK&#xff1a; 下载Runtime官网&#xff1a;https://dotnet.microsoft.com/download/dotnet-core 安装成功重启IIS&#xff1a; VS发布项目&#xff1a;

osmnx笔记:从OpenStreetMap中提取点和边的shp文件(FMM文件准备内容)

1 导入库 import osmnx as ox import time from shapely.geometry import Polygon import os import numpy as np 2 提取Openstreetmap 的graph Gox.graph_from_place(Huangpu,Shanghai,China,network_typedrive,simplifyTrue) ox.plot_graph(G) 3 提取graph中的点和边 gdf…

leetcode 2583.二叉树中的第K大层和

题目 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和&#xff08;不一定不同&#xff09;。如果树少于 k 层&#xff0c;则返回 -1 。 注意&#xff0c;如果两个节点与根节点的距离相同&#xff0c;则认为…

无公网IP情况下如何远程查看本地群晖NAS存储的文件资源

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…

进程1——进程与线程——day09

今天&#xff0c;主要讲一下进程的一些基本概念和一些接口 首先是进程的基本概念&#xff1a; 1.进程: 程序&#xff1a;存放在外存中的一段数据组成的文件 进程&#xff1a;是一个程序动态执行的过程,包括进程的创建、进程的调度、进程的消亡 2.进程相关命令: 1.top 动态…

【Nginx】微信小程序后端开发、一个域名访问多个服务

【Nginx】微信小程序后端开发、一个域名访问多个服务 1. 微信小程序后端开发 对于后端程序员&#xff0c;其实你们的职责就是干老本行&#xff0c;即写接口和服务&#xff0c;让前端能够访问你的接口就行&#xff0c;必要时需要查看微信小程序开发文档去向微信服务器发请求。…