Saturday, 5 March 2016

Send Mail If MySQL Replication Failed CentOS



[root@server]# cat /home/sysuser/repl_failover_script/send_mail_on_failover.sh
# trigger mail on replication failover script on 02 Mar 2015
user=root
password='dbpassword'
today=$(date -d '1 day ago' +'%Y%m%d');

echo $'\n'
echo $'\n'

echo $'\n' > /home/sysuser/repl_failover_script/repl_log
echo $'\n' >> /home/sysuser/repl_failover_script/repl_log

mysql -u $user -p$password -v -v -v dbname -e "show slave status \G" | grep -inr "Slave_IO_Running" >> /home/sysuser/repl_failover_script/repl_log
mysql -u $user -p$password -v -v -v dbname -e "show slave status \G" | grep -inr "Slave_SQL_Running" >> /home/sysuser/repl_failover_script/repl_log

echo $'\n'
echo $'\n'

if grep -q -i "No" /home/sysuser/repl_failover_script/repl_log
    then
        echo "Replication has Stopped"
        # mail -s "Replication has STOPPED" namdev.it@gmail.com -c namdev.it@outlook.com -c mail@example.com < /home/sysuser/repl_failover_script/error_msg
        echo "Repliaction has stopped. Attempting to start replication again on: " `date` >> /home/sysuser/repl_failover_script/repl_log
        mysql -u $user -p$password -v dbname -e "Stop Slave" >> /home/sysuser/repl_failover_script/repl_log
        mysql -u $user -p$password -v dbname -e "Start Slave" >> /home/sysuser/repl_failover_script/repl_log
    else
        echo "Replication Is running"
        echo "Replication Is running fine at : " `date` >> /home/sysuser/repl_failover_script/repl_log
        # mail -s "Replication Is running" namdev.it@gmail.com -c namdev.it@outlook.com -c mail@example.com < /home/sysuser/repl_failover_script/error_msg
        # mysql -u $user -p$password -v dbname -e "Show Slave Status \G" | grep -inr "Slave_IO_Running" >> /home/sysuser/repl_failover_script/repl_log
fi

echo $'\n' >> /home/sysuser/repl_failover_script/repl_log
echo $'\n' >> /home/sysuser/repl_failover_script/repl_log


:wq



Now Setup Cron:

*/1 * * * * /bin/sh /home/sysuser/repl_failover_script/send_mail_on_failover.sh >>/home/sysuser/repl_failover_script/cron_repl_log

No comments: