Adicionar e Remover Dominios Virtuais do Apache
Publicado por Gardy Erickson de Padua (última atualização em 15/12/2011)
[ Hits: 10.543 ]
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!
#!/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
Script de compilação do kernel
Script que calcula os End.Rede e Broadcast
organização_topografia terceiro arquivo
urlDecoder.sed: Decodificar de URL's
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Instalação Uefi com o instalador clássico do Mageia [RESOLVIDO] (2)
Melhorando a precisão de valores flutuantes em python[AJUDA] (11)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)