cPanel backup: prekillacct

cPanel backup: prekillacct 2

O cancelamento de contas de hospedagem é bastante comum. Você já faz o backup das contas de seus clientes quando eles solicitam o cancelamento?

prekillacct

Caso da vida real

Você é o SysAdmin de sua empresa e deve garantir que, no momento em que for efetivado o cancelamento de uma conta de hospedagem, seja feito um full-backup da conta.

Mas, por que tudo isso?
  • Você mantém seu servidor otimizado, por isso todas as contas canceladas são imediatamente removidas do servidor, evitando consumo de espaço com armazenamento desnecessário (sem que alguém pague $$ por ele);
  • Caso o cliente decida voltar (sim, isso é muito comum), ele poderá usufruir da restauração da conta de hospedagem de maneira ágil;
  • Você pode mover os arquivos de backup para dentro de seu “Servidor de Backup” que nesse caso, pode ser sua instancia no AWS Glacier, ou qualquer outro serviço de backup de sua escolha.
Como fazer essa configuração?

Primeiro, utilize seu mRemote e acesse seu servidor cPanel com suas credencias de root.

Agora, edite o arquivo: /scripts/prekillacct e insira o conteúdo abaixo:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#!/usr/bin/bash
LOGDESTINO="/var/log/prekillacc"
LOG="$LOGDESTINO/prekillacct.log"
DESTINO="/backup/terminate-account/"
COMANDOCPANEL=/usr/local/cpanel/scripts/pkgacct
FILETMP=`date +%Y%m%d%H%M%S`
mkdir -p $DESTINO $LOGDESTINO
echo "-----------------" >> $LOG
echo "Inicio -- prekillacct" >> $LOG
date >> $LOG
echo "Dados enviados para cancelamento::: $@" >> $LOG
echo "" >> $LOG
function terminate_account () {
$COMANDOCPANEL $d $DESTINO &>> $LOG
}
# Obtem a lista de contas no servidor
cat /etc/userdomains | cut -d":" -f2 | uniq >> $LOGDESTINO/$FILETMP.tmp
# Faz a validação dos parametros enviados para cancelamento
for d in $(cat $LOGDESTINO/$FILETMP.tmp); do
if [ "$d" = "$1" ]
then
terminate_account
break
elif [ "$d" = "$2" ]
then
terminate_account
break
elif [ "$d" = "$3" ]
then
terminate_account
break
elif [ "$d" = "$4" ]
then
terminate_account
break
elif [ "$d" = "$5" ]
then
terminate_account
break
fi
done
rm -f $LOGDESTINO/$FILETMP.tmp
echo "" >> $LOG
echo "fim -- prekillacct" >> $LOG
echo "-----------------" >> $LOG
#!/usr/bin/bash LOGDESTINO="/var/log/prekillacc" LOG="$LOGDESTINO/prekillacct.log" DESTINO="/backup/terminate-account/" COMANDOCPANEL=/usr/local/cpanel/scripts/pkgacct FILETMP=`date +%Y%m%d%H%M%S` mkdir -p $DESTINO $LOGDESTINO echo "-----------------" >> $LOG echo "Inicio -- prekillacct" >> $LOG date >> $LOG echo "Dados enviados para cancelamento::: $@" >> $LOG echo "" >> $LOG function terminate_account () { $COMANDOCPANEL $d $DESTINO &>> $LOG } # Obtem a lista de contas no servidor cat /etc/userdomains | cut -d":" -f2 | uniq >> $LOGDESTINO/$FILETMP.tmp # Faz a validação dos parametros enviados para cancelamento for d in $(cat $LOGDESTINO/$FILETMP.tmp); do if [ "$d" = "$1" ] then terminate_account break elif [ "$d" = "$2" ] then terminate_account break elif [ "$d" = "$3" ] then terminate_account break elif [ "$d" = "$4" ] then terminate_account break elif [ "$d" = "$5" ] then terminate_account break fi done rm -f $LOGDESTINO/$FILETMP.tmp echo "" >> $LOG echo "fim -- prekillacct" >> $LOG echo "-----------------" >> $LOG
#!/usr/bin/bash

LOGDESTINO="/var/log/prekillacc"
LOG="$LOGDESTINO/prekillacct.log"
DESTINO="/backup/terminate-account/"
COMANDOCPANEL=/usr/local/cpanel/scripts/pkgacct

FILETMP=`date +%Y%m%d%H%M%S`

mkdir -p $DESTINO $LOGDESTINO

echo "-----------------" >> $LOG
echo "Inicio -- prekillacct" >> $LOG
date >> $LOG
echo "Dados enviados para cancelamento::: $@" >> $LOG
echo "" >> $LOG

function terminate_account () {
        $COMANDOCPANEL $d $DESTINO &>> $LOG
}

# Obtem a lista de contas no servidor
cat /etc/userdomains | cut -d":" -f2 | uniq  >> $LOGDESTINO/$FILETMP.tmp

# Faz a validação dos parametros enviados para cancelamento
for d in $(cat $LOGDESTINO/$FILETMP.tmp); do
        if [ "$d" = "$1"  ]
        then
                 terminate_account
                break

        elif [ "$d" = "$2"  ]
        then
                 terminate_account
                break

        elif [ "$d" = "$3"  ]
        then
                 terminate_account
                 break

        elif [ "$d" = "$4"  ]
        then
                 terminate_account
                break

        elif [ "$d" = "$5"  ]
        then
                 terminate_account
                break
        fi
done

rm -f $LOGDESTINO/$FILETMP.tmp

echo "" >> $LOG
echo "fim -- prekillacct" >> $LOG
echo "-----------------" >> $LOG

 

Agora conceda permissão para execução de seu novo script:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# chmod +x /scripts/prekillacct
# chmod +x /scripts/prekillacct
# chmod +x /scripts/prekillacct

 

Ok, finalizamos. Mas é importante você saber que:

  • Quando cancelar uma conta de hospedagem cPanel, ela será armazenada em: /backup/terminate-account/
  • Os logs gerados durante a utilização do script serão armazenados em: /var/log/prekillacc/prekillacct.log

 

Com tudo isso em mãos, sinta-se livre para adaptar o script de acordo com suas necessidades e criatividade. Por exemplo, você pode desejar enviar o arquivo de backup para seu servidor remoto ou instancia Amazon AWS Glacier juntamente com um email de notificação com o resultado do backup da conta … sim este é assunto para uma outra postagem aqui no nosso blog.

 

Referência: pkgacct, Amazon Glacier