All pastes #507198 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-05-24 12:48 UTC
rendered paste body
#!/bin/tcsh

##################################################################################
# Script de Manutencao do MySQL                                                  #
# Criado em 19/05/2.006 por Joao Ricardo P. Mendes                               #
# Email: joao.mendes@laq.com.br                                                  #
# Qualquer alteracao deve ser devidamente documentada!!!!                        #
# Roda-lo periodicamente pelo cron                                               #
# Tenha sempre o backup do MySQL antes de rodar esse script                      #
##################################################################################

##########################################################################################################
# Variaveis de ambiente:                                                                                 #
#                                                                                                        #
# myisamchk_bin:                        Binario do myisamchk                                             #
# myisamchk_flags:                      Flags do myisamchk. Consulte o manual: (http://dev.mysql.com)    #
# mysql_data_dir:                       Diretorio do Banco De Dados                                      #
# myisam_verify_tables:                 Tabelas a verificar. Adicionar sempre o *.MYI no final           #
# mysql_stop_cmd:                       Script para interromper o MySQL                                  #
# mysql_start_cmd:                      Script para iniciar o MySQL                                      #
# mysql_server_daemon:                  Binario do Servidor MySQL                                        #
# tmp_file:                             Arquivo de Log                                                   #
# num_tentativas:                       Numero de tentativas de interromper o MySQL. A Manutencao soh    #
#                                       eh executada se o MySQL estiver parado                           #
# email:                                Email para enviar o resultado da rotina                          #
##########################################################################################################


set myisamchk_bin="/usr/local/bin/myisamchk";
set myisamchk_flags="-r -s --sort-index --sort_buffer_size=16M";
set mysql_data_dir="/home/databases/mysql/";
set mysql_verify_tables="/*/*.MYI";
set mysql_stop_cmd="/usr/local/etc/rc.d/mysql-server.sh stop";
set mysql_start_cmd="/usr/local/etc/rc.d/mysql-server.sh start";
set mysql_server_daemon="mysqld"
set tmp_file="/tmp/manutencao_mysql.txt";
set num_tentativas=0;
set email="suporte@laq.com.br";

rm -rf ${tmp_file};
touch ${tmp_file};

while (`ps aux | grep ${mysql_server_daemon} | grep -v grep | wc -l` != 0 )
        if( ${num_tentativas} <= 10 ) then
                ${mysql_stop_cmd};
        else
                echo "Problemas para encerrar o servidor MySQL." >> ${tmp_file};
                echo "Rotina de Backup nao concluida com sucesso." >> ${tmp_file};
                cat ${tmp_file} | mail -s "Problemas na Manutencao do MySQL" ${email};
                exit
        @ num_tentativas++;
end

${myisamchk_bin} ${myisamchk_flags} ${mysql_data_dir}${mysql_verify_tables} >> ${tmp_file};

if(`cat ${tmp_file} | wc -l` != 0) then
        cat ${tmp_file} | mail -s "Problemas na Manutencao do MySQL" ${email};
else
        echo "Manutencao do MySQL executada com sucesso" >> ${tmp_file}
        cat ${tmp_file} | mail -s "Manutencao MySQL - `date +%d/%m/%y`" ${email};
endif

${mysql_start_cmd};