如何快速的执行 telnet 命令

2016-03-28 08:38:46 +08:00
 lylover

每次程序执行命令需要先 telnet 进设备 然后再执行命令 整个过程需要 4 秒 时间有一些长

能否实现程序保留一个 telnet 界面在那里 当需要执行命令的时候 直接在保持的 telnet 界面里 打入命令 而节约 telnet 连接进设备的时间

3774 次点击
所在节点    PHP
15 条回复
jasontse
2016-03-28 08:52:36 +08:00
看了 lz 的发帖记录,是要做个 Looking Glass ?
ChiChou
2016-03-28 09:30:50 +08:00
不现实。即使在后台维护一个活动的 telnet 会话, telnet 服务端会因为长时间没有交互而主动断开(除非不停的输入命令当“心跳”)
clino
2016-03-28 09:36:21 +08:00
这个是想要用 php 来实现吗?
lylover
2016-03-28 10:40:10 +08:00
@clino 是的 想用 php


@ChiChou 可以定时发送一个命令 或者回车一下
lylover
2016-03-28 10:42:13 +08:00
@jasontse 不是 Looking Glass 是要定时操作静态路由
shiji
2016-03-28 11:10:31 +08:00
我猜测:
用 swoole 那种东西在后台 php 像服务一样持续运行(并保持 telnet 的持续连接),每当有新的指令时,通过 web 服务器的提交命令给后台 swoole 执行。

swoole 像服务一样,会一直运行直到你停止它。
传送指令的那个可以是 PHP ,就是普通的 mod_php 或者 php-fpm ,从 web 请求开始运行到传送结束结束。
hrong
2016-03-28 11:21:08 +08:00
正确的做法是把那个命令公开为 web 服务,但一般人都不愿意折腾
其它答案见前面的回帖
lylover
2016-03-28 12:07:12 +08:00
@shiji 大概意思是这样
这样可以节约 telnet 连接时间
ayouwei
2016-03-28 17:10:46 +08:00
改用 rsync 不好么?
lylover
2016-03-28 17:52:22 +08:00
@ayouwei 是同步文件的吧 也能执行操作吗
ayouwei
2016-03-28 19:42:47 +08:00
@lylover
我理解成你是用 telnet 来上传 /下载文件,
如果是 telnet 执行操作,对于服务器完全可以放弃 telnet.
对于网络设备或其它,自动化处理 snmp 读 /netconf 写要用更普遍.
xuboying
2016-03-28 20:14:35 +08:00
可以的,你用 Python 或者 perl 一类脚本语言的 telnet 模块连 server ,再监听一个端口,让真正的 telenet 客户端连,脚本做包转发,很容易
lylover
2016-03-28 20:27:07 +08:00
@ayouwei 我是需要写入
@xuboying 这种的方式一般能几秒执行完
xuboying
2016-03-28 21:36:02 +08:00
@lylover 包转发是双向的呀。
xuboying
2016-03-28 21:38:20 +08:00
@lylover 这种方式只要脚本后台再 screen 或 tmux 里执行着,你的真实 telnet 客户端可以随时连上再断开,和服务器的握手延迟没关系啊

如果你搞不定自己写的脚本,你可以用商业的 securecrt ,它也能把 session 共享出来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/266754

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX