Skip to content

Instantly share code, notes, and snippets.

@KelvinVenancio
Last active November 7, 2015 22:36
Show Gist options
  • Save KelvinVenancio/072778aa5aa526239b21 to your computer and use it in GitHub Desktop.
Save KelvinVenancio/072778aa5aa526239b21 to your computer and use it in GitHub Desktop.
Verificação de dns para um domínio, revenda e/ou todas as contas de um servidor. A opção 1, pode ser usada em qualquer distro, as demais (2/3), apenas em servidores/vps com cPanel/CloudLinux.
#!/bin/bash
# Kelvin Soares - kelvin@kelvinsoares.tk
clear
tput cup 4 30
echo "Menu Principal - Escolha a opção desejada"
echo ""
menu() {
echo ""
echo "
(1) - Checar DNS de Hospedagem
(2) - Checar DNS de Revenda Completa
(3) - Checar DNS de Todas as contas do Servidor
(x) - Sair
"
echo ""
echo -n "Qual a opção desejada? "
read opcao
}
func_hosp() {
echo ""
echo -n "Informe o domínio da hospedagem: "
read domain
for ((i=0;i<=4;i++)); do sleep 0.5; echo -n "."; done; echo ""
dig NS $domain +short > /root/result_dig
clear
echo ""
echo "Informações do Servidor: " - $(hostname) - $(hostname -i)
echo ""
echo "O domínio $domain aponta para: "
echo $domain - $(host $domain | awk {'print $4'} | grep -v handled) - $(for i in `host $domain | awk {'print $4'}`; do host $i | awk {'print $5'} | egrep -v "found|handled|NXDOMAIN"; done)
echo ""
echo "Utilizando os DNSs/IPs abaixo: "
for i in `cat /root/result_dig`; do
echo $i - $(host $i | awk {'print $4'});
done
rm -f /root/result_dig
}
func_revenda() {
echo ""
echo -n "Informe o domínio principal da revenda: "
read reseller
for ((i=0;i<=4;i++)); do sleep 0.5; echo -n "."; done; echo ""
user_reseller=$(/scripts/whoowns $reseller)
lista_filhos=$(grep -P :\ "$user_reseller"$ /etc/trueuserowners | cut -d: -f1 | sort)
existe=$(grep $user_reseller /var/cpanel/resellers | cut -d: -f1)
if [ -z $existe ]
then
clear
echo ""
echo "O domínio $reseller não é uma revenda!"; exit
else
for i in `echo $lista_filhos`; do grep -P :\ "$i"$ /etc/trueuserdomains; done | cut -d: -f1 > /root/lista_domains
clear
echo ""
echo "Informações do Servidor: " - $(hostname) - $(hostname -i)
echo ""
echo "As contas da revenda [$reseller : $user_reseller] estão apontadas para: "
dig -f /root/lista_domains +noall +answer
fi
unset user_reseller
unset lista_filhos
unset existe
rm -f /root/lista_domains
}
func_all() {
echo ""
echo "Verificando apontamento de todos os domínios do servidor: "
for ((i=0;i<=4;i++)); do sleep 0.5; echo -n "."; done; echo ""
cat /etc/trueuserdomains| cut -d: -f1 | sort > /root/list_all
clear
echo "Informações do Servidor: " - $(hostname) - $(hostname -i)
echo ""
echo "Listagem de apontamento de todos os domínios: "
dig -f /root/list_all +noall +answer
rm -f /root/list_all
}
menu
case $opcao in
1) func_hosp;;
2) func_revenda;;
3) func_all;;
x) clear && echo "Bye!" && exit;;
*) echo "Opção inválida, campeão!" && menu ;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment