
#!/bin/bash
binlog_path='/data/mysql/3306/binary'
binlog_path_bak='/bak/db_backup/binlog_backup'
if [ ! -f /dev/shm/.binlog_bak_lock ];then
echo 0 > /dev/shm/.binlog_bak_lock
fi
locked=`cat /dev/shm/.binlog_bak_lock`
if [ $locked -eq 0 ];then
mkdir -p $binlog_path_bak
binlog_list=`ls $binlog_path |grep mysql-bin |grep -v index`
for binlog in $binlog_list;do
binlog_diff=0
if [ -f $binlog_path_bak/$binlog ];then
diff $binlog_path/$binlog $binlog_path_bak/$binlog &>>/dev/null
binlog_diff=$?
fi
if [ ! -f $binlog_path_bak/$binlog ] || [ $binlog_diff -eq 2 ];then
echo 1 > /dev/shm/.binlog_bak_lock
/bin/cp -arf $binlog_path/$binlog $binlog_path_bak/$binlog
#nfs保留60天的binlog备份
/bin/find $binlog_path_bak -mtime +60 | xargs rm -rf
echo 0 > /dev/shm/.binlog_bak_lock
fi
done
fi