Zamiast mieć dowiązanie symboliczne do pliku (zdalnego) hosta, lepiej zaktualizować kopię lokalną o informacje zdalnego. W ten sposób w przypadku awarii sieci lub awarii hosta „master” nadal masz lokalny plik / etc / hosts.
W każdym lokalnym pliku / etc / hosts powinna znajdować się „struktura” oddzielająca informacje lokalne i globalne.
przykład lokalnego pliku / etc / hosts:
# local informations:
127.0.0.1 localhost otherhandylocalalias
# specificly needed aliases for this host:
1.2.3.4 some_specific.host.domain
# before:local after:global informations (copied from: ...........)
........................
........................
I możesz zastąpić resztę pliku (każdy po wierszu „# before: local after: global ....”) informacją „global”, pobraną ze zdalnego pliku przeznaczonego do obsługi „zweryfikowanych” informacji globalnych (np. plik zdalnego hosta: /etc/hosts_global_informations.master) lub pobrany TYLKO z „części globalnej” pliku master / etc / hosts (np .: remotehost: / etc / hosts).
Szczegółowe informacje na temat pobierania tych informacji są różne, w zależności od tego, co jest dostępne.
Przykład: w swojej powłoce możesz to zrobić ręcznie: (zakładając, że cały plik / etc / hosts zawiera ten sam separator, który jest linią pasującą do wyrażenia regularnego „zesep”:
export zesep='# before:local after:global .*'
#this allows you to complete the line in each /etc/hosts with non-global informations!
awk "/${zesep}/,0 { continue } 1 { print }" </etc/hosts >/etc/newlocalhosts
ssh user@remotehost 'cat /etc/hosts' | awk "/${zesep}/,0 { print } " >> /etc/newlocalhosts
A następnie zamień / etc / hosts na / etc / newlocalhosts RAZ JESTEŚ PEWNY, ŻE nowy jest poprawny (uwaga: sprawdź, czy ssh jest w porządku, na przykład, ponieważ może się nie powieść, jeśli sieć ulegnie awarii!). Jeśli jest poprawny, możesz:
cat /etc/newlocalhosts > /etc/hosts #this will keep the settings (mode, etc) of /etc/hosts but replace its content.