Qual é a maneira mais rápida de atualizar 100+ Registros de zona no BIND?

1

Atualmente estou usando o Cpanel para gerenciar meu servidor BIND e é doloroso atualizar mais de 100 registros sempre que o servidor para o qual os registros estão apontando está inativo.

Existe uma maneira mais rápida de atualizar registros do BIND? O caminho do cpanel requer vários cliques. O caminho da linha de comando também é lento, você tem VI em todas as zonas, edita e salva.

Será bom se eu puder ter uma zona pré-gravada pronta. Quando eu preciso mudar, tudo que eu preciso fazer é substituir os arquivos de zona.

    
por user106377 09.02.2012 / 09:10

4 respostas

1

Se isso é algo que você está fazendo frequentemente por algum motivo, então você poderia simplesmente criar para conjuntos de arquivos de configuração e arquivos de banco de dados, então simplesmente torne seu named.conf um link simbólico para qualquer versão do arquivo que você deseja ativar. Quando você precisar mudar, mude o link simbólico e reinicie.

// named.primary.conf for primary link
...
zone "example.org" {
        type master;
        file "/etc/bind/master/example.org.primary.dns";
};
// named.backup.conf for primary link
...
zone "example.org" {
        type master;
        file "/etc/bind/master/example.org.backup.dns";
};
    
por 09.02.2012 / 09:25
0

Trabalhar a partir da linha de comando pode ser muito rápido se você usar as ferramentas certas. Por exemplo, você pode usar um comando como o seguinte para localizar arquivos específicos e fazer a substituição necessária.

$ find /path -name "*.zone" | sudo xargs sed -i 's/string/replacement/g'

Você precisa alterar os critérios de pesquisa de acordo com suas necessidades e nomeação de arquivos. Além disso, acho que será uma boa ideia executar a opção sed sem -i no início para garantir que você esteja fazendo isso corretamente ou, pelo menos, faça um backup de seus arquivos.

    
por 09.02.2012 / 09:21
0

Uma variação do comando sed de Khaled:

perl -pi.bak -e 's/string/replacement/' *zone

Isso fará com que o perl crie um arquivo .bak para cada arquivo em que é executado. Você pode, é claro, criar um perl mais complicado na expressão, se necessário.

Também não faria mal ir para o seu diretório de arquivos de zona e configurar o controle de versão lá. Algo como:

git init
git add /path/to/zone/files
git commit -m 'Initial checkin'

configurará o repo. Então você pode usar os comandos git para gerenciar seu controle de versão.

    
por 09.02.2012 / 12:50
0

Você tem vários domínios, todos essencialmente com o mesmo arquivo de zona?

Se sim, então descobri que a maneira mais fácil é simplesmente remover todas as cópias, exceto uma, de todos esses arquivos de zona, e ligar simbolicamente todos os nomes dos arquivos de zona removidos à única esquerda. No referido ficheiro de zona única, evite todas as referências absolutas a qualquer um dos seus domínios, por ex. use "@ IN AAAA ..." em vez de "example.com. IN AAAA ..." etc. Viola, agora você pode editar um arquivo de zona única e fazer com que as alterações sejam aplicadas a todos os domínios de uma só vez.

    
por 10.02.2012 / 05:20