V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lylover
V2EX  ›  PHP

如何快速的执行 telnet 命令

  •  
  •   lylover · 2016-03-28 08:38:46 +08:00 · 3755 次点击
    这是一个创建于 3167 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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


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

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

    如果你搞不定自己写的脚本,你可以用商业的 securecrt ,它也能把 session 共享出来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1253 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 18:23 · PVG 02:23 · LAX 10:23 · JFK 13:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.