/ etc / hosts tidak mendukung round robin tetapi Anda dapat menulis skrip bash sederhana untuk menggantikan entri yang ditandai dengan komentar #RoundRobin (atau tag lain yang ingin Anda gunakan, hanya mencerminkannya di baris grep di skrip) .
#!/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
Script di atas mengambil output dari nslookup untuk sub.domain.com dan menyimpannya dalam sebuah array. Ini kemudian mencetak nilai paling atas ke $ baru dan mengambil nilai yang ada untuk tag #RoundRobin ditugaskan di / etc / hosts ... terakhir, ia melakukan penggantian sed
/ etc / hosts entri file akan terlihat seperti ini
127.0.0.1 localhost
::1 localhost
11.12.13.14 sub.domain.com #RoundRobin
Terakhir, tempatkan skrip ini di crontab root untuk menjalankan setiap jam atau lebih dan sekarang Anda akan memiliki / etc / host round-robin.
Ini sangat berguna jika Anda memiliki halaman kode yang menarik beberapa data dari API dan pencarian DNS untuk server API menyebabkan banyak waktu hang dalam eksekusi skrip halaman ... menghasilkan konsumsi CPU yang tinggi untuk apa yang sebaliknya tampaknya halaman sederhana. Untuk menghindari pencarian DNS yang mahal (terutama jika situs Anda melakukan ratusan kali per menit untuk lalu lintas yang padat), Anda harus menggunakan / etc / hosts untuk menyelesaikan FQDN dari server API jarak jauh. Ini secara dramatis akan mengurangi penggunaan CPU untuk menarik data API dan menghasilkan halaman.