lylover
V2EX  ›  PHP

如何快速的执行 telnet 命令

  •  
  •   lylover · Mar 28, 2016 · 4478 views
    This topic created in 3736 days ago, the information mentioned may be changed or developed.

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

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

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


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

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

    如果你搞不定自己写的脚本,你可以用商业的 securecrt ,它也能把 session 共享出来
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   854 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 22:07 · PVG 06:07 · LAX 15:07 · JFK 18:07
    ♥ Do have faith in what you're doing.