Hostlocal
"/etc/hosts" al alcance de la mano
Mantener un sistema DNS en una pequeña red local muchas veces es trabajar de más para las necesidades reales. Lanzar comandos a muchas máquinas en una gran red muchas veces significa escribir largos e inmantenibles ficheros de configuración.
Para simplificar las dos tareas hay un sencillo script programado en perl: hostlocal. Aprovechando la propia sintaxis del fichero "/etc/hosts", hostlocal puede devolver datos del fichero para una máquina, para una categoría de máquinas definidas por el usuario, o para partes de nombres o direcciones IP.
Sintaxis
hostlocal [-i|--ips] [-n|--nombres] {categoría|patrón_de_búsqueda}-i --ips Devuelve sólo direcciones IP
-n --nombres Devuelve sólo nombres
categoría Devuelve todas las máquinas de la categoría indicada.
patrón_de_búsqueda Devuelve todas las máquinas que contienen la cadena de búsqueda.
Formato del fichero "/etc/hosts"
Para que el script hostlocal pueda trabajar con categorías hay que definirlas antes en el fichero "/etc/hosts". Hacerlo es tan sencillo como colocar líneas de comentario con tantos caracteres # añadidos como nivel de anidamiento en las categorías queramos.
Ejemplo de formato:
# Comentario normal. Sin efecto para las categorías.
## TODAS (a partir de este punto el script trata las máquinas).
127.0.0.1 localhost
### CAT1 (categoría de máquinas dentro de TODAS)
10.0.0.1 router
#### SUBCAT1_1 (categoría dentro de CAT1)
10.0.1.2 mimaquina
10.0.1.116 linkap
10.0.1.102 intranet
#### SUBCAT1_2 (categoría dentro de CAT1)
10.0.2.1 wifiap
10.0.2.38 portatil
### CAT2 (categoría dentro de TODAS)
Ejemplo de ejecución:
user@mi_maquina:~$ hostlocal CAT1
10.0.1.102 intranet
10.0.1.116 linkap
10.0.1.2 mimaquina
10.0.2.38 portatil
10.0.0.1 router
10.0.2.1 wifiap