domingo, 9 de octubre de 2011

Como integrar NotifyOSD en tus scripts Bash

La librería libnotify (Notify OSD) constituye una excelente forma en la que el sistema nos mantiene informados de lo que acontece sin interrumpir lo que estamos haciendo. Distintas aplicaciones lo utilizan (Pidgin, Banshee, RadioTray, VLC, etc.), si lo deseamos así, para informarnos de sus diferentes estados y acontecimientos que nos puedan interesar.

Lo que es todavía mejor es que nosotros mismos podemos utilizarlo para nuestras aplicaciones, scripts, etc., e informar por las notificaciones cualquier cosa que deseemos.

Solo un ejemplo en bash para ilustrar el uso básico de las notificaciones con el comando notify-send. De ahí e adelante usen su imaginación.

$ touch notifyosd.sh
$ nano notifyosd.sh

#!/bin/bash

echo ¿Cual es tu nombre?
read nombre
echo ¿Cual es tu apellido?
read apellido

notify-send "Hola $nombre $apellido" "Has ejecutado este script hoy `date +%A\ %d\ 'de'\ %B\ 'del'\ %Y`" -i gnome-terminal

#END

Como el Umask por defecto al crear ficheros no le da permisos de ejecución, podemos ejecutar el script con el comando source.

$ source notifyosd.sh
¿Cual es tu nombre?
claudio
¿Cual es tu apellido?
concepcion

Luego de entrar las variables nombre y apellido, nos saldrá esta notificación, por supuesto si tenemos instalado notify-osd que viene por defecto en muchas distribuciones.


Puedes ver más opciones para las notificaciones con el comando: man notify-send.

Como un extra les dejo el script que vimos hace meses atrás que nos actualiza los paquetes del sistema automáticamente al ponerlo como tarea en crontab.


#!/bin/bash

# Date: 03.10.2011

# Author: Claudio Concepcion

# Purpose: Update the system packages, remove unnecessary packages 
# and clean APT cache, and logs to /var/log/auto_update.log

(sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo apt-get clean) 2>&1 >> /var/log/auto_update.log
notify-send "Auto Update Manager" "System updated successfully on `date +%F` at `date +%r`" -i update-manager

#END

El mismo arroja esta notificación.



Eso es todo. Espero les sea de gran utilidad!


ACTUALIZACIÓN (15.10.2011): Para que notify-send trabaje adecuadamente como cron job, es decir, podamos ver la notificación en la parte superior derecha de la pantalla; es necesario agregar DISPLAY=:0.0 al principio del comando notify-send. Entonces, como ejemplo, quedará algo como esto:


DISPLAY=:0.0 notify-send "Mensaje" "Hola Mundo" -i gnome-terminal

No hay comentarios:

Publicar un comentario