ntfy+push_plus:进程结束收到微信通知

最近在服务器上运行任务,任务完成后希望在手机上收到通知。

实现方法:用ntfy监控进程的运行情况,然后将信息传送到pushplus的推送接口,在微信上便会收到通知。

1.配置pushplus

在pushplus的官网(pushplus(推送加) - 消息推送平台)注册账号获取推送接口的token。注册过程会提示关注微信公众号并激活消息推送功能,按说明操作。在网站的调用方式栏注明HTTP GET方式的请求地址是

http://www.pushplus.plus/send?token=XXX&title=XXX&content=XXX&template=html

其中XXX就是在ntfy中要替换的信息了,这里先保留。至此配置好pushplus。

2.配置ntfy

ntfy项目在Github上的地址dschep/ntfy: ️ A utility for sending notifications, on demand and when commands finish. (github.com)icon-default.png?t=M276https://github.com/dschep/ntfy

这里按照说明的方式配置,此处以普通用户安装而非管理员。

1.安装

pip3 install --user ntfy

2.配置后端

ntfy本身支持诸如Pushbullet、Simplepush等方式,但不支持pushplus,在它的后端文件夹下手动添加pushplus的接口,按如下方式

[coco@node1 ~]$ touch ~/.local/lib/python3.6/site-packages/ntfy/backends/push_plus.py
[coco@node1 ~]$ cat ~/.local/lib/python3.6/site-packages/ntfy/backends/push_plus.py
import requests

def notify(title, message, user_token, **kwargs):
    """
    kwargs contains retcode if using ntfy done or ntfy shell-integration
    and all options in your backend's section of the config
    """
    requests.get("http://www.pushplus.plus/send?token=%s&title=%s&content=%s&template=html" % (user_token, title, message))

把请求地址中的XXX更换为格式化语句。

3.配置token

将pushplus的token写入配置文件

[coco@node1 ~]$ touch ~/.config/ntfy/ntfy.yml
[coco@node1 ~]$ cat ~/.config/ntfy/ntfy.yml
---
backends:
    - push_plus
push_plus:
    user_token: XXXXXXXXXXXXXXXXXXXX

在user_token处填写你的token

4.测试

在终端输入

[coco@node1 ~]$ ntfy send "test"

手机上收到提示。

ntfy+push_plus:进程结束收到微信通知_第1张图片

3.设置提醒进程

ntfy提供进程完成提醒功能,因此在获取到进程的PID后将其交给ntfy即可在进程结束时收到通知。

以gedit为例,运行完gedit后微信收到提示。

[coco@node1 ~]$ gedit &
[coco@node1 ~]$ ps -ux | grep gedit
user1    28877  3.0  0.0 652028 36356 pts/4    Sl+  21:21   0:00 gedit
user1    28949  0.0  0.0  41528  2048 pts/5    S+   21:22   0:00 grep --color=auto gedit
[coco@node1 ~]$ ntfy done --pid 28877 &

ntfy+push_plus:进程结束收到微信通知_第2张图片

 

你可能感兴趣的:(linux,python)