Publi

  • 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 Bash: Incluir archivos en nuestro script sin miedo a que nos cambien el directorio de ejecución

    Incluir archivos en Bash sin complicaciones

    Es una buena práctica en cualquier lenguaje de programación, siempre que sea posible, el tener el código dividido en varios archivos. Esas divisiones harán que nuestro código esté mejor organizado en bloques o compartimentos diferenciados. Y, por supuesto, en nuestros shell scripts no vamos a ser menos.

    De hecho, es muy común tener varios shell scripts en un directorio y todos ellos compartirán un código común. Y, por supuesto, está muy feo copiar y pegar ese código común en todos los archivos.… Leer artículo completo

  • Knock, knock, knockin’ on server’s ports – Port knocking con ejemplos


    ¡Tenía muchas ganas de escribir este post! De hecho, hay muchas personas a las que les he hablado de la técnica port knocking y me he tenido que poner a buscar un ejemplo que me convenciera por Internet. ¡Ya no tengo excusa! Y, como siempre, intentaré incluir varios ejemplos para copiar y pegar sin miedo explicados para no perder detalle.

    ¿Qué es el port knocking?

    Imaginad que en mi servidor tengo activo un servicio privado, al que no quiero que nadie acceda, sólo yo.… Leer artículo completo

  • Píldora #Bash: Conocer el tiempo que lleva un proceso abierto en Linux

    Bash tiempo proceso
    ¡Una nueva sección! Después de tanto tiempo y tantas secciones inacabadas. Algo que tenía ganas de hacer, es crear posts con esa serie de recetas, scripts, oneliners, o píldoras que se me van ocurriendo mientras trabajo en consola. Suelen ser cosas pequeñas y deberían caber en un tweet junto con una pequeña descripción. De todas formas a mí me gusta explicar un poco más las cosas para que quede bien claro.… Leer artículo completo

  • Un monitor VGA que a veces no quiere funcionar enchufado a un puerto HDMI… con script chapuza

    Todo me sucedió hace algo menos de un año cuando compré un nuevo portátil de la sexta generación de Intel. Estos portátiles ya no traen puerto VGA. Sencillamente los Skylake de Intel no los soportan y no hay mucho que podamos hacer. Y, si nuestro portátil trae ese puerto, o bien la placa base tiene un adaptador integrado (aunque a estas alturas no sé si habrá algún fabricante que meta un puerto así en un portátil de última generación), o no es un Skylake (de ahí en adelante.… Leer artículo completo

  • ¿Cómo obtener el tamaño de las tablas en MySQL? Y alguna idea para nuestros servidores

    Hoy en día tenemos multitud de aplicaciones web instaladas en nuestros servidores. Algunas serán para gestionar nuestros servicios de forma más cómoda, también puede que tengamos varios WordPress instalados, Drupal, una tienda online, CRM, o algunas más específicas. El problema aquí es que como todo en esta vida digital, tiende a ocupar el máximo espacio posible. El caso es que a veces, es muy útil contar con un resumen del tamaño de todas las tablas de nuestro servidor.… Leer artículo completo

  • Comprueba si los usuarios de tu sistema están seguros y su e-mail no figura en filtraciones

    photo-1474204075013-fafcfee9bfd7

    A raíz del post de la semana pasada (Tus datos en Internet, ¿están realmente seguros?) surge esta idea. Nosotros como administradores de un sistema al que se conectan varios usuarios tenemos que cuidar de ellos. Y puede que nuestros usuarios no utilicen siempre las mejores contraseñas, no siempre utilicen conexiones seguras para acceder a ciertos servicios, que descarguen e instalen programas de dudosa reputación… y todo eso puede llevarnos a que sus contraseñas se vean expuestas.… Leer artículo completo

  • Cómo saber si existe una función en Bash, saber qué estamos ejecutando y más

    photo-1457317680121-ef12e98979e8

    En nuestra historia como programadores, hacemos infinidad de llamadas a funciones propias, de terceros, de biblioteca, a otros programas a un alias, etc Y si queremos que nuestros scripts sean lo más robustos posible, debemos tener claro antes de la ejecución que aquello que llamamos se puede ejecutar o dar opciones si algún comando o función no existe.

    Por ejemplo, nuestro script necesita hacer una llamada a wget de este tipo:

    wget -O salida http://totaki.com

    Pero queremos hacer que sea compatible con otros sistemas, por ejemplo, con cURL, y no podemos cambiar uno por otro, pues con curl sería con o minúscula:

    curl -o salida http://totaki.com

    Nuestro script podrá ser:

    1
    2
    3
    4
    5
    6
    7
    8
    if [ -n "$(which wget)" ]; then
        wget -O salida http://totaki.com
    elif [ -n "$(which curl)" ]; then
        curl -o salida http://totaki.com
    else
        echo "No puedo descargar el fichero"
        exit 1
    fi

    De modo que probamos la existencia de diferentes programas y utilizamos el que tengamos a disposición.… Leer artículo completo