/ etc / hosts no es compatible con round robin, pero puede escribir una secuencia de comandos bash simple para reemplazar una entrada etiquetada con un comentario #RoundRobin (o cualquier otra etiqueta que desee usar, simplemente refleje en la línea grep de la secuencia de comandos) .
#!/bin/bash
fqdnips=( $(nslookup sub.domain.com|grep Address:|awk -F\ '{ print $2 }'|grep -v '#') )
new=`printf "${fqdnips[@]}"`
old=`grep "#RoundRobin" /etc/hosts|awk -F\ '{ print $1 }'`
sed -i "s/$old/$new/g" /etc/hosts
La secuencia de comandos anterior toma el resultado de nslookup para sub.domain.com y lo almacena en una matriz. Luego imprime el valor más alto en $ new y toma el valor existente para la etiqueta #RoundRobin asignada en / etc / hosts ... por último, realiza un reemplazo de sed
La entrada del archivo / etc / hosts se vería así
127.0.0.1 localhost
::1 localhost
11.12.13.14 sub.domain.com #RoundRobin
Por último, coloque este script en el crontab de la raíz para que se ejecute cada hora más o menos y ahora tendrá un round robin / etc / host.
Esto es particularmente útil si tiene una página codificada que extrae algunos datos de una API y la búsqueda de DNS para el servidor API está causando mucho tiempo de inactividad en la ejecución del script de la página ... lo que resulta en un alto consumo de CPU para lo que de otro modo Parece ser una página simple. Para evitar la costosa búsqueda de DNS (particularmente si su sitio está haciendo cientos de ellos por minuto para tráfico pesado), debe usar / etc / hosts para resolver el FQDN del servidor API remoto. Esto reducirá drásticamente el uso de la CPU para extraer los datos de la API y generar la página.