Нотификатор окончания запроса MySQL

2 views
Skip to first unread message

A4

unread,
Sep 18, 2007, 6:38:46 AM9/18/07
to ua_mysql
умаю любому, кто хоть как-то работает с СУБД MySQL, приходилось
выполнять запросы, которые обрабатывают огромные массивы данных и в
результате их время выполнения достигает нескольких часов, а иногда и
суток.
Чаще всего без предварительных тестов оценить время выполнения такого
запроса нереально, а ещё чаще такие тесты проводить некогда.
Потому в какой-то момент я написал небольшой нотификатор, какой
уведомляет меня по емайл об окончании выполнения такого запроса:

#!/bin/sh
my_user='my-mysql-user'
my_pswd='my=mysql-passwd'

pid=$1
if [ "$pid" = "" ]
then
echo "Usage: $0 "
exit
fi

echo Waiting for process $pid
qty=`mysqladmin -u$my_user -p$my_pswd processlist | grep $pid | grep -
c Query`
while [ $qty -gt 0 ]
do
qty=`mysqladmin -u$my_user -p$my_pswd processlist | grep $pid |
grep -c Query`
echo -n "."
sleep 10
done

date | mail -s "MySQL: Connection-Id: $pid DONE" $2
echo "Done"

запускается просто:
./mysql_notifier Connection-Id email
Где
Conection-Id - ID подключения в каком исполняется запрос (можно узнать
командой show processlist)
email - Адрес, на который прийдет письмо-уведомление об окончании
исполнения.

Если будут вопросы по работе скрипта - пишите, отвечу.

http://voituk.kiev.ua/2007/05/06/mysql-query-finish-notifier/

Reply all
Reply to author
Forward
0 new messages