Adicionar e Remover Dominios Virtuais do Apache

Publicado por Gardy Erickson de Padua (última atualização em 15/12/2011)

[ Hits: 8.548 ]

Download trabalho.sh




Ola galera!
Segue um script para adicionar e remover dominios virtuais do apache, alem de fazer monitoramento de processos mais pesados, e trazer algumas estatisticas de uso de memoria e cpu.
Espero que gostem e compartilhem melhorias!

  



Esconder código-fonte

#!/bin/sh  
#
###############################################################################
#  Script WGR-MULTIFUNCTIONS 1.0                                              #
#                                                                             #
#  Autores: Gardy Erickson,Roney Eidi,Willians Santos                         #
###############################################################################
#    Este programa tem como funcao adicionar e remover dominios virtuais no   #
#  apache. Tambem foram implementadas funcoes de verificar estatisticas do    #
#  CPU, MEMORIA, PROCESSOS e Verificar o Status do Apache. Tambem esta imple- #
#  mentada a funcao de enviar email ao administrador do sistema caso o uso de #
#  memoria ram do micro esteja acima do limite estipulado                     #
#                                                                             #
###############################################################################
# 

clear
Menu() {
#clear
echo "==============================================="
echo "||            WRG MULTIFUNCTIONS             ||"
echo "==============================================="
echo "Escolha uma funcao ou 0 para sair"
echo " [1] Adicionar Dominio Virtual do Apache "
echo " [2] Remover Dominio Virtual do Apache "
echo " [3] Verificar Estatisticas do CPU"
echo " [4] Verificar Estatisticas de Memoria Ram"
echo " [5] Verificar Estatisticas dos Processos"
echo " [6] Verificar Status do Apache"
echo " [0] Sair "
echo

 
echo -n " >>> Digite a Opcao: "
read opcao
 
case $opcao in
 1) AdicionaDominio ;;
 2) RemoveDominio ;;
 3) VerificaCpu ;;
 4) VerificaRam ;;
 5) VerificaProc ;;
 6) VerificaApache ;;
 0) Sair ;;
 *) "Opcao Invalida!" ; echo ; Menu ;;
esac
}
 
AdicionaDominio() {
echo "Nome do dominio (Ex.: dominio.com.br) :"
        read server
        #Criando o diretorio do site
        mkdir /var/www/$server
   #Criando o Arquivo de Configuracao do VirtualHost
        echo "Configuracao do VirtualHost"

                echo "<VirtualHost *:80>
                ServerName $server
                ServerAlias www.$server

                DocumentRoot /var/www/$server

             </VirtualHost>" > /etc/apache2/sites-available/$server

        echo "Ativando VirtualHost $server"
                ln -s /etc/apache2/sites-available/$server /etc/apache2/sites-enabled/$server

        #Criar um index para testar o arquivo
                echo "Digite algo para constar no index"
                read texto
                touch /var/www/$server/index.html
                echo "$texto" >> /var/www/$server/index.html

        echo "Atualizando arquivo hosts"
                echo "127.0.0.1         $server www.$server" >> /etc/hosts

        echo "Reiniciando apache";
                /etc/init.d/apache2 restart

        echo "Virtual Host Criado";
        logger - WGR MF LOG = NOVO DOMINIO $server ADICIONADO
        echo "Digite enter para voltar ao Menu Principal"
        read      

Menu
}
 
RemoveDominio() {
   echo "Digite o nome do dominio que deseja remover(sem o www)"
   hostss=$(cat /etc/hosts)
   echo "$hostss"
   echo "Obs: Digite apenas nomedodominio.com.br"
        read serverd
        #removendo a pasta onde estao os arquivos, e retirando do apache
        rm -fr /var/www/$serverd
        rm /etc/apache2/sites-available/$serverd
        rm /etc/apache2/sites-enabled/$serverd
   #Removendo a linha onde ha o dominio   
   sed -i "/$serverd/d" /etc/hosts   
   logger - WGR MF LOG = NOVO DOMINIO $serverd REMOVIDO
        echo "Digite enter para voltar ao Menu Principal"
        read   
Menu
}
 
VerificaCpu() {
   var=$(top -n1 | grep 'Cpu(s)')
        echo "$var"
   logger - WGR MF LOG = CPU STATUS = $var
        echo "Digite enter para voltar ao Menu Principal"
        read   
Menu
}

VerificaRam() {
   #Verificando uso de memoria
        # Porcentagem maxima considerada
        perc_max=85

        # Total da memoria:
        ramtotal=`grep -F "MemTotal:" < /proc/meminfo | awk '{print $2}'`
        ramlivre=`grep -F "MemFree:" < /proc/meminfo | awk '{print $2}'`

        # RAM utilizada pelo sistema:
        ramusada=`expr $ramtotal - $ramlivre`

        let porc_ut="$ramusada * 100 / $ramtotal"
        echo "Maximo de consumo de RAM considerado= $perc_max %"

        if [ $porc_ut -gt $perc_max ]
        then
        #Caso a memoria esteja acima do uso considerado normal,sera enviado um email ao administrador
                echo "Memoria acima do maximo considerado"
                EnviaEmail
   logger - WGR MF LOG = Email enviado ao Administrador do sistema
        else
                echo "Memoria abaixo do maximo considerado. Usando $porc_ut % "
        fi
   logger - WGR MF LOG = Status da memoria = $porc_ut
        echo "Digite enter para voltar ao Menu Principal"
        read 
   Menu
}

VerificaProc() {
   top -n1
        logger - WGR MF LOG = Verificados os processos mais pesados
   echo "Digite enter para voltar ao Menu Principal"
        read   
Menu
}

VerificaApache() {
   echo "Carregando Informacoes.....aguarde...."
        result=$(nmap -A 127.0.0.1| grep 80)
        echo "$result"
        logger - WGR MF LOG = Status do Apache = $result
   echo "Digite enter para voltar ao Menu Principal"
        read   
Menu
}

EnviaEmail() {
   # Assunto do email

        SUBJECT="***** Problema no servidor *****"

        # Destino
        EMAIL="[email protected]"

        #Arquivo onde ficara armazenada a mensagem
        emailmsg="/tmp/mensagemdeemail.txt"

        #Mensagem de texto
        echo "Problema no servidor" > $emailmsg
        echo "Foi constatado um problema no servidor, favor verificar">>$emailmsg

        #envio do email via /bin/mail
        mail -s "$SUBJECT" "$EMAIL" < $emailmsg
        echo "Mensagem de alerta enviada!"
        echo "Digite enter para voltar ao Menu Principal"
   logger - WGR MF LOG = Email enviado
        read   

} 
Sair() {
   echo
   echo " Finalizando "
   echo
   echo
   exit
}
Menu

Scripts recomendados

rtl8180

Limpar fila de email

script_otimizar_limpeza_Linux_Mint_18-3.sh

Escolhendo os diretorios e fazendo backup com Logs

Comparar datas (muito simples)


  

Comentários
[1] Comentário enviado por cicero.ladeira em 15/12/2011 - 15:00h

Cara,

ficou legal demais...

Parabéns.

[2] Comentário enviado por tylervortex em 28/03/2012 - 15:12h

Mas como rodá-lo a partir do php, se o shell_exec() não envia parâmetro de nome do subdomínio? =(


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts