#!/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};