GNU/Linux >> Linux Esercitazione >  >> Linux

Invia notifiche desktop e promemoria dal terminale Linux

A volte è utile ottenere un feedback visivo da uno script. Ad esempio, quando uno script o un processo cron viene completato, una build di lunga durata non riesce o si verifica un problema urgente durante l'esecuzione dello script. Le applicazioni desktop possono farlo con le notifiche popup, ma può essere fatto anche da uno script! Puoi utilizzare i comandi di script per inviarti notifiche e promemoria sul desktop.

Il codice seguente è stato scritto e testato su Linux. Può essere fatto anche su macOS con un po' di sforzo. Vedi l'ultima sezione per alcuni suggerimenti e suggerimenti.

Invio di notifiche dal terminale Linux

Per inviare notifiche dal terminale Linux, usa notify-send comando. Spesso è già installato come parte del tuo desktop, ma puoi eseguire which  notify-send per confermare. Se non è ancora installato, installalo con il tuo gestore di pacchetti preferito.

Su Fedora e distribuzioni simili, digita:

$ sudo dnf install libnotify

Nelle distribuzioni basate su Debian, digita:

$ sudo apt install notify-send

Alcuni esempi di semplici notifiche:

$ notify-send "Dinner ready!"
$ notify-send "Tip of the Day" "How about a nap?"

Puoi personalizzare la notifica con opzioni come il livello di urgenza, l'icona personalizzata e così via. Scopri di più con man notify-send . Puoi utilizzare un piccolo set di tag HTML nel corpo della notifica per dare un tocco di classe ai tuoi messaggi. Inoltre, gli URL vengono visualizzati come selezionabili. Ad esempio:

$ notify-send -u critical \
  "Build failed!" \
  "There were <b>123</b> errors. Click here to see the results: http://buildserver/latest"

Le notifiche inviate vengono raccolte dall'ambiente desktop e visualizzate come qualsiasi altra notifica. Avranno lo stesso aspetto, sensazione e comportamento coerenti.

Combina notifica-invio con a

Cron è comunemente usato per programmare i comandi a intervalli regolari. Il at comando pianifica l'esecuzione singola di un comando a un'ora specificata. Se lo esegui in questo modo, si avvia in modalità interattiva, dove puoi inserire comandi da eseguire in un determinato momento:

$ at 12:00

Questo non è utile per gli script. Fortunatamente, at accetta parametri dallo standard input in modo che possiamo usarlo in questo modo:

$ echo "npm run build" | at now + 1 minute
$ echo "backup-db" | at 13:00

Ci sono molti modi per specificare l'ora. Dall'ora assoluta, ad esempio 10:00 attraverso il tempo relativo, come now + 2 hours , in orari speciali come noon o midnight . Possiamo combinarlo con notify-send per mostrarci dei promemoria in un momento futuro. Ad esempio:

$ echo "notify-send 'Stop it and go home now?' 'Enough work for today.' -u critical" | at now

Il comando di promemoria

Ora crea un comando Bash personalizzato per inviarti promemoria. Che ne dici di qualcosa di semplice e a misura d'uomo come:

$ remind "I'm still here" now
$ remind "Time to wake up!" in 5 minutes
$ remind "Dinner" in 1 hour
$ remind "Take a break" at noon
$ remind "It's Friday pints time!" at 17:00

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Questo è meglio di Alexa! Come ottenere questa bontà?

Vedi il codice qui sotto. Definisce una funzione di shell chiamata remind , che supporta la sintassi precedente. Il lavoro vero e proprio viene svolto nelle ultime due righe. Il resto è responsabile dell'assistenza, della convalida dei parametri, ecc., che corrisponde all'incirca alla proporzione di codice utile rispetto al rumore bianco necessario in qualsiasi applicazione di grandi dimensioni.

Salva il codice da qualche parte, ad esempio, in ~/bin/remind e procurati la funzione nel tuo .bashrc profilo in modo che venga caricato quando accedi:

$ source ~/bin/remind

Ricarica il terminale, quindi digita ricorda per vedere la sintassi. Divertiti!

#!/usr/bin/env bash
function remind () {
  local COUNT="$#"
  local COMMAND="$1"
  local MESSAGE="$1"
  local OP="$2"
  shift 2
  local WHEN="$@"
  # Display help if no parameters or help command
  if [[ $COUNT -eq 0 || "$COMMAND" == "help" || "$COMMAND" == "--help" || "$COMMAND" == "-h" ]]; then
    echo "COMMAND"
    echo "    remind <message> <time>"
    echo "    remind <command>"
    echo
    echo "DESCRIPTION"
    echo "    Displays notification at specified time"
    echo
    echo "EXAMPLES"
    echo '    remind "Hi there" now'
    echo '    remind "Time to wake up" in 5 minutes'
    echo '    remind "Dinner" in 1 hour'
    echo '    remind "Take a break" at noon'
    echo '    remind "Are you ready?" at 13:00'
    echo '    remind list'
    echo '    remind clear'
    echo '    remind help'
    echo
    return
  fi
  # Check presence of AT command
  if ! which at >/dev/null; then
    echo "remind: AT utility is required but not installed on your system. Install it with your package manager of choice, for example 'sudo apt install at'."
    return
  fi
  # Run commands: list, clear
  if [[ $COUNT -eq 1 ]]; then
    if [[ "$COMMAND" == "list" ]]; then
      at -l
    elif [[ "$COMMAND" == "clear" ]]; then
      at -r $(atq | cut -f1)
    else
      echo "remind: unknown command $COMMAND. Type 'remind' without any parameters to see syntax."
    fi
    return
  fi
  # Determine time of notification
  if [[ "$OP" == "in" ]]; then
    local TIME="now + $WHEN"
  elif [[ "$OP" == "at" ]]; then
    local TIME="$WHEN"
  elif [[ "$OP" == "now" ]]; then
    local TIME="now"
  else
    echo "remind: invalid time operator $OP"
    return
  fi
  # Schedule the notification
  echo "notify-send '$MESSAGE' 'Reminder' -u critical" | at $TIME 2>/dev/null
  echo "Notification scheduled at $TIME"
}

Notifiche facili

Con questi pochi semplici comandi open source, puoi integrare i tuoi script, applicazioni e attività con il tuo desktop. Provalo!

Questo articolo è stato adattato con il permesso dell'autore dall'articolo originale, che si trova qui.


Linux
  1. Invia e-mail dal terminale linux o dallo script usando il comando mail

  2. OBS Studio:registrazione e streaming live di video da desktop Linux

  3. Come utilizzare SSMTP per inviare un'e-mail dal terminale Linux

  4. Come inviare un'e-mail con allegato e corpo da Linux

  5. come accedere a mysql e interrogare il database dal terminale linux

Personalizzazione del mio terminale Linux con tmux e Git

Come inviare un messaggio agli utenti registrati nel terminale Linux

11 motivi per migrare dal desktop di Windows al desktop di Linux

Le 10 migliori distribuzioni Linux per laptop e desktop

4 comandi per spegnere Linux dal terminale

Mutt, Mail e Telnet – Invia e-mail dalla riga di comando o dal terminale di Linux