Ntfy - 长时间运行命令完成时获取桌面或电话警报

在本文中,我们将介绍如何在Linux中长时间运行命令时,如何安装,配置和使用ntfy获取桌面或电话通知。

Ntfy是一个简单而可维护的跨平台Python实用程序,可让您自动根据需要或长时间运行的命令完成桌面通知。 一旦特定命令完成,它也可以将推送通知发送到您的手机。

它支持与流行的Linux shell (如bashzsh)的 shell集成; 默认情况下, ntfy将只发送持续时间超过10秒的通知,以及终端是否聚焦。 它还提供了进程,emjoi,XMPP,电报,Instapush和Slack通知支持功能。

查看以下视频,演示一些ntfy功能:

在本文中,我们将向您展示如何在主流Linux发行版中安装,配置和使用ntfy,以便在长时间运行的命令完成时获取桌面或电话通知。

第1步:如何在Linux中安装Ntfy

Ntfy包可以使用Python Pip安装如下。

$ sudo pip install ntfy

一旦ntfy安装,它可以使用位于~/.ntfy.yml .ntfy.yml中的YAML文件或在Linux上的标准平台特定位置~/config/ntfy/ntfy.yml进行配置。

它通过dbus运行,并且在大多数(如果不是全部)流行的Linux桌面环境(如Gnome,KDE,XFCE和libnotify)上工作。 在使用它之前,请确保已安装所需的依赖项,如图所示。

$ sudo apt-get install libdbus-glib-1-dev libdbus-1-dev [On Debian/Ubuntu]
$ sudo yum install dbus-1-glib-devel libdbus-1-devel    [On Fedora/CentOS]
$ pip install --user dbus-python

第2步:将Ntfy与Linux Shell集成

ntfy在bash和zsh中长时间运行命令后,提供自发发送通知的支持。 在bash中,它使用rcaloras / bash-preexec来再现zsh的preexec和precmd功能。

您可以在.bashrc.zshrc文件中启用它,如下所示:

eval  "$(ntfy shell-integration)"

在将其与外壳集成后,如果终端被聚焦,nfty将在桌面上发送任何持续时间超过10秒的通知,这是默认设置。

请注意,终端聚焦适用于X11和Terminal.app。 您可以通过--longer-than--foreground-too标志进行配置。

忽略不必要的通知

可以想象的是,您可以在运行交互式程序时消除不必要的通知,可以使用AUTO_NTFY_DONE_IGNORE env变量进行配置。

例如,使用下面的export命令,您将阻止命令“ vim screen meld ”生成通知:

$ export AUTO_NTFY_DONE_IGNORE="vim screen meld"

第3步:如何在Linux中使用Nfty

安装并配置ntfy后,您可以使用以下示例进行测试:

$ ntfy send "This is HowToing, we’re testing ntfy"
Ntfy发送通知

Ntfy发送通知

下面的示例显示了如何运行命令并在通知完成后发送通知:

$ ntfy done sleep 5
Ntfy自动发送通知

Ntfy自动发送通知

要使用自定义通知标题,请按如下所示设置-t标志。

$ ntfy -t 'HowToing' send "Using custom notification title"
Ntfy自定义通知标题

Ntfy自定义通知标题

下面的示例将显示使用的特定代码的表情符号。

$ ntfy send ":wink: Using emoji extra! :joy:" 
Ntfy在通知中使用表情符号

Ntfy在通知中使用表情符号

一旦具有指定ID的进程完成,请将通知发送到桌面,请使用以下示例:

$ ntfy done --pid 2099

您可以使用通知指示器查看所有通知,运行以下命令来安装最近的通知指示器。

$ sudo add-apt-repository ppa:jconti/recent-notifications
$ sudo apt update && sudo apt install indicator-notifications

安装完成后,从Unity Dash启动指示灯,运行几个ntfy命令,然后单击面板上的图标查看所有通知。

Ntfy通知

Ntfy通知

要查看帮助消息,请运行:

$ ntfy -h

第4步:安装其他Ntfy功能

您可以安装其他功能,但这需要额外的依赖关系:

ntfy done -p $ PID - 需要安装为ntfy [pid]

$ pip install ntfy[pid]

emjoi支持 - 需要安装为ntfy [emoji]

$ pip install ntfy[emoji]

XMPP支持 - 需要安装为ntfy [xmpp]

$ pip install ntfy[xmpp]

电报支持 - 需要安装为ntfy [电报]

$ pip install ntfy[telegram]

Instapush支持 - 需要安装为ntfy [instapush]

$ pip install ntfy[instapush]

松弛支持 - 需要安装为ntfy [slack]

$ pip install ntfy[slack]

并使用单个命令安装多个额外的功能,用逗号分隔它们:

$ pip install ntfy[pid,emjoi,xmpp, telegram]

有关详尽的使用指南,请查看: http : //ntfy.readthedocs.io/en/latest/

就这样! 在本文中,我们向您展示了如何在主流Linux发行版中设置和使用ntfy。 使用下面的反馈表单分享您关于本文的想法,或与我们分享有关任何类似的Linux实用程序的信息。