文档章节

while和ssh连用的误区

perofu
 perofu
发布于 2014/07/12 14:41
字数 336
阅读 601
收藏 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
粉丝 127
博文 152
码字总数 131036
作品 0
广州
系统管理员
加载中

评论(1)

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

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

范堡
2011/07/15
1K
8
join用法与for循环用法

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

偷笑的骆驼
01/24
0
0
SSH隧道与端口转发及内网穿透

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

fighting-cluber
2013/12/22
0
0
走出架构误区,架构师并不是想象的那么容易

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

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

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

作者: Shusain
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

活动招募 HUAWEI HiAI公开课·北京站-如何在4小时把你的APP变身AI应用

人工智能和机器学习是全球关注的新趋势,也是当前最火爆、最流行的话题。当你拿手机用语音助手帮你点外卖,智能推荐帮你把周边美食一网打尽;当你拿起P20拍照时,它将自动识别场景进行最美优...

华为终端开放实验室
30分钟前
1
0
匹配两位小数,js正则

var regex = /^\d*(\.[1-9]|\.\d[1-9])*$/ console.log(1.2,regex.test(1.2)); console.log(0.3,regex.test(0.3)); console.log(1.03,regex.test(1.03)); ......

微信小程序-暗潮
34分钟前
1
0
905. Sort Array By Parity - LeetCode

Question 905. Sort Array By Parity Solution 题目大意:数组排序,偶数放前,奇数在后,偶数的数之间不用管顺序,奇数的数之间也不用管顺序 思路:建两个list,一个放偶数,一个放奇数,最...

yysue
39分钟前
1
0
h5 禁止手机自带键盘弹出

html: <div style="width: 350px;margin:50px auto;"><input type="text" id="datePicker" class="date_picker form-control" placeholder="点击选择入住日期" /></div> js: $("#date......

Delete90
56分钟前
1
0
color透明度对照表

透明度百分比 数值 100% 不透明 FF 95% F2 90% E6 85% D9 80% CC 75% BF 70% B3 65% A6 60% 99 55% 8C 50% 80 45% 73 40% 66 35% 59 30% 4D 25% 40 20% 33 15% 26 10% 1A 5% 0D 0% 完全透明 ......

_无问西东
57分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部