Publi

  • ¿Cómo cerrar un puerto TCP ocupado por una aplicación en GNU/Linux?

    Cuando vamos a establecer una comunicación entre dos máquinas a través de una red TCP/IP, vamos lo que estamos haciendo a diario miles de veces con nuestro ordenador mientras navegamos por Internet, lo hacemos a través de un puerto. Imaginemos que tenemos un sistema de comunicación rudimentario entre 10 amigos, con 5 cables y, cada cable, nos permite hablar con uno de nuestros amigos, pero claro, como sólo tenemos 5 cables, sólo podemos hablar con 5 amigos al mismo tiempo, así que en algún punto del recorrido deberá haber alguien con la capacidad de enchufar y desenchufar esos cables.… Leer artículo completo

  • Y tú, ¿cuándo fue la última vez que hiciste una copia de seguridad de tus servidores?

    seguridad

    En este post me quiero dirigir a todos aquellos que administráis un servidor, una web o un blog. Son los grandes olvidados, las copias de seguridad. Esas que nadie tiene en cuenta, esas que todos ignoran, las que siempre se dejan para luego y las que nunca es un buen día para hacerlas. «Da mucha pereza», «cuando suba estos cambios me pongo»… luego pasa un tiempo y ni te acuerdas hasta que un lluvioso y fatídico día de otoño, de esos que es mejor no levantarse de la cama, te falla la conexión a Internet, tienes 100 cosas que hacer, y parece que estás mangando un resfriado.… 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