デスクトップだけでなく電話でも、長時間実行されているプロセス/コマンドが終了したときに通知を受け取りたいと思ったことはありませんか? Noti はそれを行うことができます。
note は macOS、Linux、および Microsoft Windows 用のコマンド ライン ツールで、プロセス / コマンドを監視し、実行が終了するとデスクトップまたは電話に通知をトリガーします。
サポートされている通知:
- デスクトップ通知 (バナー)
- スピーチ
- BearyChat
- キーベース
- 重要
- プッシュブレット
- プッシュオーバー
- プッシュセーフ
- 1 回押す
- リラックス
- 電報
- ズーリップ
- Twilio
これらのサポートされている通知はすべて、macOS、Linux、および Windows で機能します。
Linux で実行時間の長いコマンドが終了したときにデスクトップ通知を受け取りたい場合は、command; notify-send Done
を実行するだけでよいことに注意してください。 (例:sleep 3; notify-send Done
)
デフォルトでは、Noti は「Done!」というテキストのみを表示します。長時間実行されるタスクを完了すると、これを延長できます。通知のタイトル (デフォルトはユーティリティの名前) を指定し、通知を指定できます (デフォルトは「Done!」です。-
で stdin から読み取ります)。 ) 通知に実行時間を表示します。
次のように、コマンドの先頭で noti を使用できます。
noti sleep 3
コマンドの後、例:
sleep 3; noti
プロセス PID を取得してから次のコマンドを使用することにより、コマンドが既に開始された後で Noti を使用することもできます:
noti --pwatch PID
または Ctrl + z
を押して プロセスが開始された後、一時的に一時停止してから続行します:
fg; noti
さまざまなサービスを使用した Noti 通知の設定、Noti 環境変数など、Noti の詳細については、このページを参照してください。ただし、テスト中に、このページが少し古くなっていることに気付きました。たとえば、Slack では従来のテスター トークンの作成が許可されなくなりました。したがって、Noti の man ページはこちらから、noti.yaml の man はこちらからご覧いただけます。
Noti をインストールして構成する方法については、長時間実行コマンドが終了したときに Telegram と Slack を介してモバイル デバイスに通知するように Noti を設定する方法に関する完全なガイドを含めて、こちらをお読みください。
これも好きかも:Linux で X 秒ごとにコマンドを繰り返す方法
注意。インストールと構成
上のボタンからリンクされている Noti インストール ガイドには、このツールをインストールするためのいくつかのオプションが含まれています。バイナリを直接取得したい場合は、ツールの GitHub 公開ページにアクセスしてください。
Linux に Noti をインストールする最も簡単な方法は、リリース ページからバイナリをダウンロードし、アーカイブを展開してから noti
をインストールすることです。 バイナリから /usr/local/bin
へ 使用 (ホーム フォルダーで Noti バイナリ アーカイブを解凍し、ホーム ディレクトリでターミナルを開いたと仮定します):
sudo install noti*linux-amd64/noti /usr/local/bin
デフォルトでは、Noti はデスクトップ通知 (バナー) を使用します。以下では、長時間実行されているプロセスがモバイル デバイスで完了したときに、Slack と Telegram を介して通知を送信するように Noti を構成する方法を示します。これは私が使用しているものです。他のサービスで使用したい場合は、手順を使用して自分で構成する必要があります (私の意見では、多少不完全で、場合によっては古くなっています。たとえば、Slack トークンを作成できなくなり、使用する必要があります。 Slack アプリ)はこちらから
これも好きかも:Bit はインタラクティブなプロンプトを備えた最新の Git CLI です
Telegram でメッセージを送信して長いコマンドが実行されたときに通知するように Noti を構成する
長いコマンドが実行されたときに Noti がテレグラム メッセージを送信するには、テレグラムが必要です chatId
と token
.これは、Telegram チャットまたはチャネルのいずれかで機能します。以下の手順では、テレグラム チャネルを使用します。
1.電報チャネルを作成します。
最初に行う必要があるのは、電報チャネルを作成することです。任意の名前と説明を付けることができます。
2. Telegram ボットを作成し、HTTP API アクセス トークンを取得します。
次に、ボットの父 (@botfather) を使用してボットを作成し、HTTP API アクセス トークンを取得する必要があります。
これを行うには、@botfather とチャットを開始し、/start
と入力します。 チャットで使用可能なコマンドなどを確認します。今度は /newbot
を指定してください 新しいボットを作成し、指示に従います (新しいボットの名前とユーザー名を設定する必要があります)。完了すると、@botfather は HTTP API にアクセスするためのトークンを表示します。後で必要になるので、このトークンをコピーしてください。
3.ステップ 2 で作成した Telegram ボットをチャンネルに追加し、chatId
を取得します。 .
これでトークンができましたが、chatId も取得する必要があります。
ステップ 2 で作成したボットを新しい Telegram チャネルに追加します (チャネルに移動し、オプション Add users
から選択します)。 作成したボットを検索します)。
ボットを追加したら、Telegram チャネルにメッセージを入力します。これは chatId
にとって重要かつ必要です .
chatId
できるようになりました 編集する必要がある次のリンクにアクセスしてください:
https://api.telegram.org/botXXX:YYYYY/getUpdates
XXX:YYYYY
に置き換えます ステップ 2 で受け取ったボットの HTTP API トークンを使用します。
このリンクにはいくつかのテキストが表示され、その下に次の内容があります:
chat":{"id":-100999999999}
ここからの ID はあなたの chatId
です Noti で使用する必要があります。その -
数字の先頭の文字は chatId
の一部です 数字だけでなく、これも必ず使用してください。
4. Noti 構成ファイルを作成し (まだ作成していない場合)、Telegram を追加します。
テレグラム chatId
がわかったので、 および HTTP API token
noti.yaml
という名前の Noti 構成ファイルを作成します。 ~/.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'
以下を使用して、長いコマンドが実行されたときに Noti がテレグラム メッセージを送信することをテストします。
sleep 3; noti --telegram
Noti を使用するたびに –telegram コマンド ライン パラメータを追加する必要はありません。 NOTI_DEFAULT
をエクスポートできます トリガーされる通知タイプのリスト。 B. デスクトップ バナー通知とテレグラム通知を使用するには、NOTI_DEFAULT="banner telegram"
をエクスポートする必要があります。 .
export NOTI_DEFAULT="banner telegram"
に追加 あなたの ~/.profile
に 変更を永続化するためのファイル。それを編集してください、もちろん NOTI_DEFAULT
使用したいものに関する通知タイプ。に変更を加えた後、サインアウトして再度サインインします。 ~/.profile
を作成しました 新しい設定を使用するためのファイル。
あなたも興味があるかもしれません:検索を使用して、過去 N 日間または 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
の下にあります) )。ここで通知が届きます。ここでユーザー名を選択しました。
[[編集]] Slack アプリとインバウンド Webhook を作成する手順は、Slack API ドキュメントにも記載されています。
インバウンド Webhook を作成すると、Incoming Webhooks
に送信されます ページ。このページの下部に Webhook URL
が表示されます。 .この URL をコピーしてください。
5. Noti 構成ファイルを作成し (まだ作成していない場合)、Slack を追加します。
Slack Webhook の URL を取得したので、noti.yaml
という名前の noti 構成ファイルを作成します。 ~/.config/noti/
で
このファイルをテキスト エディタで開き、以下を貼り付けます:
slack:
appurl: 'https://hooks.slack.com/services/xxx/yyy/zzz'
ここの appurl
を置き換えます ステップ 4 で取得した Slack Webhook の URL を値として入力し、ファイルを保存します。
以下を使用して、長時間実行コマンドが実行されたときに Noti が Slack 通知を送信するかどうかをテストします。
sleep 3; noti --slack
noti
を入力したときに常に Slack を使用して通知を送信する方法は次のとおりです。 (したがって、noti --slack
と入力する必要はありません Slack で通知を受け取るたびに) NOTI_DEFAULT
をエクスポートできます トリガーされる通知タイプのリスト。たとえば、デスクトップ バナー通知と Slack 通知を使用するには、NOTI_DEFAULT="banner slack"
をエクスポートする必要があります。 .
export NOTI_DEFAULT="banner slack"
に追加 あなたの ~/.profile
に 変更を永続化するためのファイル。それを編集してください、もちろん NOTI_DEFAULT
使用したいものに関する通知タイプ。に変更を加えた後、サインアウトして再度サインインします。 ~/.profile
を作りました 新しい設定を使用するためのファイル。
これも好きかもしれません:Bash 履歴:各コマンドが実行されたときのタイムスタンプ (日付/時刻) を表示する方法は次のとおりです