
En este artículo voy a ir añadiendo cosas útiles que se pueden utilizar en múltiples circunstancias pero que no requieren la escritura de un artículo largo.
Cambio de Tamaño de Imágenes con Mogrify
Con el comando mogrify, que forma parte de ImageMagick, podemos modificar muchas características de archivos de imagen desde la línea de comandos. Para cambiar el tamaño se utiliza el parámetro -resize. El nuevo tamaño de la imagen tiene el formato anchoxalto. Es posible omitir una de las dos dimensiones. En Bash tenemos la opción de usar "pattern matching" para modificar varios archivos.
# mogrify -resize 1024 image.jpg # mogrify -resize x768 image.jpg # mogrify -resize 1024x768 *.jpg
Utilizando "brace expansion" podemos indicar varias extensiones de archivo. Con shopt se puede desactivar y volver a activar la distinción entre mayúsculas y minúsculas en los nombres de los archivos. Esto puede ser útil si tenemos algunos archivos con la extensión en mayúsculas y otros con la extensión en minúsculas.
# shopt -s nocaseglob # mogrify -resize 1024 *.{jpg,jpeg,png} # shopt -u nocaseglob
Si queremos modificar archivos que se encuentren en subdirectorios podemos usar el comando find para buscar los archivos y ejecutar mogrify con cada uno de ellos. El primer parámetro es el directorio donde empezar la búsqueda. Con el parámetro -regex se le indica la expresión regular que debe cumplir el nombre de los archivos. Si necesitamos que no se distinga entre mayúsculas y minúsculas, en lugar de usar el parámetro -regex debemos usar -iregex.
El parámetro -regextype selecciona el tipo de expresión regular. Por defecto se usa el tipo emacs, en el que es necesario utilizar caracteres de escape. Con otros tipos, como por ejemplo posix-extended, no es necesario y esto hace que sea más fácil escribir la expresión regular.
Para indicar el comando a ejecutar con cada archivo encontrado se usa el parámetro -exec. Los caracteres {} le dicen a find donde incluir la ruta del archivo encontrado. Los caracteres \; marcan donde termina el comando. Con el parámetro -print se muestran las rutas de los archivos encontrados.
# find . -regextype posix-extended -iregex ".*\.(jpg|jpeg|png)$" -print -exec mogrify -resize 1024x768 {} \;
Notificaciones Instantáneas con Pushover
Con servicios como Pushover es posible enviar notificaciones instantáneas al teléfono móvil mediante una petición HTTP. Se puede utilizar cualquier lenguaje de programación. En Bash podemos usar cURL. Es necesario instalar su aplicación en el móvil y registrarnos. Se nos asignará una clave de usuario y debemos crear "tokens" de aplicación. Después del periodo de prueba hay que hacer un pago único.
En cada petición necesitamos indicar la clave de usuario en el parámetro user, el "token" de aplicación en el parámetro token y el mensaje que queramos enviar en el parámetro message. Opcionalmente podemos adjuntar una imagen con el parámetro attachment. Si creamos una función podremos utilizarla para enviar notificaciones desde cualquier "script". Es conveniente guardar en un archivo de configuración la clave, el "token" y la URL a la que se envían las peticiones.
# vi /etc/notifications.conf NOTIFICATIONS_USER="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" NOTIFICATIONS_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" NOTIFICATIONS_SERVER="https://api.pushover.net/1/messages.json"
# vi /usr/local/lib/notifications.sh . /etc/notifications.conf send_notification () { echo $1 if [ "$2" != "" ] then image="@$2" fi curl -s -F user=$NOTIFICATIONS_USER -F token=$NOTIFICATIONS_TOKEN -F message="$1" -F attachment="$image" $NOTIFICATIONS_SERVER > /dev/null }
send_notification "Test Message 1" send_notification "Test Message 2" "/var/tmp/test-image.jpg"
No hay comentarios:
Publicar un comentario