matt Postado Agosto 13, 2014 Compartilhar Postado Agosto 13, 2014 Olá Senhores, algum de vocês já tem isso ou entende disso? Eu precisava um script para quando suspender a conta do cliente no cpanel, ele alterar as zonas de DNS e MX para as padrão do servidor. Isso seria útil porque: - O cliente que utiliza o MX do google, continua usando o email mesmo com a conta suspensa e não paga a hospedagem - Tenho vários clientes que utilizam direcionamentos de WWW para sites como Wix e outros e os sites não suspendem e não paga a hospedagem Tem um post no fórum americano falando disso e tem até um exemplo de script lá, mas é necessário alguém que entenda de shell script para conferir o mesmo. Link: http://forums.cpanel.net/f42/postsuspendacct-change-dns-simple-script-240711.html SCRIPT DE EXEMPLO: #!/usr/bin/perl ###### Matthew Harris ###### ### Sunday October 30, 2011 ### ### Post Suspension DNS UP ### ###################### use strict; use warnings; use lib '/usr/local/cpanel'; use Cpanel::PublicAPI(); use Cpanel::AddonDomain(); use File::Copy; get_accesshash(); my $cp = Cpanel::PublicAPI->new( 'user' => 'root', 'accesshash' => my $accesshash ); $ENV{'REMOTE_USER'} = 'root'; # variable declaration my %OPTS = @ARGV; my $user = $OPTS{'user'}; my $suspzone = "/var/named/suspended"; my(@add_ons, $maindom); deps(); findaddons(); maindom(); backupaddons(); editmx(); rndcre(); sub deps{ if(!-d $suspzone){ mkdir($suspzone, 0755) or die "Unable to create $suspzone\n"; } } sub findaddons{ my $addons = $cp->cpanel_api2_request('whostmgr', { 'module' => 'AddonDomain', 'func' => 'listaddondomains', 'user' => "$user" }, { 'regex' => ".*", } ); @add_ons = map $_->{domain}, @{$addons->{cpanelresult}{data}}; } sub maindom{ my $ownfile = '/etc/trueuserdomains'; open my $fh, "<", $ownfile; my @contents = <$fh>; @contents = grep /$user/, @contents; ($maindom, undef) = split(':', $contents[0]); close $fh; } sub backupaddons{ foreach(@add_ons){ my $zonefile = "$_.db"; copy("/var/named/$zonefile", "$suspzone/$zonefile") or die "Could not backup zonefile: $!"; } copy("/var/named/$maindom.db", "$suspzone/$maindom.db") or die "Could not backup zonefile: $!"; } sub editmx{ my($zonefile, $fh, @contents, @maincont, $main, $serial, $newserial); foreach(@add_ons){ $zonefile = "/var/named/$_.db"; open $fh, "<", $zonefile; @contents = <$fh>; @contents = grep !/MX/, @contents; close $fh; open $fh, ">", $zonefile; foreach(@contents){ if($_ =~ /([0-9]{10}).*serial/){ $serial = $1; $newserial = $serial + 1; $_ =~ s/$serial/$newserial/g; print $fh @contents; } } close $fh; } my $maindomzone = "/var/named/$maindom.db"; open $main, "<", "$maindomzone"; @maincont = <$main>; @maincont = grep !/MX/, @maincont; close $main; open $main, ">", $maindomzone; foreach(@maincont){ if($_ =~ /([0-9]{10}).*serial/){ $serial = $1; $newserial = $serial + 1; $_ =~ s/$serial/$newserial/g; print $main @maincont; } } close $main; } sub rndcre{ system("/usr/sbin/rndc reload"); } sub get_accesshash{ open my $hash, "<", "/root/.accesshash"; my @accesshash = <$hash>; close $hash; foreach(@accesshash){ $accesshash .= $_ } } Alguém pode me dar uma opinião sobre isso? 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Fernando Rafs Postado Agosto 13, 2014 Compartilhar Postado Agosto 13, 2014 O problema em fazer isto é se o cliente paga e a conta é liberada novamente? O cliente ficará com o serviço Offline devido a modificação na zona de DNS e acabará lhe gerando mais trabalho na reconfiguração, no caso dele efetuar o pagamento é claro. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
matt Postado Agosto 13, 2014 Autor Compartilhar Postado Agosto 13, 2014 O problema em fazer isto é se o cliente paga e a conta é liberada novamente? O cliente ficará com o serviço Offline devido a modificação na zona de DNS e acabará lhe gerando mais trabalho na reconfiguração, no caso dele efetuar o pagamento é claro. O gancho que o cara fez acima faz isso, ele copia a zona original pra um lugar, depois quando reativar a conta ele restaura as zonas originais. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Andre Juliano Postado Agosto 13, 2014 Compartilhar Postado Agosto 13, 2014 O ideal seria notificar o usuário se a conta não for paga em N dias a mesma sera cancelada/excluida. Assim ele será obrigado a pagar ou cancelar de vez. 0 Citar WebChamp - Hospedagem de Sites, Revenda de Hospedagem, Revenda de VPS, Servidores Virtuais (OpenVZ / KVM). Link para o comentário Compartilhar em outros sites More sharing options...
rubensk Postado Agosto 13, 2014 Compartilhar Postado Agosto 13, 2014 O gancho que o cara fez acima faz isso, ele copia a zona original pra um lugar, depois quando reativar a conta ele restaura as zonas originais. Possivelmente fosse mais simples mudar os DNS para dois servidores com wildcard que respondem por qualquer domínio apontando para uma página padrão. Assim você manteria a zona original no DNS original, e voltaria para eles quando o serviço fosse reestabelecido. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
matt Postado Agosto 14, 2014 Autor Compartilhar Postado Agosto 14, 2014 Possivelmente fosse mais simples mudar os DNS para dois servidores com wildcard que respondem por qualquer domínio apontando para uma página padrão. Assim você manteria a zona original no DNS original, e voltaria para eles quando o serviço fosse reestabelecido. Olá @rubensk quando você fala mudar os DNS, você se refere em mudar direto no registro.br, por exemplo? 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
rubensk Postado Agosto 14, 2014 Compartilhar Postado Agosto 14, 2014 Olá @rubensk quando você fala mudar os DNS, você se refere em mudar direto no registro.br, por exemplo? Sim, me refiro a mudar diretamente no registry, o que no caso de domínios .br é o Registro.br. Isso é suportado tanto pelo módulo EPP para Registro.br quanto nos módulos de registrar-resellers que costumam ser usados em WHMCS. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
matt Postado Agosto 14, 2014 Autor Compartilhar Postado Agosto 14, 2014 Sim, me refiro a mudar diretamente no registry, o que no caso de domínios .br é o Registro.br. Isso é suportado tanto pelo módulo EPP para Registro.br quanto nos módulos de registrar-resellers que costumam ser usados em WHMCS. Interessante. Mesmo assim eu teria que criar um Action Hook no WHMCS que ao suspender já altera os DNS´s né? 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
rubensk Postado Agosto 14, 2014 Compartilhar Postado Agosto 14, 2014 Interessante. Mesmo assim eu teria que criar um Action Hook no WHMCS que ao suspender já altera os DNS´s né? Sim, precisa. A estratégia seria similar, mas ajudaria a preservar a informação dos resource records da zona para o retorno quando o pagamento tiver baixa. Rubens 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.