耗时任务(例如长时间的编译)完成后如何提醒自己任务完成了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
blank4me
V2EX    程序员

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

  •  
  •   blank4me 2015-05-26 15:37:25 +08:00 5513 次点击
    这是一个创建于 3867 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在要做的项目需要长时间的编译。有没有什么系统可以在编译完成后提醒自己的?
    我现在的环境是一台自己用的机器,一台服务器,服务器里还跑着虚拟机。一般是要服务器上首先编译几分钟,虚拟机里编译个十分钟左右。
    这十几分钟的空余时间我会在自己机器上干些其他的事情,但是每次都要切过去看编译完成没有太麻烦了。
    我大概搜了下,解决方法差不多就是在命令的后面加个发邮件的命令。除了这样的有没有其他什么软件可以推荐下?比如服务器上任务完成以后,我本地会自动用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     Solana     1489 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 16:37 PVG 00:37 LAX 08:37 JFK 11:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86