V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
blank4me
V2EX  ›  程序员

耗时任务(例如长时间的编译)完成后如何提醒自己任务完成了

  •  
  •   blank4me · 2015-05-26 15:37:25 +08:00 · 4955 次点击
    这是一个创建于 3502 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在要做的项目需要长时间的编译。有没有什么系统可以在编译完成后提醒自己的?
    我现在的环境是一台自己用的机器,一台服务器,服务器里还跑着虚拟机。一般是要服务器上首先编译几分钟,虚拟机里编译个十分钟左右。
    这十几分钟的空余时间我会在自己机器上干些其他的事情,但是每次都要切过去看编译完成没有太麻烦了。
    我大概搜了下,解决方法差不多就是在命令的后面加个发邮件的命令。除了这样的有没有其他什么软件可以推荐下?比如服务器上任务完成以后,我本地会自动用libnotify弹个框什么的?
    32 条回复    2019-08-10 22:00:21 +08:00
    zluyuer
        1
    zluyuer  
       2015-05-26 15:51:44 +08:00
    blank4me
        2
    blank4me  
    OP
       2015-05-26 15:55:40 +08:00
    @zluyuer 目测这是个本地提醒的工具?我是希望服务器上编译完成后,本地可以提醒我。PS: 最好是linux下的...
    gamexg
        3
    gamexg  
       2015-05-26 16:01:26 +08:00
    自己写个吧。

    socket.io 有 python 库,直接用 socket.io 的演示服务器。
    gamecreating
        4
    gamecreating  
       2015-05-26 16:03:07 +08:00
    微信API
    jokester
        5
    jokester  
       2015-05-26 16:09:38 +08:00
    電撃
    tabris17
        6
    tabris17  
       2015-05-26 16:10:31 +08:00
    轮询方式,隔10分钟去看下
    blank4me
        7
    blank4me  
    OP
       2015-05-26 16:25:52 +08:00
    @gamexg 我就是想看看有没有现成的的。毕竟这种需求挺普遍的。要是没有的话我再自己去写个。
    LeoQ
        8
    LeoQ  
       2015-05-26 16:47:16 +08:00 via Android
    && beep
    哈哈,这个解决方案怎么样
    ratazzi
        9
    ratazzi  
       2015-05-26 16:47:31 +08:00
    slack 之类的用 api 发个消息来推送啊,curl 就可以搞定
    blank4me
        10
    blank4me  
    OP
       2015-05-26 17:22:36 +08:00
    @LeoQ 妥妥不行。服务器上执行任务,本地接收提醒。
    blank4me
        11
    blank4me  
    OP
       2015-05-26 17:23:25 +08:00
    @ratazzi 没用过slack。大概猜测下,是slack给你生成了一个url。任务执行完以后访问这个url,slack就会给你发送提醒?
    omph
        12
    omph  
       2015-05-26 20:34:12 +08:00
    用 nc 命令收发通知
    beep 或 notify-send 提醒
    typcn
        13
    typcn  
       2015-05-26 20:41:52 +08:00
    去注册个联通或者移动的邮箱,一旦任务完成就 smtp 这个邮箱,然后就能收到短信提醒了
    omph
        14
    omph  
       2015-05-26 20:45:34 +08:00   ❤️ 3
    服务器:echo 'Done!' | nc x.x.x.x 8000
    你的机器:notify-send $(nc -l 8000)
    zhjits
        15
    zhjits  
       2015-05-26 21:11:52 +08:00   ❤️ 1
    Pushover 或者 Pushbullet,API 用 curl 封装一下写个脚本就好了
    zts1993
        16
    zts1993  
       2015-05-26 23:47:16 +08:00 via Android
    原来写脚本直接调公司邮件服务器发个邮件。
    em70
        17
    em70  
       2015-05-26 23:54:54 +08:00 via Android
    多好的理由给自己买个apple watch啊,哈哈哈
    zluyuer
        18
    zluyuer  
       2015-05-27 08:17:59 +08:00
    @blank4me 好吧,我以为你是开着一个server的terminal来编译,linux下暂时没遇到什么好工具。。
    blank4me
        19
    blank4me  
    OP
       2015-05-27 09:06:35 +08:00
    @omph 效果拔群
    blank4me
        20
    blank4me  
    OP
       2015-05-27 09:11:01 +08:00
    @em70 无力反驳..
    blank4me
        21
    blank4me  
    OP
       2015-05-27 09:15:18 +08:00
    @zhjits 果然有这种成熟的服务啊。实测效果不错
    nirvam
        22
    nirvam  
       2015-05-27 09:21:52 +08:00   ❤️ 3
    昨天看到LZ的帖子,简单试了下 Yo + IFTTT + Yo-Go,效果蛮好。API和lib都现成,几行代码搞定。

    说Yo是social app简直打死我都不信,简单粗暴到没朋友23333

    link: https://www.justyo.co/ https://dev.justyo.co/
    blank4me
        23
    blank4me  
    OP
       2015-05-27 09:33:37 +08:00
    稍微改了下 @omph 的命令。
    本地:nc -l 8000 -k -c "xargs -I % notify-send %"
    远程:echo "done" | nc x.x.x.x 8000

    这样本地可以长期维护一个server,远程可以多次发消息过来
    这里的nc可能不是原版的netcat。netcat的历史发展我也不清楚,反正这里用的实际上是nmap里的ncat。CentOS 7里的nc默认就是ncat。
    blank4me
        24
    blank4me  
    OP
       2015-05-27 09:46:25 +08:00
    @nirvam 你给的链接居然要注册.. 不过我机智地随便输了信息注册了,反正又不要验证。
    http://docs.justyo.co/v1.0/docs 附带一个你没提到的link
    不过这货只能YoYoYoYo的,都不能靠消息区分下是哪里发过来的消息..
    sefemp
        25
    sefemp  
       2015-05-27 10:16:35 +08:00
    我一般去前台调戏一下小妹,回来就build完了
    wdlth
        26
    wdlth  
       2015-05-27 10:18:44 +08:00
    加个命令在后面执行,比如发送邮件、短信之类的。
    不过等你回来看的时候万一是Error……
    sinxccc
        27
    sinxccc  
       2015-05-27 10:20:25 +08:00
    我在用 Boxcar,直接 push 提醒到手机和 ipad 上。
    nirvam
        28
    nirvam  
       2015-05-27 13:02:03 +08:00
    @blank4me 哈哈我也随便填的。

    区分来源应该可以的,一个Yo账号下可以多个子ID。我现在就是BOT1、BOT2、BOT3……

    然后其实也可以不用IFTTT,Yo是可以设置callback link滴……貌似比较烦我就没折腾:P
    zhujinliang
        29
    zhujinliang  
       2015-05-27 15:45:15 +08:00   ❤️ 1
    @nirvam 这个Yo有点意思~
    顺手搞了个shell,保存到/usr/local/bin/yo
    使用的话 make; yo xxx

    #!/bin/sh

    API_KEY=$(cat ~/.yotoken)
    curl --data "api_token=$API_KEY&username=$1" http://api.justyo.co/yo/ >/dev/null 2>&1
    echo "Yo! Sent"

    你可以把API key放在home里,或者写在这个脚本中
    这个脚本还太简陋,没有输入参数的验证,没有usage提示,没有返回结果的判断
    liuxiaoxiaochen
        30
    liuxiaoxiaochen  
       2015-05-27 15:47:18 +08:00
    楼上合理
    ray1919
        31
    ray1919  
       2015-05-27 16:41:30 +08:00
    sendemail
    win7pro
        32
    win7pro  
       2019-08-10 22:00:21 +08:00
    直接用喵提醒吧,基于事件驱动的提醒服务
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1071 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:11 · PVG 03:11 · LAX 11:11 · JFK 14:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.