File: //usr/local/locaweb/bin/lwcorp_apache2_disable_reenable.sh
#!/bin/bash
# VARS e FUNCTIONS
. /etc/lwcorp/lwcorp.functions
apache2ctl_configtest() {
configtest
if [ $? -ne "0" ];then
echo "$LOGDATE - [Existe um erro no 'configtest' do Apache2. Processo abortado]" >> $LOGFILE
dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nEXISTE UM ERRO NO CONFIGTEST DO APACHE.\n\nCORRIJA ISSO ANTES DE PROSSEGUIR." 9 65
exit 1
fi
}
#
# FUNCTION PARA DESATIVAR SITE
#
desativa_sites() {
SITES_ATIVOS="$(ls -1 /etc/locaweb/hospedagem/*.conf | cut -d\/ -f5 | cut -d. -f1)"
if [ -z $SITES_ATIVOS ]; then
echo "$LOGDATE - [Nao ha sites ativos e/ou analista cancelou o processo]" >> $LOGFILE
dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nNAO HA SITES ATIVOS. CONFIGURACAO CANCELADA." 7 65
exit 1
fi
SITE_SELECIONADO="$(dialog --backtitle "$LWCORPHEADER" --stdout --radiolist "\nSELECIONE A HOSPEDAGEM:" 0 0 0 `for a in $SITES_ATIVOS; do echo "$a '' off"; done`)"
if [ -z $SITE_SELECIONADO ]; then
echo "$LOGDATE - [Analista nao selecionou a hospedagem e/ou cancelou o processo]" >> $LOGFILE
dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nCONFIGURACAO CANCELADA." 7 65
exit 1
else
echo "$LOGDATE - [Analista selecionou site '$SITE_SELECIONADO'. Aguardando confirmacao]" >> $LOGFILE
dialog --backtitle "$LWCORPHEADER" \
--title "$TITLECONFIRMACAO" \
--yesno "VALIDANDO INFORMACOES:
\n\n VOCE ESTA PRESTES A 'DESATIVAR' O SEGUINTE WEBSITE:
\n\n * LOGIN DA HOSPEDAGEM => $SITE_SELECIONADO ($SITE_SELECIONADO.hospedagemdesites.ws)
\n\nATENCAO: ESTA CONFIGURACAO REQUER UM RESTART DO APACHE2. DESEJA PROSSEGUIR?" 11 100
case $? in
0) echo "$LOGDATE - [Analista confirmou desativacao do site '$SITE_SELECIONADO']" >> $LOGFILE
echo -e "\n\033[1;32m==============================================================\033[0m" ;
echo -e "\n\033[1;32mDESATIVANDO SITE $SITE_SELECIONADO\033[0m" ;
echo -e "\n\033[1;32m==============================================================\033[0m" ;
echo "";
chattr -i /etc/locaweb/hospedagem/$SITE_SELECIONADO.conf ;
mv /etc/locaweb/hospedagem/$SITE_SELECIONADO.conf /etc/locaweb/hospedagem/$SITE_SELECIONADO.conf_des && echo ""
echo "$LOGDATE - [Site '$SITE_SELECIONADO' desativado com sucesso]" >> $LOGFILE
dialog --backtitle "$LWCORPHEADER" --title "$TITLEINFO" --msgbox "\nSITE $SITE_SELECIONADO DESATIVADO COM SUCESSO." 7 65; exit 0;;
1) echo "$LOGDATE - [Analista cancelou a configuracao]" >> $LOGFILE;
dialog --backtitle "$LWCORPHEADER" --title "$TITLECANCELADA" --msgbox "\nCONFIGURACAO CANCELANDA." 7 65; exit 1;;
esac
fi
}
#
# FUNCTION PARA REATIVAR SITE
#
reativa_sites() {
# Aqui sao separados os sites ativos para exibir apenas aqueles que estao
# disponiveis para ativacao, evitando que alguem ative algo ja ativado. Sacou?
SITES_DESATIVADOS="$(ls -1 /etc/locaweb/hospedagem/*.conf_des | cut -d\/ -f5 | cut -d. -f1)"
if [ -z $SITES_DESATIVADOS ]; then
echo "$LOGDATE - [Nao ha sites desativados neste servidor. Abortado.]" >> $LOGFILE
dialog --backtitle "$LWCORPHEADER" --title "$TITLEINFO" --msgbox "\nNAO HA HOSPEDAGENS DESATIVADAS NESTE SERVIDOR." 7 65
exit 1
fi
SITE_SELECIONADO="$(dialog --backtitle "$LWCORPHEADER" --stdout --radiolist "\nSELECIONE A HOSPEDAGEM:" 0 0 0 `for a in $SITES_DESATIVADOS; do echo "$a '' off"; done`)"
if [ -z $SITE_SELECIONADO ]; then
echo "$LOGDATE - [Analista nao selecionou a hospedagem e/ou cancelou o processo]" >> $LOGFILE
dialog --backtitle "$LWCORPHEADER" --title "$TITLEERRO" --msgbox "\nCONFIGURACAO CANCELADA." 7 65
exit 1
else
echo "$LOGDATE - [Analista selecionou site '$SITE_SELECIONADO'. Aguardando confirmacao]" >> $LOGFILE
dialog --backtitle "$LWCORPHEADER" \
--title "$TITLECONFIRMACAO" \
--yesno "VALIDANDO INFORMACOES:
\n\n VOCE ESTA PRESTES A 'REATIVAR' O SEGUINTE WEBSITE:
\n\n * LOGIN DA HOSPEDAGEM => $SITE_SELECIONADO ($SITE_SELECIONADO.hospedagemdesites.ws)
\n\n ATENCAO: ESTA CONFIGURACAO REQUER UM RESTART DO APACHE2. DESEJA PROSSEGUIR?" 11 100
case $? in
0) echo "$LOGDATE - [Analista confirmou a reativacao do site '$SITE_SELECIONADO']" >> $LOGFILE
echo "";
echo -e "\033[1;32m==============================================================\033[0m";
echo -e "\033[1;32mREATIVACAO DO SITE $SITE_SELECIONADO\033[0m";
echo -e "\033[1;32m==============================================================\033[0m";
echo "";
chattr -i /etc/locaweb/hospedagem/$SITE_SELECIONADO.conf_des;
mv /etc/locaweb/hospedagem/$SITE_SELECIONADO.conf_des /etc/locaweb/hospedagem/$SITE_SELECIONADO.conf && echo "";
configtest ;
echo "$LOGDATE - [Site '$SITE_SELECIONADO' reativado com sucesso]" >> $LOGFILE
dialog --backtitle "$LWCORPHEADER" --title "$TITLEINFO" --msgbox "\nSITE $SITE_SELECIONADO REATIVADO COM SUCESSO." 7 65; exit 0;;
1) echo "$LOGDATE - [Analista cancelou a configuracao]" >> $LOGFILE;
dialog --backtitle "$LWCORPHEADER" --title "$TITLECANCELADA" --msgbox "\nCONFIGURACAO CANCELANDA." 7 65; exit 1;;
esac
fi
}
#
# MENSAGEM INICIAL
#
dialog --backtitle "$LWCORPHEADER" \
--title "$TITLEATENCAO" \
--msgbox "\nESTE RECURSO LHE PERMITE DESATIVAR SITES DESTE SERVIDOR MANTENDO O ACESSO POR FTP ATIVO.
\n\nVOCE TAMBEM PODE REATIVAR SITES ANTERIORMENTE DESATIVADOS POR ESTA FERRAMENTA.
\n\nIMPORTANTE: SOMENTE UTILIZE ESTE RECURSO SE HOUVER MOTIVO DE SEGURANCA!
\n\nCASO CONTRARIO UTILIZE O SI OU CAL PARA ATIVAR OU DESATIVAR SITES DESTE SERVIDOR." 13 100
#
# PRIMEIRA CHECAGEM DE SYNTAX DO APACHE2
#
configtest
#
# ANALISTA SELECIONA ACAO "DESATIVAR" OU "REATIVAR" UM SITE:
#
MENUAPACHE2=`dialog --backtitle "$LWCORPHEADER" --stdout \
--radiolist "\n ESCOLHA A ACAO: \n\n" \
0 0 0 \
"DESATIVAR" '' off \
"REATIVAR" '' off`
#
# VERIFICA ACAO SELECIONADA:
#
case $MENUAPACHE2 in
"DESATIVAR") ACAO="DISABLE" ;;
"REATIVAR") ACAO="ENABLE" ;;
*) dialog --backtitle "$LWCORPHEADER" --stdout --title "$TITLECANCELADO" --msgbox "\nPROCESSO CANCELADO.\n" 7 65;
echo "$LOGDATE - [Analista nao selecionou uma opcao ou cancelou o processo]" >> $LOGFILE; exit 1;;
esac
#
# DESATIVACAO DE HOSPEDAGEM
#
if [ $ACAO = "DISABLE" ]; then
echo "$LOGDATE - [Analista selecionou 'disable']" >> $LOGFILE
configtest
desativa_sites
fi
#
# REATIVACAO DE HOSPEDAGEM
#
if [ $ACAO = "ENABLE" ]; then
echo "$LOGDATE - [Analista selecionou 'enable']" >> $LOGFILE
apache2ctl_configtest
reativa_sites
fi