文档章节

while和ssh连用的误区

perofu
 perofu
发布于 2014/07/12 14:41
字数 336
阅读 610
收藏 4

 

         今天听到同事,说了whilessh连用的从定向问题,然后baidu了下,特此总结。

详见:http://blog.csdn.net/shrekmu/article/details/2513177

 

         for循环中,没有此问题。

 

         原因:while循环中,使用了重定向机制,被读取文件中的信息都已经读入并重定向给了整个while语句。所以当我们在while循环中再一次调用read语句,就会读取到下一条记录。问题就出在这里,ssh语句正好读取输入的所有信息

 

         解决办法:while循环中的ssh语句的最后,加上< /dev/null,即可。

格式:

cat file|while read LINE

do

      echo ********************************$LINE

      ssh  $LINE cat </dev/null

done

 

实例1:常见的错误

 

[root@ tmp]# cat date

172.21.34.20

172.21.34.23

172.21.34.22

 

[root@ tmp]# vi while_ssh.sh

 

#!/bin/bash

while read LINE

do

      echo ********************************$LINE

      ssh  $LINE cat

done < date

 

 

[root@ tmp]# sh -x while_ssh.sh

+ read LINE

+ echo   '********************************172.21.34.20'

********************************172.21.34.20

+ ssh -p 10060 172.21.34.20 cat

172.21.34.23

172.21.34.22

+ read LINE

 

 

实例2:解决办法

 

[root@   tmp]# cat date

172.21.34.20

172.21.34.23

172.21.34.22

 

[root@   tmp]# vi while_ssh.sh

 

#!/bin/bash

while   read LINE

do

    echo   ********************************$LINE

    ssh  $LINE cat </dev/null

done   < date

 

 

[root@   tmp]# sh -x while_ssh.sh   

+   read LINE

+   echo '********************************172.21.34.20'

********************************172.21.34.20

+ ssh   -p 10060 172.21.34.20 cat

+   read LINE

+   echo '********************************172.21.34.23'

********************************172.21.34.23

+ ssh   -p 10060 172.21.34.23 cat

+   read LINE

+   echo '********************************172.21.34.22'

********************************172.21.34.22

+ ssh   -p 10060 172.21.34.22 cat

+   read LINE


© 著作权归作者所有

共有 人打赏支持
perofu
粉丝 128
博文 153
码字总数 131146
作品 0
广州
系统管理员
私信 提问
加载中

评论(1)

perofu
perofu
今天测试while+nc到ssh端口,也是出现同样的问题,make:sweat_smile:
关键字:国外镜像服务器,Nginx,Proxy,G姓防火墙,SSH,压缩,加密传输,专用隧道。

想了好久,这个标题应该怎样写。 就如同我想了很久这需求应该怎样配。 我所建立以摄影图片为主的论坛,有一大部分朋友远在国外。 他们在各地的校园或市镇里头上网所连接位于国内的服务器稳定...

范堡
2011/07/15
1K
8
SSH隧道与端口转发及内网穿透

SSH隧道与端口转发及内网穿透 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多。不过其实除了这个功能,它的隧道转发功能更是吸引人。下面是个人根据自己的需求以及在网上查找的...

fighting-cluber
2013/12/22
0
0
join用法与for循环用法

一:join用法 字符串迭代添加元素 s='dsfhhewfe's1='*'.join(s)print(s1) 打印结果: dsfhhewfe 二:字符串循环(与for循环连用,可以添加break,continue) 1 for循环与break连用 for i in...

偷笑的骆驼
01/24
0
0
走出架构误区,架构师并不是想象的那么容易

几年前还记得我发表的软件设计的几大误区吗?   随着时代的发展,orm被更多人接受,九十年代出来的设计模式也被动地融入到主流框架,以至于设计模式到现在发展成了架构模式和业务模式,而存...

技术小能手
06/08
0
0
通过示例学习使用 netstat

netstat 是一个告诉我们系统中所有 tcp/udp/unix socket 连接状态的命令行工具。它会列出所有已经连接或者等待连接状态的连接。 该工具在识别某个应用监听哪个端口时特别有用,我们也能用它来...

作者: Shusain
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue-router的HTML5 History 模式设置

VUE是当下最火爆的前端框架之一,vue-router是vue项目中几乎都会用到的组件,然而体验一时爽,其实坑不少。本篇经验将详细介绍vue-router的两种mode效果和开发测试环境下的问题,并给出解决方...

peakedness丶
24分钟前
1
0
Dubbo 源码分析 - 服务引用

1. 简介 在上一篇文章中,我详细的分析了服务导出的原理。本篇文章我们趁热打铁,继续分析服务引用的原理。在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直联的方式引用...

小刀爱编程
34分钟前
1
0
redis_集群原理

数据分布 数据分布理论 分布式系统数据分区规则:常见的有哈希分区和顺序分区两种。 哈希分区 常见的hash分区规则有:节点取余分区,一致性hash分区,虚拟槽分区. redis数据分区 redis集群功能...

grace_233
34分钟前
0
0
数据库(mysql)业务用户表批量造测试用户密码数据[方案]

博主这几天在配合公司测试做商城商品秒杀场景的压测,由于秒杀需要登录,所以需要为测试创建多个用户密码。此项任务可能在今后还会遇到,先做个笔录。同时,让小伙伴们需要的时候也可以有个参...

em_aaron
49分钟前
2
0
JDK_jvisualvm访问远程weblogic服务

1.首先需要在远程的weblogic的域下面,找到/bin/ setDomainEnv.sh ,需要在此文件下加入如下内容: -Dcom.sun.management.jmxremote.port=1090 ##端口号可以自己指定 -Dcom.sun.management.j...

四年级小学生
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部