Introdução
Pode ser necessário fazer alterações em massa em suas zonas DNS, que não são suportadas atualmente pelo DNS Zone Editor. Por exemplo, ao alterar seus domínios para apontar para um novo conjunto de servidores de nomes privados.
Se suas zonas DNS não tiverem personalizações, você poderá editar o modelo de zona DNS e redefinir a zona DNS para aplicar as alterações. No entanto, isso não é prático em todos os casos porque as zonas podem ter personalizações e isso removerá essas personalizações.
Procedimento
Os administradores de sistema experientes devem explorar a edição manual de todas as zonas DNS a partir da linha de comando . Por exemplo, se você deseja atualizar os servidores de nomes em todas as zonas DNS de ns1.example.com e ns2.example.com para ns1.example.net e ns2.example.net, você pode fazer isso usando comandos personalizados sed e find Linux depois de fazer backup de todas as zonas no diretório /var/named/ .
Os provedores de serviços de administração de sistemas certificados SafeAdmin estão listados na página Serviços certificados SafeAdmin para sua conveniência.
Veja a seguir um exemplo do procedimento para alterar os servidores de nomes de todos os domínios usando a linha de comando.
Recomendamos fazer backup de todas as zonas DNS antes de fazer alterações em massa. É responsabilidade do administrador que executa essas alterações garantir que todos os comandos sejam executados corretamente.
1 – Para fazer backup de todas as zonas, execute o seguinte comando:
cp -rf /var/named{,.backup}
Substitua os servidores de nomes usados. Nos exemplos a seguir, usaremos ns1.olddomain.tld e ns2.olddomain.tld
como os servidores de nomes atuais e,
ns1/2.newddomain.tld
para os registros atualizados, certifique-se de atualizar as variáveis oldns e newns.
oldns="ns1.olddomain.tld"; newns="ns1.newdomain.tld" ; find /var/named/*.db -exec perl -pi -e "s/(?<=IN\s\NS\s)$oldns/$newns/g" '{}' \;
Execute o comando uma segunda vez, substituindo ns1 por ns2.
Para atualizar o registro SOA, execute o seguinte comando. O registro SOA conterá o nome do servidor de nomes ns1, portanto, certifique-se de que as variáveis sejam atualizadas adequadamente.
oldns="ns1.olddomain.tld"; newns="ns1.novodominio.tld" ; find /var/named/*.db -exec perl -pi -e "s/$oldns/$newns/g if /SOA/" '{}' \;
Atualize os registros seriais para todas as zonas DNS modificadas:
find /var/named/*.db -mtime -1 -exec perl -pi -e 'if (/^\s+(\d{10})\s+;\s?(?i)serial/i) { meu $i = $1+1; s/$1/$i/;}' '{}' \;
Reinicie o serviço DNS para aplicar as alterações:
/scripts/restartsrv_named
Verifique se as zonas foram atualizadas corretamente.
(Opcional) Se o agrupamento de DNS estiver habilitado, sincronize todas as zonas:
/scripts/dnscluster syncall