/ etc / hosts round robin özelliğini desteklemiyor, ancak #RoundRobin yorumuyla etiketlenmiş bir girişi değiştirmek için baştan başa basmak için basit bir bash betiği yazabilirsiniz (veya kullanmak istediğiniz herhangi bir etiketi, betiğin grep satırına yansıtın) .
#!/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
Yukarıdaki komut dosyası, sub.domain.com için nslookup çıktısını alır ve onu bir dizide saklar. Daha sonra en üstteki değeri $ new olarak yazdırır ve / etc / hosts dosyasında atanan #RoundRobin etiketi için varolan değeri alır ... son olarak, bir sed yerine geçer.
/ etc / hosts dosyası girişi şöyle görünür
127.0.0.1 localhost
::1 localhost
11.12.13.14 sub.domain.com #RoundRobin
Son olarak, bu betiği her saat veya daha fazla çalıştırmak için kökün crontab'ına yerleştirin ve şimdi / etc / host round-robin'iniz olacak.
Bu, özellikle bir API’den bazı verileri çeken kodlanmış bir sayfanız varsa ve API sunucusunun DNS araması, sayfanın komut dosyası çalıştırma işleminde çok fazla bekleme süresine neden oluyorsa ... Basit bir sayfa gibi görünüyor. Pahalı DNS aramasından kaçınmak için (özellikle siteniz yoğun trafikte dakika başına yüzlerce yapıyorsa), uzak API sunucusunun FQDN'sini çözmek için / etc / hosts dosyasını kullanmalısınız. Bu, API verilerini çekmek ve sayfayı oluşturmak için CPU kullanımını önemli ölçüde azaltır.