V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
marknote
V2EX  ›  分享创造

TeleShellBot - 通过 telegram 机器人远程执行 shell

  •  
  •   marknote · 2017-09-28 06:59:27 +08:00 · 5677 次点击
    这是一个创建于 2648 天前的主题,其中的信息可能已经有所发展或是发生改变。

    TeleShellBot 是我脑洞大开的时候写的一个简单的 telegram 机器人,可以帮你远程执行 shell 命令,从而让你可以在手机上操纵你的服务器。 


    git 地址: https://github.com/marknote/TeleShellBot

    19 条回复    2017-10-08 22:52:00 +08:00
    Tink
        1
    Tink  
       2017-09-28 07:57:07 +08:00 via iPhone
    我在微信公众号上做了个这个,主要是用来给 pac 文件里加网址
    marknote
        2
    marknote  
    OP
       2017-09-28 08:23:59 +08:00
    @Tink 哦,那不错 :)
    Acompny
        3
    Acompny  
       2017-09-28 08:24:37 +08:00 via iPhone
    支持一下 感觉挺有用的
    ys0290
        4
    ys0290  
       2017-09-28 08:40:48 +08:00 via iPhone
    我做了一个用短信发命令给家里网络重启路由器用的
    siagasky
        5
    siagasky  
       2017-09-28 10:38:53 +08:00
    神奇神奇
    psirnull
        6
    psirnull  
       2017-09-28 11:02:32 +08:00 via iPhone   ❤️ 1
    为什么不直接 ssh
    marknote
        7
    marknote  
    OP
       2017-09-28 11:42:38 +08:00 via iPhone
    @psirnull ssh 在手机上用起来不太方便吧
    hnyoumfk
        8
    hnyoumfk  
       2017-09-28 11:47:04 +08:00   ❤️ 1
    @psirnull 瞎说什么大实话!
    zzlyzq
        9
    zzlyzq  
       2017-09-28 23:43:48 +08:00
    挺好。 如果 ssh 还必须搞定服务器有公网地址或者做映射, 这样的话,只要两边都可以连上 telegram 服务器就搞定了。
    marknote
        10
    marknote  
    OP
       2017-09-29 06:23:38 +08:00 via iPhone
    @zzlyzq 是的。反正我弄下来发现可以搞定的事情还是挺多的 :)
    psirnull
        11
    psirnull  
       2017-09-29 09:19:12 +08:00 via iPhone
    n2n 就可以了
    codehz
        12
    codehz  
       2017-09-30 23:52:49 +08:00
    能支持动态更新命令结果吗》就是 apt update 那种需要一定执行时间的
    ericgui
        13
    ericgui  
       2017-10-01 19:47:17 +08:00 via iPhone
    @ys0290 github 地址?
    ys0290
        14
    ys0290  
       2017-10-01 21:31:46 +08:00 via iPhone
    @ericgui 木有地址,实现思路大概是 asterisk 收到 dongle 里面手机卡短信,在将短信通过微信或者邮件转发给自己之前进行关键词过滤,然后 ssh 免密登陆路由执行 reboot,asterisk 这一步也有别的实现方法
    marknote
        15
    marknote  
    OP
       2017-10-02 21:46:54 +08:00
    @codehz 我测过了,没问题的,是异步的事件流处理。有标准输出就输出。
    ```
    shell.stdout.on('data', (data) => {
    msg.reply.text(`stdout:\n ${data}`);
    });

    shell.stderr.on('data', (data) => {
    msg.reply.text(`stderr: ${data}`);
    });
    ```
    marknote
        16
    marknote  
    OP
       2017-10-02 21:52:54 +08:00
    @codehz
    更好玩的是这样的:
    我先输入 ping 8.8.8.8
    然后这个 bot 就不断的把 ping 的结果给我发消息,不终止。
    然后我输入 ps,因为是异步的,这条也会执行,所以可以看到 ps 执行的结果,中间包含 ping 8.8.8.8 的进程信息
    然后输入 kill -9 {进程 ID} 终止 ping 进程
    不断啰嗦的机器人才消停下来
    codehz
        17
    codehz  
       2017-10-02 22:08:39 +08:00
    @marknote #16 所以为啥不不断的修改同一个消息(直到太长)
    hobbyliu
        18
    hobbyliu  
       2017-10-08 19:08:07 +08:00 via Android
    求教录屏制作 git,用的啥软件?
    marknote
        19
    marknote  
    OP
       2017-10-08 22:52:00 +08:00
    @hobbyliu 用的 QuickTime Player :)
    具体做法参考 @quietjosen 的教程:
    http://www.jianshu.com/p/eca4db2fc341
    我是完全按照 @quietjosen 的方法来的。唯一的不同是 video 转 gif 我用的"GIF Brewery 3"
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2352 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:04 · PVG 00:04 · LAX 08:04 · JFK 11:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.