Publi

  • Cómo actualizar /etc/hosts con todos los contenedores docker que hay en ejecución

    Si tenemos varios contenedores docker arrancados en nuestro ordenador. Muchas veces, nos interesará conectar con servicios corriendo dentro de cada uno de ellos. Algunos estarán lanzados simplemente con docker, otros con docker-compose, cada uno trabajando en un sistema distinto, y necesitamos una forma más o menos sencilla de acceder a cada uno de ellos.

    Con un pequeño script podemos recorrer todos los contenedores, pedir la dirección IP de cada uno de ellos y añadirlas al nuestro archivo /etc/hosts de forma que este archivo se actualice automáticamente cada vez que lanzamos el comando.… Leer artículo completo

  • Píldora: Utilizar arrays con nombre dinámico en Bash

    Arrays con nombre dinámico en Bash

    Una de las grandes ventajas de los lenguajes interpretados es que podemos almacenar en una variable el nombre de otra variable y trabajar con su valor. ¿Punteros? Bueno, al final es parecido a la utilización de punteros en C, aunque aquí podemos hacer referencia por el mismo nombre de la variable incluso, previo filtrado y con mucho cuidado, preguntarle al usuario el de la variable para trabajar con ella.

    Esto nos puede dar mucha flexibilidad en nuestro código.… Leer artículo completo

  • Ejecutando tareas desde consola simultáneamente con GNU Parallel


    Los ordenadores cada día son más potentes. Y una de las formas de poder ejecutar tareas de forma más rápida, es simultanearlas. Por un lado, es lógico que si una tarea está esperando un dato (ese dato puede venir del disco, del usuario por medio del teclado o el ratón, o descargándoselo de Internet), es normal que el ordenador decida ejecutar otras cosas para no perder el tiempo. Y de hecho se ha aprovechado esto para tener varios programas en ejecución, constantemente dando y quitando el acceso al procesador.… Leer artículo completo

  • Implementación de filtros de contenido “después de la cola” en Postfix [Ejemplos en Bash y Python]

    Filros de contenido en Postfix
    Como hemos visto en anteriores artículos, Postfix nos da una gran flexibilidad a la hora de aplicar reglar y filtros a los mensajes que van llegando. Como ejemplo tenemos la implementación de Milters. Estos filtros se ejecutan antes de introducir los mensajes en la cola de entrega por lo que, a veces, puede no ser lo que buscamos. Cuando filtramos un correo con milters, el emisor del mensaje va a saber si se entrega o no.… Leer artículo completo

  • Script para realizar capturas de pantalla rápidas con las opciones que necesito

    Tanto en mi uso personal, para este blog, documentación, etc; como en el trabajo, la realización de capturas de pantalla forma parte de mi día a día. Y con el paso de los años he ido puliendo mi script de captura de pantalla para poder realizar las tareas que necesito de la forma más rápida. Aunque, con el tiempo han ido saliendo programas como Shutter o Flameshot, en ocasiones he tenido problemas con ellas.… Leer artículo completo

  • Cómo permitir solo la ejecución de una instancia de nuestros scripts

    Aunque me gusta que los programas sean flexibles y nos permitan una ejecución libre y sin restricciones. Además, quiero que permitan editar varios archivos a la vez y realizar múltiples conexiones. Hay software o scripts en los que debemos asegurar que sólo se haga una ejecución simultánea ante diferentes condiciones. Por ejemplo, si es un script para realizar copias de seguridad de nuestro sistema, tal vez nos interese que sólo se pueda lanzar una vez, porque sería un problema que se realicen dos copias de seguridad a la vez.… Leer artículo completo

  • Píldora: Cómo controlar la inhibición de la gestión de energía en GNU/Linux

    Los escritorios modernos en GNU/Linux suelen estar divididos en muchos módulos. Los grandes como Gnome o KDE suelen tener decenas de pequeños módulos independientes que hablan los unos con los otros de manera que la orquesta de todos ellos nos proporcione la mejor experiencia de usuario.

    Además, si hablamos de GNU/Linux, donde, desde siempre, ha habido una fragmentación más que notable en lo referente al escritorio. Al tener libertad para crear los entornos, miles de desarrolladores ponen su ingenio, su corazón y parte de su vida en los diseños de los sistemas de escritorio que utilizamos a diario.… Leer artículo completo

  • Leer ficheros de configuración INI desde nuestros scripts en BASH

    Archivos de configuración en BASH
    Una de las tareas que debemos hacer como programadores es la de facilitar al usuario la configuración de nuestros programas. Haciéndolos más flexibles y adaptables a las necesidades de cada individuo.
    Y una forma muy fácil de definir configuración para nuestros programas es en ficheros con formato INI. Este formato se introdujo en los años 90 en versiones de Windows como la 3.1. En aquella época, teníamos en varios archivos con extensión INI la configuración de nuestro sistema Windows y teníamos que modificar los archivos y reiniciar Windows para que los cambios tuvieran efecto.… Leer artículo completo

  • Utilizando la API de MailRelay para enviar correo masivo a nuestra manera.


    A pesar del creciente número de canales de comunicación que tenemos a nuestro alcance, el correo electrónico nunca pasa de moda. Prácticamente todos los usuarios de la red tenemos una o más direcciones de e-mail. Y, seguro que más de uno consulta varias veces al día su correo, o está pendiente de la más mínima notificación para mirarlo. No cabe duda que es una potente herramienta de marketing hoy en día, tanto para mantener informados a nuestros clientes como para captarlos o invitarlos a realizar una compra.… Leer artículo completo

  • Píldora: Comportamiento de atajos de teclado en editline vs readline o bash vs mysql

    Uno de los grandes puntos a favor que tiene el ecosistema libre y comparten muchos programas para GNU/Linux es que comparten bibliotecas, o pueden compartirlas para implementar diversas funcionalidades. Y una de las bibliotecas que utilizamos a diario casi sin darnos cuenta es readline.
    Esta biblioteca implementa utilidades para la introducción de datos por teclado, así como manejo de historial y atajos. Lo que nos proporciona una mejor experiencia de usuario y nos permite manejar programas como bash, ksh, bc, gnuplot, ftp, el cliente de MariaDB o el modo interactivo de Python más fácilmente.… Leer artículo completo