/ vân vâ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
Kịch bản trên lấy đầu ra của nslookup cho sub.domain.com và lưu trữ nó trong một mảng. Sau đó, nó in giá trị cao nhất lên $ new và lấy giá trị hiện tại cho thẻ #RoundRobin được gán trong / etc / hosts ... cuối cùng, nó thực hiện thay thế sed
/ etc / hosts tập tin nhập sẽ như thế này
127.0.0.1 localhost
::1 localhost
11.12.13.14 sub.domain.com #RoundRobin
Cuối cùng, đặt tập lệnh này vào crontab của root để chạy mỗi giờ hoặc lâu hơn và bây giờ bạn sẽ có một vòng tròn / etc / host.
Điều này đặc biệt hữu ích nếu bạn có một trang được mã hóa đang lấy một số dữ liệu từ API và việc tra cứu DNS cho máy chủ API đang gây ra nhiều thời gian treo trong quá trình thực thi tập lệnh của trang ... dẫn đến mức tiêu thụ cpu cao cho những gì khác dường như là một trang đơn giản Để tránh việc tra cứu DNS tốn kém (đặc biệt nếu trang web của bạn đang thực hiện hàng trăm lượt truy cập mỗi phút cho lưu lượng truy cập lớn), bạn nên sử dụng / etc / hosts để giải quyết FQDN của máy chủ API từ xa. Điều này sẽ giảm đáng kể việc sử dụng CPU để lấy dữ liệu API và tạo trang.