Here is the script to backup Mysql database using MEB.
copy this below code in to script and edit to the correct directory paths and run it.
#########################################################################
#
COMMAND=$0
PGM=${COMMAND##*/}
DATE=$(date "+%Y%m%d%H")
hostname=`hostname -s`
MAILTO=XXXxx@gmail.com
PWD=/opt/scripts # put script dir path if you want to run from "crontab"
#PWD=`pwd` # enable this and disable above one if you want to run in nohup mode.
repdir=$PWD
LOG=$repdir/dblogs
##*********** Below list of changes are req:
conf_file=/etc/my.cnf
BACKUP_USER=root
BACKUP_PASS=`cat /opt/.orapasswd/.backupusr`
bkp_type=$1
ret_time=$2
Logfile=mysql-MEB_"$bkp_type"_"$hostname"_$DATE.log
log_ret=15
echo " started $DATE" >>$LOG/$Logfile
#### Changes are done:
##***************** run Active file:
if [ -f $LOG/active_file ]
then
echo "previous mysql backup is still running. confirm before running again" | mailx -s "Mysql-Backup: $hostname - Failed for $bkp_type backup" $MAILTO
exit 0
fi
## Validate Log directory:
if [ ! -d $LOG ]; then
mkdir $LOG
else
/usr/bin/find $LOG -type f -mtime +$log_ret -exec rm -f {} \;
fi
#******* Checking the input parameter:
if [ $# = 0 ]
then
echo "Please enter the first parameter for backup type (FULL) and second parameter as a number in days for backup retention" |tee -a $LOG
exit 1
fi
##************ setting the backup-dir path for the Backup location:
bkup_dir=/backup_folder/$hostname/meb/$bkp_type
if [ ! -d $bkup_dir ]; then
mkdir -p $bkup_dir
fi
echo " Mysql-backup: $bkp_type files are located under $bkup_dir" >>/$LOG/$Logfile
echo ""
####### End of backup-dir path setup
touch $LOG/active_file
##************ Running Backup from above inputs:
echo "Running $bkp_type Backup from above inputs"
if [ $bkp_type = 'FULL' ] ; then
/opt/mysql/meb-4.1/bin/mysqlbackup --defaults-file=$conf_file --port=3306 --protocol=tcp --user=$BACKUP_USER --password=$BACKUP_PASS --with-timestamp --backup-dir=$bkup_dir backup-and-apply-log >>$LOG/$Logfile 2>&1
else
echo "Incorrect input parameter - please enter a correct backup type" |tee -a $LOG/$Logfile
fi
####
##********* check Any errors in the logfile:
error_chk=$(cat $LOG/$Logfile | awk 'BEGIN{buf=""} /[0-9]:[0-9][0-9]:[0-9]/{buf=$0} /WARNING|warnings|ERROR/{print buf,$0}' | wc -l)
if [[ $error_chk -eq 0 ]]
then
echo "Mysql Backup for backup-type $bkp_type completed successfully - no errors $error_chk " >>$LOG/$Logfile
else
echo "Mysql Backup for backup-type $bkp_type was unsuccessful - errors $error_chk. check and run again" >>$LOG/$Logfile
echo "Mysql Backup for backup-type $bkp_type completed but has errors - $error_chk . please check" | mailx -s "Mysql-Backup - $bkp_type : Completed with errors" $MAILTO
fi
####
##******** remove run active file:
if [ -f $LOG/active_file ]
then
rm $LOG/active_file
echo " removed run-active file" |tee -a $LOG/$Logfile
fi
echo "Mysql-backup: All steps are done" |tee -a $LOG/$Logfile
exit 0;
###################################################
hope this helps........................................
Great post.
ReplyDeleteMysql DBA Training