ssh 遍历IPS 进行连接

今天生产要批量连接服务器并执行命令:把所有的IP写到一个iplist文件,然后用while read 和for进行遍历拼接ssh命令发现两个问题:ssh连接参数-n 和while read与for读取的区别

脚本

iplist

192.168.4.12

192.168.4.13

192.168.4.14

tongjidf.sh

#!/bin/bash

cmd="df -m | grep app"

while read line

do

ssh [email protected]${line} $cmd

done <./iplist

执行的结果发现只连接了一个地址192.168.4.12、后面的地址没有执行

然后改成了for

#!/bin/bash

cmd="df -m|grep app"

for ips in `cat iplist`

do

ssh [email protected]${line} $cmd

done

这个脚本就可以实现连接以上所有地址然后进行命令执行。

终于找到了一个说法:就是for是一行一行的读取,而while read line是一次读取放入内存

第二个就是ssh默认读取本地的内容,而-n参数阻止了,而是从/dev/null/读取,这样一来ssh如果用while read line的形式就是连接一个

-n      Redirects stdin from /dev/null (actually, prevents reading from stdin).  This must be used when ssh is run in the background.  A
             common trick is to use this to run X11 programs on a remote machine.  For example, ssh -n shadows.cs.hut.fi emacs & will start
             an emacs on shadows.cs.hut.fi, and the X11 connection will be automatically forwarded over an encrypted channel.  The ssh pro-
             gram will be put in the background.  (This does not work if ssh needs to ask for a password or passphrase; see also the -f

时间: 2024-10-25 12:51:06

ssh 遍历IPS 进行连接的相关文章

Delphi能通过SSH登录Linux,连接MYSQL取数么?像Navicat一样

百度随时就能搜,你就懒得搜下.http://tieba.baidu.com/p/671327617 Ssh tunnel通常能实现3种功能1) 加密网络传输2) 绕过防火墙3) 让位于广域网的机器连接到局域网内的机器 --------------------------------------------------------------------------------- Delphi能通过SSH登录Linux,连接MYSQL取数么? SSH是远程连接Linux的其中一种通道方式.目前Li

Docker运行MongoDB及Redis及ssh端口映射远程连接

Docker运行MongoDB及Redis及ssh端口映射远程连接 本节内容简介 在本实验里我们将通过完成 MongoDB 和 Redis 两个容器来学习Dockerfile及Docker的运行机制. 本节中,我们需要依次完成下面几项任务: MongoDB 的安装及配置 Redis 的安装及配置 Dockerfile 的编写 从 Dockerfile 构建镜像 本次实验的需求是完成 Dockerfile,通过 Dockerfile 创建 MongoDB 或 Redis 应用.Dockerhub上

远程连接工具SSH和linux的连接

实际开发中,Linux服务器都在其他的地方,我们要通过远程的方式去连接Linux并操作它,Linux远程的操作工具有很多,企业中常用的有Puttty.secureCRT.SSH Secure等.我使用SSH Secure工具进行远程连接,该工具是免费的图形化界面及命令行窗口集一身的远程工具. SSH Secure是什么百度百科有更详细的解答.https://baike.baidu.com/item/ssh/10407?fr=aladdin 远程工具SSH与linux的连接困扰了我好几天,终于解决

SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 和oracle 查询数据中文乱码问题

一.SSH Secure Shell Client连接Linux 命令行显示中文乱码问题 linux 设置系统语言 修改 /etc/sysconfig/i18n 文件,如 LANG="en_US.UTF-8",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面. 还有一种方法 cp /etc/sysconfig/i18n $HOME/.i18n 修改 $HOME/.i18n 文件(vim  $HOME/.i18n)

Putty CentOS SSH 总是自动断开连接

/********************************************************************** * Putty CentOS SSH 总是自动断开连接 * 说明: * VPS中采用CentOS系统,SSH在使用过程中总是自动断开连接,太麻烦了, * 记得在Ubuntu中是没有这个问题的. * * 2018-7-9 深圳 宝安西乡 曾剑锋 ********************************************************

让ubuntu的ssh保持长时间连接

Ubuntu下的ssh连接老是自己会断,一段时间不理它就会失去响应 如何让ssh连接服务器或者ssh tunnel保持连接呢? 其实也很方便,只要在/etc/ssh/ssh_config文件里加两个参数就行了 1 TCPKeepAlive yes 2 ServerAliveInterval 300 前一个参数是说要保持连接,后一个参数表示每过5分钟发一个数据包到服务器表示“我还活着” 如果你没有root权限,修改或者创建~/.ssh/ssh_config也是可以的

ssh的两种连接方法(包括无密码访问)

一.正常连接方法:ssh [email protected] 二.无密码连接方法(有两台机器:此处我把被连接的称为服务器,另一台则称为客户端): 1.先在服务器添加目录 .ssh: mkdir  .ssh 2.分配.ssh目录权限: chmod 777 .ssh 3.在客户端创建公钥与私钥: ssh-keygen //此处直接按多个回车键,直到创建成功 4.将客户端的公钥复制到要服务器,运行命令:ssh-copy-id [email protected] ,待输入正确密码后即可实现ssh无密码访

SSH基本简介及连接交互过程

简介: SSH(Secure+SHell):是一种网络协议,顾名思义,就是非常安全的shell,主要用于计算机间的加密传输. SSH服务基于非对称加密(public-key cryptograthy,也称公开密钥加密)技术实现数据加密传输.该技术会生成一对密钥,一个对数据进行加密,而且只能用于加密,而另一个只能用于解密.使用加密密钥加密后的数据,只能用对应的解密密钥才能解密.而且只知道其中一个密钥,无法计算出另一个.因此,如果公开了一对密钥中的一个,并不会危害到另一个密钥.通常把公开的密钥称为公

raspberrypi 3学习笔记(四)——SSH及VNC远程连接

下面就讲解一些树莓派如何进行远程连接. 一.SSH远程登录 首先,确保树莓派与电脑连接在同一局域网以内.如果你的树莓派具有图形界面,打开命令输入终端,输入:  ifconfig 然后就会弹出相关的网络连接信息,这时候你知道找到树莓派的IP地址记下就行. 如果没有图形界面,还可以通过路由器查看,在电脑浏览器输入192.168.1.1,然后登陆路由器,就可以找到树莓派连接的ip地址,我的树莓派ip地址是192.168.1.100 然后我们就可以通过 ssh 登录树莓派了.windows 下可以通过