¿Quién no ha usado cat en la consola de linux para algo alguna vez? Que tire la primera piedra!

Este me lo mostró un amigo hace algunos años y lo acabo de recordar por que he tenido que usarlo. Yo ni sabía que existía tal cosa…

El comando es tac, hace exactamente lo inverso a cat. Es decir, si mi archivo.txt contiene dos líneas: linea1 y linea2, hacer cat archivo.txt me devuelve:

~ $ cat archivo.txt
linea1
linea2

Si por otrto lado, uso tac, el resultado:

~ $ tac archivo.txt
linea2
linea1

Muy útil en esos casos en que necesitamos solo la cabecera de un archivo, por ejemplo.

Una de las cosas que hace tan poderoso a linux es la incapacidad de distinguir entre un dispositivo y un archivo. Con la cantidad de memoria de video que están incorporando en la placas de video actuales, ¿Por que no asignar una buena tajada a un archivo (un nodo en este caso) y usarlo como memoria SWAP?

Pequeña gran aclaración al margen: Los drivers binarios de las placas de video no permiten especificar la cantidad de memoria que se quiere usar del total disponible si no que se hacen con el control de la totalidad de memoria. No se puede usar el driver de nvidia o de ati y usar la vez la memoria de video como SWAP, por que estarás pisando memoria de video con datos y viceversa con la consecuente corrupción de datos. El único driver que conozco que permite especificar la cantidad de memoria de video a utilizar es XF86-video-vesa, con lo que se pierde aceleración 3D.

Choose your poison: ¿Direct rendering o memoria SWAP rapidísima?

Continúa leyendo

O de como reemplazar 4 aplicaciones por una sola:

Prefacio:

Le tengo que dedicar al menos una mención de honor a Dnsmasq, este pequeño DNS Forwarder que con tan solo 269Kb (de código fuente en un .tar.gz) me ha cambiado la vida.

Como bien dicen en su página web oficial, «Dnsmasq is a lightweight, caching DNS proxy with integrated DHCP server«. Osea, un pequeñísimo proxy para cachear peticiones DNS que no resuelve por su cuenta -como lo haría BIND, por ejemplo- si no que se interpone entre la red y el verdadero DNS server almacenando los requests en memoria para servirlos rápidamente y ahorrar minúsculas cantidades de ancho de banda por petición.

Ya con eso solo me bastaría y sobraría si no fuera por que además hace de DHCP server!

Con un archivo de configuración tan bien comentado que ni hace falta leer el manual, además de proxy DNS, puede servir de DHCP server compitíendole a los mejores de su rubro sin ningún esfuerzo en lo que a configurabilidad se refiere, y la cosa no acaba ahi…

Además puede servir de PXE server! De nuevo, sin ningún esfuerzo mas que descomentar dos o tres líneas, puede servir peticiones PXE a la red para hacer arrancar thin clients de cualquier tipo…

No contento con todo esto, su desarrolador además le ha incorporado TFTP Server! No solo puede servir a clientes PXE con su configuración inicial, además puede servir por TFTP la imagen de arranque necesaria!

Todo esto lo he ido descubriendo de a poco, leyendo el archivo de ocnfiguración y haciendo algunas pruebas.

Para mis necesidades, ha reemplazado 4 aplicaciones diferentes que usaba antes con una sola que es tan (o mas) configurable que las anteriores y mucho mas estable en algunos casos… (Por ejemplo, no he vuelto a tener problemas desde que sirvo imagenes por TFTP usando Dnsmasq, cosa que si me pasaba al servirlas con tftp-hpa, un port del TFTP server de OpenBSD para linux)

Resumiendo, Dnsmasq te cambia la vida. En una sola aplicación:

  • DNS Proxy con caché (y control de TXT records si fuera necesario)
  • DHCP Server altamente configurable
  • PXE Server para diskless clients
  • TFTP Server de alta estabilidad y muy buena velocidad de operación.

Una joyita realmente. ¿Que mas se puede pedir de la vida?

Próxima entrega: Como encadené Dnsmasq para que sirva grldr, el bootloader de grub4dos por la red el cual a su vez encadena pxelinux y que me permiten arrancar de todo un poco, livecd de linux, windows, imagenes de diskette y archivos ISO…

Eliminando todos los comentarios del archivo de configuración antes de postear su contenido:

Supongamos que mi viejo amigo y proxy-caché de cabecera un día deja de funcionar y tengo que ir a preguntar a un foro a ver si alguien me da una mano. Sería una locura pedirle a alguien que encuentre la falla entre las 4775 líneas de configuración de mi archivo /etc/squid/squid.conf, (contadas con wc), dejo constancia:

~ # wc -l /etc/squid/squid.conf

4775 /etc/squid/squid.conf

De paso, por si alguien no conocía el comando, wc -Por las siglas en inglés de Word Count- cuenta palabras, lineas, caracteres e inclusive bytes.

Volviendo al tema, puedo eliminar todo lo que sean comentarios de un archivo de configuración ejecutando el siguiente comando:

grep -vh '^[[:space:]]*\(#\|$\)' /ruta/al/archivo_de_configuración

Poco amigable, imposible de recordar al primer intento. Bash de por medio, puedo crear un script que lea el archivo de configuración de 4000 y tantas líneas y me lo devuelva sin comentarios:

#!/bin/bash # Código para quitar todos los comentarios y líneas en blanco

grep -vh '^[[:space:]]*\(#\|$\)' "$@"

Y guardar ese script como /usr/bin/nocomentarios.sh, por ejemplo, de forma de tenerlo siempre a mano.

El archivo tiene que ser ejecutable:

chmod +x /usr/bin/nocomentarios.sh

Por último, cada vez que quiera eliminar los comentarios de un archivo, poniendo de nuevo el ejemplo del archivo de configuración de Squid, basta con hacer:

nocomentarios.sh /etc/squid/squid.conf

Y para muestra basta un botón dicen; Después de limpiar todos los comentarios, la cantidad de líneas no comentariadas de mi squid.conf son únicamente 47:

~ # grep -vh '^[[:space:]]*\(#\|$\)' /etc/squid/squid.conf | wc -l

47

Lo robé tomé prestado de los foros de Gentoo en su momento, y desde entonces lo uso siempre, no solo a la hora de postear algo, ayuda mucho también a depurar en caso de que algo salga mal….