#/usr/bin/bash
user=root
passwd=123456

mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep HA_ERR_FOUND_DUPP_KEY 1>/dev/null

if [ $? -eq 0 ];then

#sql状态
sql_status=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep 'Slave_SQL_Running' | awk '{print $2}' | head -1`

#错误id
error_id=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep Last_Errno | awk '{print $2}'`

if [ "$sql_status" == No ] && [ "$error_id" == 1062 ];then

#值
value=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep Last_Error | awk '/Duplicate entry/' | awk -F "'" '{print $2}'`

#数据库名
db_name=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep Last_Error | awk '{print $9}' | awk -F "." '{print $1}'`

#表名
table_name=`mysql -u$user -p$passwd -e "show slave status\G" 2>/dev/null | grep Last_Error | awk '{print $9}' | awk -F "." '{print $2}' | awk -F";" '{print $1}'`

#字段名
column=`mysql -u$user -p$passwd -e "desc $db_name.$table_name" 2>/dev/null | grep PRI | awk '{print $1}'`

#删除错误数据
mysql -u$user -p$passwd -e 2>/dev/null "delete from $db_name.$table_name where $column = $value;"

if [ $? -eq 0 ];then
echo "delete from $db_name.$table_name where $column = $value; $(date "+%Y-%m-%d %H:%M:%S")" >> /home/out_syncfile/$(date "+%Y-%m-%d").log
fi

#开启同步
mysql -u$user -p$passwd -e 2>/dev/null "start slave;"
sleep 0.05
fi
fi