Como faço para que o /etc/hosts
arquivo se refira a outro arquivo de configuração para sua lista de hosts?
Exemplo /etc/hosts
:
## My Hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
#Other Configurations
<Link to /myPath/to/MyConfig/ConfigFile.txt>
#Other Addresses
3.3.3.3 MyAwesomeDomain.com
4.4.4.4 SomeplaceIWantToGoTo.com
ConfigFile.txt
##My additional Hosts
1.1.1.1 SomeLocation.com
2.2.2.2 AnotherLocation.com
Como adiciono um link / referência ao /etc/hosts
arquivo para que o ConfigFile.txt seja carregado?
LC_COLLATE
), para que a ressalva em sua resposta não se aplique.Não é possível, pois o formato geralmente é profundamente codificado na libc das plataformas. No entanto, é possível que um sistema operacional adicione esse recurso, tornando-o uma solução não multiplataforma.
Como alternativa, você pode atualizar automaticamente um determinado bloco no seu arquivo hosts. Isso é particularmente útil se você tiver um script que produz dinamicamente entradas de host para um determinado projeto ou mais (possivelmente com alteração de IPs).
Aqui está um exemplo: você deseja criar hosts a partir do estado Terraform via
terraform-inventory
.Saída de inventário relevante (por exemplo, mapeando uma tag "Nome" do EC2 para grupos de exatamente um host cada):
print-updated-hosts-entries.sh
Saída de script:
E a linha de comando para atualizar um bloco marcado
/etc/hosts
com a saída do script :Explicação:
sed
chamadas para imprimir todas as linhas antes e depois do início / fim do marcador, respectivamente. Em qualquer caso, inserimos os marcadores, colocando a saída do script entre essas linhas. Mesmo se o script falhar, ainda temos o conteúdo circundante de/etc/hosts
(e o backup em um cenário catastrófico).sudo tee /etc/hosts.new
grava o conteúdo canalizado em um novo arquivosed -n '/^# MYMARKER BEGIN/,/^# MYMARKER END/p'
imprime o bloco atualizado por conveniênciasudo mv /etc/hosts.new /etc/hosts
move o novo arquivo no lugar. Isso deve ser feito em uma etapa separada, porque se o buffer do canal ficar sem espaço,tee /etc/hosts
começaria a gravar o arquivo enquanto o conteúdo existente ainda estiver sendo lido.fonte
Eu tinha um requisito semelhante para eu trabalhar sem interrupções em locais diferentes com IPs dinâmicos, principalmente porque uso máquinas virtuais. Minha solução simples para isso é a seguinte:
Crie um script para atualizar as entradas do host para cada entidade. Por exemplo, se eu tiver um host chamado 'myhost.net', com os subdomínios 'app.myhost.net', eu chamaria esse script e forneceria um endereço IP que será gravado para cada domínio e salvo em um arquivo host chamado 'meu hospedeiro'. O mesmo script possui um sinalizador para excluir ou atualizar um único arquivo host.
Crie outro script para mesclar esses arquivos em / etc / hosts. Este script encontrará todos os arquivos de host que você criou e os mesclará no arquivo de hosts únicos em / etc / hosts.
Isso funcionou para mim perfeitamente. Trabalho remotamente e às vezes preciso me mover entre locais por qualquer motivo ou outro e ficaria sobrecarregado com a demanda de editar esse arquivo tantas vezes. Em vez disso, apenas executei um script. Sim, um script. O primeiro script executa automaticamente o outro para fazer a mesclagem automaticamente.
fonte