当长时间运行的命令退出Noti时,在您的桌面或电话上获得通知

是否曾经想在长时间运行的进程/命令结束时不仅在台式机上而且在手机上收到通知? Noti可以做到。

不是我 是用于macOS,Linux和Microsoft Windows的命令行工具,用于监视进程/命令并在执行完成后触发台式机或电话上的通知。

支持的通知:

  • 桌面通知(横幅)
  • 演讲
  • BearyChat
  • 关键基地
  • 最重要的
  • 手推式子弹
  • 俯卧撑
  • 安全推入
  • 简单推
  • 松弛
  • 电报
  • 祖利普
  • 特威里奥

所有这些受支持的通知都可在macOS,Linux和Windows上运行。

请注意,如果您只想在Linux上长时间运行的命令完成后收到桌面通知,则可以简单地运行它。 command; notify-send Done (例如 sleep 3; notify-send Done)。

默认情况下,Noti仅显示文本“完成!”。执行长时间运行的任务时。但是,这可以扩展。您可以指定通知标题(默认为实用程序名称)并设置通知消息(默认为“完成!”,从stdin读取)。 -),执行时间显示在通知消息中。

您可以在命令开头使用Noti。例子:

noti sleep 3

并且在命令之后,例如:

sleep 3; noti

您还可以通过获取进程PID,然后在命令启动后使用以下命令来使用Noti:

noti --pwatch PID

或按 Ctrl + z 使用以下命令启动,暂停该过程,然后重新启动该过程:

fg; noti

有关Noti的更多信息,包括如何为各种服务设置Noti通知,Noti环境变量等。 这一页..但是,在测试时,我注意到该页面有些过时了。例如,Slack不再允许您创建旧式测试器令牌。因此,最好同时查看Noti手册页。 从这里,还有noti.yaml男人 从这里..

阅读如何安装和配置Noti,包括完成完整的步骤来配置Noti,以便在长时间运行的命令完成时通过Telegram和Slack通知您的移动设备。

您可能还会喜欢:如何在Linux上每隔X秒重复一次命令

Noti安装和配置

使用上面的按钮链接的Noti安装说明包括多种安装此工具的方法。如果要直接获取二进制文件,请转到该工具。 GitHub发布页面..

在Linux上安装Noti的最简单方法是从发行版页面下载二进制文件,提取档案,然后 noti 从二进制 /usr/local/bin 使用(假设您在主文件夹中提取了Noti二进制存档,并在主目录中打开了一个终端):

sudo install noti*linux-amd64/noti /usr/local/bin

默认情况下,Noti使用桌面通知(横幅)。下面显示了如何配置Noti在移动设备上通过Slack和Telegram完成长时间运行的进程时发送通知。这是因为这就是我正在使用的。如果要与其他服务一起使用,则必须使用以下步骤自行配置(我认为它有些不完整,有时会过时,例如,因为您无法再创建Slack令牌。必须使用。Slack应用) 从这里..

您可能还会喜欢:Bit是具有交互提示的最新Git CLI

将Noti配置为在电报中发送消息以在长时间运行的命令完成执行时通知您

当长时间运行的命令完成执行时,需要电报让Noti发送电报消息。 chatIdtoken..这可以在电报聊天或频道中使用。以下步骤使用电报通道。

1.创建一个电报频道。

您需要做的第一件事是创建一个电报频道。您可以给它提供任何名称和描述。

2.创建一个Telegram机器人并获取HTTP API访问令牌。

那你需要用 僵尸之父 (@Botfather)创建一个机器人并获取HTTP API访问令牌。

为此,请使用@botfather开始聊天并键入: /start 检查可以在聊天中使用的命令。然后输入: /newbot 创建一个新的机器人并按照说明进行操作(您将需要设置新机器人的名称和用户名)。完成后,@ botfather将显示一个令牌以访问HTTP API。复制此令牌,以备日后使用。

3.将在第2步中创建的Telegram机器人添加到频道,并 chatId..

现在我们有了令牌,我们还需要获取chatId。

将在第2步中创建的漫游器添加到新的Telegram频道(转到该频道并从选项中进行选择[Add users 作成したボットを検索します)。

ボットが追加されたら、テレグラムチャネルにメッセージを入力します。 これは重要であり、取得するために必要です chatId

今、あなたは得ることができます chatId 編集する必要がある次のリンクにアクセスしてください。

https://api.telegram.org/botXXX:YYYYY/getUpdates

交換 XXX:YYYYY 手順2で取得したボットのHTTPAPIトークンを使用します。

このリンクには、次のような一連のテキストが表示されます。

chat":{"id":-100999999999}

ここからのIDはあなたです chatId Notiで使用する必要があります。 それ - 番号の先頭にある記号は、 chatId、数字だけでなく、それも使用するようにしてください。

4. Noti構成ファイルを作成し(まだ作成していない場合)、Telegramを追加します。

テレグラムがわかったので chatId およびHTTPAPI token、と呼ばれるNoti構成ファイルを作成します noti.yaml~/.config/noti/

このファイルをテキストエディタで開き、以下を貼り付けます。

telegram:  token: THE_HTTP_API_TOKEN_GOT_UNDER_STEP_2  chatId: 'THE_CHAT_ID_GOT_UNDER_STEP_3'

例(私の本物を含まないように編集 token そして chatId):

telegram:  token: 1598888700:AEEijJJcsABpYR1LdJ4_Llkr1Vq48vxAUSg  chatId: '-10099999999999'

次のコマンドを使用して、長時間実行コマンドの実行が終了したときにTelegramメッセージを送信するNotiをテストします。

sleep 3; noti --telegram

Notiを使用するたびに–telegramコマンドラインパラメータを追加する必要はありませんので、ご安心ください。 エクスポートできます NOTI_DEFAULT トリガーする通知タイプのリストを使用して、たとえばデスクトップバナー通知やテレグラム通知を使用するには、エクスポートする必要があります NOTI_DEFAULT="banner telegram"

追加 export NOTI_DEFAULT="banner telegram" あなたに ~/.profile 変更を永続的にするためのファイル。 明らかに、編集します NOTI_DEFAULT 使用したいものへの通知タイプ。 に変更を加えた後、ログアウトして再ログインします ~/.profile 新しい設定を使用するファイル。

あなたも興味があるかもしれません:findを使用して過去N日または数分間に変更されたファイルを見つける方法

Slackでメッセージを送信して、長時間実行されているコマンドの実行が終了したときに通知するようにNotiを構成します

Notiのドキュメントページには、テストと開発用のOAuthトークンの作成について記載されていますが、これは Slackではサポートされなくなりました。 これの代わりに、Slackアプリを作成する必要があります。

1.Webブラウザを使用してSlackにログインします。

2.Slackアプリを作成します。

に向かいます https://api.slack.com/apps/new 任意の名前を使用して新しいSlackアプリを作成します。

3.着信Webhookをアクティブにします。

Slackアプリを作成すると、新しいアプリの設定ページにリダイレクトされます。 ここに(持っている Basic Information 左側のサイドバーで選択)、展開します Add features and functionality セクションをクリックし、をクリックします Incoming Webhooks。 ここで、横にあるスイッチをオンにします Activate Incoming Webhooks

4.着信Webhookを作成します。

の下部に Incoming Webhooks ページをクリックします Add New Webhook to Workspace、およびチャネルまたは自分自身を選択します(後者は下にあります) Direct Messages)。 ここで通知を受け取ります。 ここでユーザー名を選択しました。

[[Edit]]有关创建Slack应用程序和传入Webhook的说明 Slack API文档..

创建传入的Webhook时,您将被重定向到。 Incoming Webhooks 页。在此页的底部 Webhook URL..复制此URL。

5.创建一个Noti配置文件(如果尚未创建)并添加Slack。

现在我们有了Slack Webhook URL,创建一个具有以下名称的Noti配置文件: noti.yaml~/.config/noti/

在文本编辑器中打开此文件,然后粘贴以下内容:

slack:  appurl: 'https://hooks.slack.com/services/xxx/yyy/zzz'

这里, appurl 输入在步骤4中获得的Slack Webhook URL的值,然后保存文件。

当长时间运行的命令使用以下命令完成执行时,请测试Noti以发送Slack通知:

sleep 3; noti --slack

始终在键入时使用Slack发送通知 noti (因此,您不必输入 noti --slack 您可以随时在Slack中收到通知时导出 NOTI_DEFAULT 必须使用要触发的通知类型列表导出(例如,使用桌面横幅通知或Slack通知时) NOTI_DEFAULT="banner slack"..

添加 export NOTI_DEFAULT="banner slack" 为你 ~/.profile 用于使更改持久化的文件。显然是编辑 NOTI_DEFAULT 您要使用的通知类型。更改后注销并重新登录 ~/.profile 使用新设置的文件。

您可能还喜欢:Bash历史记录:执行每个命令时如何显示时间戳(日期/时间)

Sidebar