1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #!/bin/bash
BAK_HOME=/data2/backup/soc-oper-db ARCHIVE_DIR=$BAK_HOME/archives if [ ! -d $ARCHIVE_DIR ];then mkdir -p $ARCHIVE_DIR;fi
DB_USER=xxxxx DB_PASS=xxxxxxx BACK_CMD=/bin/mariabackup
if [ ! -d $BAK_HOME ];then mkdir -p $BAK_HOME;fi
LOG_FILE="$BAK_HOME/logs/db_backup.log.`date +%F`" TARGET_DIR=$BAK_HOME/"`date +%F`" if [ ! -d $TARGET_DIR ];then mkdir -p $TARGET_DIR;fi
echo LOG_FILE=$LOG_FILE echo "db_backup start at `date +%'F-%T'`" > $LOG_FILE
#Backup /etc/my.cnf mkdir -p $TARGET_DIR/my_cnf.bak /bin/cp -rf /etc/my.cnf* $TARGET_DIR/my_cnf.bak
#Backup mariadb ulimit -n 65535 $BACK_CMD --backup --target-dir="$TARGET_DIR" -u$DB_USER -p $DB_PASS >> $LOG_FILE 2>&1 if [ $? -eq 0 ];then cd $BAK_HOME bak_dir=`find ./ -maxdepth 1 -mmin -300 | awk -F/ '{print $NF}' | grep ^20 | head -1` tar zcvf $ARCHIVE_DIR/$HOSTNAME_insecprod_db_$bak_dir.tar.gz $bak_dir >> $LOG_FILE 2>&1 #clear History backup find $BAK_HOME -maxdepth 1 -mmin +720 | grep -E '/20[0-9]{2}-[0-9]{2}-[0-9]{2}$' | xargs rm -rf find $BAK_HOME -name "$HOSTNAME_insecprod_db_*.tar.gz" -atime +3 | xargs rm -rf fi
echo "db_backup finish at `date +%'F-%T'`" >> $LOG_FILE
|