(3) sed valentín

Corazón

Hoy ha sido esa fiesta que consiste en demostrar tu amor abriendo la billetera. He aprovechado, y le he comprado a kimito unos cuchillos de cocina que nos hacían falta… ¡Soy todo un romántico!

Aparte de comprar el regalo, me he dedicado a limpiar el servidor donde tengo alojado mi blog y otras cosillas. En parte lo necesitaba para comenzar con un proyecto nuevo, y en parte forzado por @eckelon, que me ha pedido asilo cibernético.

Y es que los graciosos de 1and1 le borraron un servidor por falta de pago… aunque sí que había pagado. Así, de golpe, ni desactivar por si acaso, ni nada. Rollo Flickr pero a lo bestia. Así que estoy haciendo un poco de hueco para que pronto pueda volver al mundo bloguero.

Una de las cosas que llevaba tiempo queriendo hacer ha sido actualizar mi script de actualización de las DNS. Veréis, uso Zentyal para gestionar las DNS de mi dominio (y estoy bastante contento), peeeeero, tiene una pequeña limitación, y es que no acepta registros de tipo CNAME.

Así que este tipo de registros, los tengo que cambiar a mano en los archivos de configuración de bind. No es mucho problema, ya que con una línea se pueden añadir:

echo "foobar              CNAME   foobar.foo.com." >> /etc/bind/db.example.org

El problema estaba en que luego, tenía que editar a mano la línea del número de serie para que los servidores del mundo supieran que había cambiado mis dns. La línea es así:

                        2011021417      ;serial number

Hoy he tenido tiempo para poder automatizarlo, usando grep y sed. Ha quedado algo así (se aceptan mejoras :P) :


sernum=`cat $file_name | grep -o '[0-9]\{10\}\w*.;serial number' | grep -o '[0-9]\{10\}'`
sernum=$(($sernum+1))
cat $file_name | sed "/;serial number/s/\([0-9]\)\{10\}/$sernum/" > /tmp.db
cat /tmp.db > $file_name

Publicado por

GoLo

Bored of Universisty, I began to learn by my self trying to improve my skills. Then I met programming, Java and Linux. When I have some time, I work on my personal projects.