#!/bin/bash if [ ! $1 -a $2 -a $3 ] then echo "Wrong parameter count." exit 1 fi ##################### # PARAMETER # ##################### SERVER=`echo $1 | awk -F:: '{ print $2 }' | awk -F: '{ print $1 }'` PORT=`echo $1 | awk -F:: '{ print $2 }' | awk -F: '{ print $2 }'` DATABASE=`echo $1 | awk -F:: '{ print $3 }'` USER=`echo $1 | awk -F:: '{ print $4 }'` PASSWORD=`echo $1 | awk -F:: '{ print $5 }'` SOCKET=`echo $1 | awk -F:: '{ print $6 }'` TARGETDIR=$2 TSTAMP=`date +%Y%m%d` JOBNAME=$3 ################### # BACKUP # ################### if [ -d $TARGETDIR ] then # Set Port if [ "$PORT" = "" -o "$PORT" = "0" ] then PORT=3306 fi # Check for existing backup file if [ -f "${TARGETDIR}${JOBNAME}_${TSTAMP}.sql" ] then suffix=2 while [ -f "${TARGETDIR}${JOBNAME}_${TSTAMP}_${suffix}.sql" ] do suffix=`expr $suffix + 1` done BACKUPFILE="${TARGETDIR}${JOBNAME}_${TSTAMP}_${suffix}.sql" else BACKUPFILE="${TARGETDIR}${JOBNAME}_${TSTAMP}.sql" fi if [ "$SOCKET" != "" ] then #mysqldump -n -B $DATABASE -u $USER -p${PASSWORD} -S $SOCKET > $BACKUPFILE 2> ${BACKUPFILE}.err mysqldump -n -u $USER -p${PASSWORD} -S $SOCKET -h $SERVER $DATABASE > $BACKUPFILE 2> ${BACKUPFILE}.err else #mysqldump -n -B $DATABASE -u $USER -p${PASSWORD} -P $PORT > $BACKUPFILE 2> ${BACKUPFILE}.err mysqldump -n -u $USER -p${PASSWORD} -P $PORT -h $SERVER $DATABASE > $BACKUPFILE 2> ${BACKUPFILE}.err fi if [ $? -eq 0 ] then echo Dump $BACKUPFILE created if [ -f ${BACKUPFILE}.err ] then rm ${BACKUPFILE}.err &> /dev/null fi exit 0 else cat ${BACKUPFILE}.err if [ -f $BACKUPFILE ] then rm $BACKUPFILE &> /dev/null fi if [ -f ${BACKUPFILE}.err ] then rm ${BACKUPFILE}.err &> /dev/null fi exit 1 fi else echo "Check target and source directories!" exit 1 fi