免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 11351 | 回复: 12
打印 上一主题 下一主题

编写telnet脚本的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-05 09:34 |只看该作者 |倒序浏览
现在有一台服务器192.168.10.248开放了指定端口10001,当手工用telnet 发送数据时可以接收到,比如
telnet 192.168.10.248 10001
a a hava_new_conf                        #发送的数据,服务器屏幕有显示结果
Connection closed by foreign host.

我现在想写一个自动的telnet脚本,完成上面的功能。试了两种办法,均不行,请大家看看应该如何修改?

#第一个脚本,仿照http://www.chinaunix.net/jh/24/201364.html的例子写的
#!/bin/bash
data=`cat test.txt`
tempinput=in
rm -fr $tempinput
mknod $tempinput p
exec 7<>$tempinput
telnet 192.168.10.248 10001 <&7
sleep 1; echo 'a a have_new_conf' >> $tempinput

#第二个脚本,仿照http://www.linuxmine.com/1454.html写的
#!/bin/bash
telnet 192.168.10.248 10001 <<!
a a have_new_conf
!

论坛徽章:
0
2 [报告]
发表于 2007-01-05 09:41 |只看该作者
原帖由 laomai 于 2007-1-5 09:34 发表
现在有一台服务器192.168.10.248开放了指定端口10001,当手工用telnet 发送数据时可以接收到,比如
telnet 192.168.10.248 10001
a a hava_new_conf                        #发送的数据,服务器屏幕有显示结果 ...



我用过第一种方式,不过看lz的程序可能由以下问题:
1)没有在7号设备描述符里输入telnet的username和passwd
2)没有定义一个out来接收telnet的remote server的返回信息,可能会造成缓冲堵塞,而且out可以用来作为很好的调试信息
3)sleep 1是否合适,是与你的网络环境和server的负荷有关的。
暂时想到这么多,请各位大虾继续指正喽,呵呵

论坛徽章:
0
3 [报告]
发表于 2007-01-05 10:09 |只看该作者
楼上是MM吗?

论坛徽章:
0
4 [报告]
发表于 2007-01-05 10:11 |只看该作者
原帖由 playmud 于 2007-1-5 10:09 发表
楼上是MM吗?



不好意思,大哥。让你失望了,那是我的mm  ^_^
咱还是讨论LZ的问题吧,不要跑题哦。

论坛徽章:
0
5 [报告]
发表于 2007-01-05 11:20 |只看该作者
原帖由 IAMTOP1982 于 2007-1-5 09:41 发表
我用过第一种方式,不过看lz的程序可能由以下问题:
1)没有在7号设备描述符里输入telnet的username和passwd
2)没有定义一个out来接收telnet的remote server的返回信息,可能会造成缓冲堵塞,而且out可以 ...


我这个telnet应该不用输入用户和密码吧?是我自定义的一个端口啊,现在的问题是这个东西好象没被telnet接收到,因为服务器的输出是cmd=  后面是空白,
说明:
1、两个脚本都和服务器进行通信了,
2、估计还是telnet的标准输入没有被重定向

我要解决的应该是第二个问题,呵呵

论坛徽章:
0
6 [报告]
发表于 2007-01-05 11:38 |只看该作者
那是你服务器的问题

论坛徽章:
0
7 [报告]
发表于 2007-01-05 11:43 |只看该作者
服务器逐个字符接受,看看是否收到数据。

论坛徽章:
0
8 [报告]
发表于 2007-01-05 13:40 |只看该作者

回复 7楼 playmud 的帖子

猪头,我说过了,手工输入的话,服务器是可以接收的,所以问题应该不在服务器端

论坛徽章:
0
9 [报告]
发表于 2007-01-05 13:48 |只看该作者
原帖由 laomai 于 2007-1-5 13:40 发表
猪头,我说过了,手工输入的话,服务器是可以接收的,所以问题应该不在服务器端



呵呵,LZ说话不客气。
下面我自己写了一段,我试过是可以的,你改一下看行不行。


  1. inputfile=in
  2. outputfile=out
  3. rm -rf $inputfile
  4. rm -rf $outputfile
  5. mknod $inputfile p

  6. exec 7<> $outputfile
  7. exec 8<> $inputfile

  8. telnet $REMOTE_SERVER <&8 >&7 &
  9. sleep $TELNET_DURATION
  10. echo $TELNET_USER >> $inputfile
  11. sleep $TELNET_DURATION
  12. echo $TELNET_PASSWORD >> $inputfile
复制代码

论坛徽章:
0
10 [报告]
发表于 2007-01-05 14:47 |只看该作者
楼上高手啊
鄙视楼主
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP