Hai mai desiderato ricevere una notifica al termine di un processo / comando di lunga durata, non solo sul desktop ma anche sul telefono? Noti può farlo.
Noti è uno strumento da riga di comando per macOS, Linux e Microsoft Windows che monitora un processo / comando e attiva una notifica sul desktop o sul telefono al termine dell’esecuzione.
Notifiche supportate:
- Notifiche desktop (banner)
- Discorso
- BearyChat
- Keybase
- Mattermost
- Pushbullet
- Pushover
- Pushsafer
- Simplepush
- Slack
- Telegramma
- Zulip
- Twilio
Tutte queste notifiche supportate funzionano su macOS, Linux e Windows.
Vale la pena notare che se tutto ciò che desideri è ricevere una notifica sul desktop quando un comando a lunga esecuzione è terminato su Linux, puoi semplicemente eseguire command; notify-send Done
(per esempio sleep 3; notify-send Done
).
Per impostazione predefinita, Noti mostra solo il testo “Fatto!” quando viene eseguita un’attività di lunga durata, ma questa può essere estesa. Puoi specificare il titolo della notifica (l’impostazione predefinita è il nome dell’utilità), impostare il messaggio di notifica (l’impostazione predefinita è “Fatto!”; Leggi da stdin con -
) e mostra il tempo di esecuzione nel messaggio di notifica.
Puoi usare Noti all’inizio di un comando, ad esempio:
noti sleep 3
E dopo un comando, ad esempio:
sleep 3; noti
Puoi anche utilizzare Noti dopo che un comando è già stato avviato, ottenendo il PID del processo, quindi utilizzando il seguente comando:
noti --pwatch PID
Oppure premendo Ctrl + z
dopo che un processo è stato avviato per sospenderlo temporaneamente, quindi riprenderlo con:
fg; noti
Per ulteriori informazioni su Noti, incluso come impostare le notifiche Noti con vari servizi, variabili d’ambiente Noti, ecc. Vedere questa pagina. Durante il test, però, ho notato che questa pagina è un po ‘obsoleta. Ad esempio, Slack non consente più la creazione di token tester legacy. Quindi potresti anche voler controllare la pagina man di Noti da qui, e noti.yaml man da qui.
Continua a leggere per informazioni su come installare e configurare Noti, comprese le istruzioni complete per configurare Noti per notificare sul tuo dispositivo mobile tramite Telegram e Slack quando un comando a lunga esecuzione è terminato.
Potrebbe piacerti anche: Come ripetere un comando ogni X secondi su Linux
Installazione e configurazione di Noti
Le istruzioni di installazione di Noti collegate tramite il pulsante sopra contengono diversi modi per installare questo strumento. Se vuoi prendere il binario direttamente, vai semplicemente alla pagina delle versioni di GitHub dello strumento.
Il modo più semplice per installare Noti su Linux è scaricare il binario dalla pagina delle versioni, estrarre l’archivio, quindi installare il noti
binario a /usr/local/bin
usando (supponendo che tu abbia estratto l’archivio binario di Noti nella tua cartella home e apri il terminale nella tua home directory):
sudo install noti*linux-amd64/noti /usr/local/bin
Per impostazione predefinita, Noti utilizza le notifiche desktop (banner). Di seguito ti mostrerò come configurare Noti per inviare notifiche al termine di un processo di lunga durata, sul tuo dispositivo mobile tramite Slack e Telegram, poiché è quello che uso. Se vuoi usarlo con un altro servizio dovrai configurarlo da solo, usando le istruzioni (anche se un po ‘incomplete secondo me, e obsolete in alcuni casi, ad esempio non puoi più creare token Slack, e devi usare un’app Slack) da qui.
Potrebbe piacerti anche: Bit è una moderna CLI Git con un prompt interattivo
Configura Noti per avvisarti quando un comando di lunga durata è terminato inviando un messaggio su Telegram
Per fare in modo che Noti ti invii messaggi Telegram quando un comando di lunga durata è terminato, avrai bisogno di un Telegram chatId
e token
. Funziona con una chat o un canale di Telegram. Nelle mie istruzioni di seguito utilizzeremo un canale Telegram.
1. Crea un canale Telegram.
La prima cosa che devi fare è creare un canale Telegram. Può avere qualsiasi nome e descrizione desideri.
2. Crea un bot Telegram e ottieni il token di accesso API HTTP.
Successivamente, è necessario utilizzare BotFather (@botfather) per creare un bot e ottenere un token di accesso API HTTP.
Per fare ciò, avvia una chat con @botfather e digita /start
nella chat per vedere i comandi disponibili, ecc. Ora digita /newbot
per creare un nuovo bot e segui le istruzioni (dovrai impostare un nome e un nome utente per il tuo nuovo bot). Quando hai finito, @botfather mostrerà un token per accedere all’API HTTP. Copia questo token perché ne avremo bisogno in seguito.
3. Aggiungi il bot di Telegram creato nel passaggio 2 al tuo canale e ottieni il file chatId
.
Ora abbiamo un token, ma dobbiamo anche ottenere il chatId.
Aggiungi il bot che hai creato nel passaggio 2 al tuo nuovo canale Telegram (vai al canale e dalle opzioni scegli Add users
e cerca il bot che hai creato).
Una volta aggiunto il bot, digita un messaggio nel tuo canale Telegram. Questo è importante e necessario per ottenere il file chatId
.
Ora puoi ottenere il file chatId
visitando il seguente link che dovrai modificare:
https://api.telegram.org/botXXX:YYYYY/getUpdates
Sostituire XXX:YYYYY
con il token API HTTP del tuo bot che hai ottenuto nel passaggio 2.
Questo collegamento mostrerà un po ‘di testo tra cui troverai:
chat":{"id":-100999999999}
L’ID da qui è il tuo chatId
che devi usare con Noti. Quello -
il segno all’inizio del numero fa parte del chatId
, quindi assicurati di usare anche quello e non solo i numeri.
4. Crea il file di configurazione di Noti (se non l’hai già creato) e aggiungi Telegram ad esso.
Ora che conosciamo Telegram chatId
e API HTTP token
, crea il file di configurazione di Noti, chiamato noti.yaml
nel ~/.config/noti/
Apri questo file con un editor di testo e incolla quanto segue:
telegram:
token: THE_HTTP_API_TOKEN_GOT_UNDER_STEP_2
chatId: 'THE_CHAT_ID_GOT_UNDER_STEP_3'
Esempio (modificato per non contenere il mio real token
e chatId
):
telegram:
token: 1598888700:AEEijJJcsABpYR1LdJ4_Llkr1Vq48vxAUSg
chatId: '-10099999999999'
Prova Noti che invia un messaggio di Telegram quando un comando di lunga durata è terminato utilizzando:
sleep 3; noti --telegram
Non preoccuparti, non è necessario aggiungere il parametro della riga di comando –telegram ogni volta che utilizzi Noti. Puoi esportare NOTI_DEFAULT
con un elenco di tipi di notifica da attivare, ad esempio per utilizzare le notifiche del banner sul desktop e le notifiche di Telegram, dovresti esportare NOTI_DEFAULT="banner telegram"
.
Inserisci export NOTI_DEFAULT="banner telegram"
alla tua ~/.profile
file per rendere la modifica permanente. Ovviamente, modifica il file NOTI_DEFAULT
tipi di notifica a ciò che si desidera utilizzare. Esci e accedi nuovamente dopo aver apportato modifiche al tuo ~/.profile
file per utilizzare le nuove impostazioni.
Potrebbe interessarti anche: Come trovare file modificati negli ultimi N giorni o minuti utilizzando find
Configura Noti per avvisarti quando un comando di lunga durata è terminato inviando un messaggio su Slack
La pagina della documentazione di Noti menziona la creazione di un token OAuth per test e sviluppo, ma questo non è più supportato da Slack. Invece di questo, dovremo creare un’app Slack.
1. Accedi a Slack utilizzando un browser web.
2. Crea un’app Slack.
Vai su https://api.slack.com/apps/new e crea una nuova app Slack usando il nome che desideri.
3. Attiva webhook in arrivo.
Dopo aver creato un’app Slack, verrai reindirizzato alla pagina delle impostazioni della tua nuova app. Qui (avendo Basic Information
selezionato nella barra laterale di sinistra), espandere il file Add features and functionality
sezione, quindi fare clic su Incoming Webhooks
. Qui, attiva l’interruttore accanto a Activate Incoming Webhooks
.
4. Creare un webhook in arrivo.
Nella parte inferiore del file Incoming Webhooks
pagina, fare clic su Add New Webhook to Workspace
e seleziona un canale o te stesso (quest’ultimo sotto Direct Messages
). Qui è dove riceverai la notifica. Ho selezionato il mio nome utente qui.
[[Edit]] I passaggi per creare un’app Slack e un webhook in entrata sono spiegati anche nella documentazione dell’API Slack.
Dopo aver creato un webhook in arrivo, verrai reindirizzato al file Incoming Webhooks
pagina. In fondo a questa pagina dovresti vedere il file Webhook URL
. Copia questo URL.
5. Crea il file di configurazione di Noti (se non l’hai già creato) e aggiungi Slack ad esso.
Ora che abbiamo l’URL del webhook Slack, crea il file di configurazione di Noti, chiamato noti.yaml
nel ~/.config/noti/
Apri questo file con un editor di testo e incolla quanto segue:
slack:
appurl: 'https://hooks.slack.com/services/xxx/yyy/zzz'
Qui, sostituisci il file appurl
valore con l’URL del webhook Slack che hai ottenuto nel passaggio 4 e salva il file.
Prova Noti che invia una notifica Slack quando un comando a esecuzione prolungata ha terminato l’esecuzione utilizzando:
sleep 3; noti --slack
Per usare sempre Slack per inviare notifiche durante la digitazione noti
(quindi non devi digitare noti --slack
ogni volta che vuoi essere avvisato su Slack), puoi esportare NOTI_DEFAULT
con un elenco di tipi di notifica da attivare, ad esempio per utilizzare le notifiche del banner sul desktop e le notifiche Slack, dovresti esportare NOTI_DEFAULT="banner slack"
.
Inserisci export NOTI_DEFAULT="banner slack"
alla tua ~/.profile
file per rendere la modifica permanente. Ovviamente, modifica il file NOTI_DEFAULT
tipi di notifica a ciò che si desidera utilizzare. Esci e accedi nuovamente dopo aver apportato modifiche al tuo ~/.profile
file per utilizzare le nuove impostazioni.
Potrebbe piacerti anche: Cronologia Bash: come mostrare un timestamp (data / ora) quando è stato eseguito ciascun comando