Adicionar e Remover Dominios Virtuais do Apache

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

[ Hits: 10.773 ]

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="administrator@localhost.com"

        #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

Atualiza núcleo do sistema para Kernel 4.4 (Ubuntu)

Script simples para pegar informações sobre placa de rede

Verifica os maiores arquivos no diretório informado

Alteração rápida de permissões, e usuários

IP e MAC Address


  

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts