Resultados 1 a 4 de 4
  1. #1
    Quero ser Guru
    Data de Ingresso
    Nov 2012
    Posts
    51

    Trocar DNS ao suspender uma conta

    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 e quando reativar, voltar a zona como era antes.

    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/postsus...pt-240711.html

    SCRIPT DE EXEMPLO:

    Código:
        #!/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 $suspzonen";
        }
        }
         
        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?
    Última edição por matt; 13-08-2014 às 16:02.

  2. #2
    WHT-BR Top Member
    Data de Ingresso
    Dec 2010
    Posts
    15,039
    Se você procura briga, pode encontrar das boas.

    O dominio é do cliente, o serviço de e-mail é prestado pelo Google, a hospedagem redirecionada não é sua. Se você ofereceu "DNS grátis", melhor ainda, mais um belo argumento na ação que os prejudicados poderão mover contra você.

  3. #3
    Super Moderador
    Data de Ingresso
    Sep 2010
    Localização
    Procurando...
    Posts
    4,106
    se o cliente esta usando o DNS do serviço de hospedagem, também acho que serviço de DNS deva ser suspenso junto com a hospedagem

    no caso do script, imagino que ele possa voltar ao default, mas a função de restaurar as que estavam sendo usadas não seria necessário um backup das mesmas?
    Siga-nos em nosso twitter: @wht_brasil

  4. #4
    Quero ser Guru
    Data de Ingresso
    Nov 2012
    Posts
    51
    Citação Postado originalmente por Winger Ver Post
    se o cliente esta usando o DNS do serviço de hospedagem, também acho que serviço de DNS deva ser suspenso junto com a hospedagem

    no caso do script, imagino que ele possa voltar ao default, mas a função de restaurar as que estavam sendo usadas não seria necessário um backup das mesmas?
    Opa, parece que parte do script ali se propõe a fazer isso... eu pagaria pra alguém me ajudar a implantar esse script. Alguém se propõe?

    Parte do script que faz backup:

    Código:
    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: $!";
        }

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •