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

  • 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

  • ¿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

  • Cómo configurar auto escalado asociado al balanceador de carga de Amazon Web Services

    photo-1453686062273-6257b9fde1ce

    Como hemos visto en anteriores posts, cuando una aplicación crece debemos hacer que el rendimiento sea aceptable, tolerar errores y que no nos salga muy caro. También, hace unos días vimos cómo configurar el balanceo de carga de nuestros servicios en Amazon Web Services.
    Amazon, dentro de sus servicios, nos proporciona una forma fácil y amigable de ahorrar costes, al mismo tiempo que mantenemos nuestros servicios online y con el mejor rendimiento posible.… Leer artículo completo

  • Cómo empotrar datos dentro de un ejecutable hecho en C

    photo-1453179592584-e2587867cfff

    En nuestras andanzas como programadores, seguro que nos hemos encontrado alguna vez en esta situación. Tenemos un programa que vamos a distribuir, pero que tiene ciertos archivos asociados (imágenes, texto, scripts, etc) que deben ir junto con el programa.
    En un primer momento podemos distribuir los archivos junto con el programa, y es una buena solución hasta que a alguien le da por cambiar esos archivos y consiguen que nuestro programa haga cosas diferentes a aquellas para las que ha sido pensado originalmente.… 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

  • Cómo convertir una cantidad de segundos a horas, minutos y segundos en Bash

    photo-1415604934674-561df9abf539

    El título del post lo dice claro. Imaginemos que tenemos un número grande, por ejemplo 58492, y que ese número son los segundos que ha tardado una tarea en realizarse, o el tiempo que ha pasado desde un evento determinado, pero a nosotros como humanos, este número no nos dice nada, lo entenderíamos mejor si lo expresamos como 16:14:52 como en todo, tenemos varias formas de hacerlo y voy a proponer dos.… Leer artículo completo

  • Cómo localizar ese script en PHP que no para de enviar spam…

    photo-1424296308064-1eead03d1ad9

    Si administras un servidor en el que hay varias webs alojadas, tal vez te hayas encontrado alguna vez con envíos de correos indiscriminados en el servidor. O tal vez, tu proveedor de hosting te haya avisado de actividad maliciosa o ilegal por tu parte. Muchas veces se trata de un script malicioso que se ha instalado en el servidor que utiliza la función mail() de PHP, que a su vez llama al programa sendmail del sistema para el envío masivo de correos electrónicos.… Leer artículo completo

  • Instalar múltiples versiones de PHP y extensiones con phpfarm en Ubuntu/Mint/Debian…

    photo-1441749074938-1c6782303919
    Si llevas varios años trabajando con este lenguaje de programación. Tal vez se te ha presentado un pequeño problema: tienes varios desarrollos a lo largo del tiempo y tienes código en una versión de PHP antigua que no es compatible con versiones nuevas. Y, por otro lado, mientras mantienes una versión de producción de otro proyecto (para PHP 5.5 o PHP 5.6), quieres empezar a hacer pruebas para ver cómo se comporta con PHP7, y todo ello sin morir en el intento.… Leer artículo completo

  • Cómo extraer duración, fotogramas, bitrate y fps de un vídeo para nuestros scripts

    1200px-Film_strip

    Seguramente en nuestros scripts, si tratamos con archivos de vídeo, nos interese conocer información sobre el mismo. Tal vez podamos extraer más información de un archivo de vídeo con un software especializado como VLC; pero para hacer unos cálculos rápidos o una conversión de formato nos va a venir muy bien.

    Programas como avconv o ffmpeg son capaces de extraer información básica del vídeo. Es más, programas como identify (de imagemagick) entre otros, en realidad llaman por detrás a uno de los dos primeros para realizar la identificación del archivo.… Leer artículo completo