#!/bin/sh set -o pipefail PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin #--------------------------------------------------- # (1) set up all the mysqldump variables FILE=$1 USER=$2 PASS=`echo "$3" | base64 --decode` ### file should be in gz format filename=$(basename "$FILE") directory=$(dirname "$FILE") extension="${filename##*.}" if [ "$extension" != "gz" ] then echo "** You should specify a gz file" exit 1 fi if [ ! -d "$directory" ] then # max 1 level mkdir "$directory" if [ "$?" -ne "0" ] then echo "** Error: something went wrong in creating directory : ${directory}" exit 1 fi fi # (2) in case you run this more than once a day, remove the previous version of the file unalias rm 2> /dev/null rm ${FILE} 2> /dev/null rm ${FILE}.gz 2> /dev/null # (3) do the mysql database backup (dump) # use this command for a database server on localhost. add other options if need be. if [ ! "${PASS}" ] then mysqldump --opt --user=${USER} --all-databases | gzip > ${FILE} if [ "$?" -eq 0 ] then echo "** Success" else echo "** Mysqldump encountered a problem look in database.err for information" exit 1 fi else mysqldump --opt --user=${USER} --password=${PASS} --all-databases |gzip > ${FILE} if [ "$?" -eq 0 ] then echo "** Success" else echo "** Mysqldump encountered a problem look in database.err for information" exit 1 fi fi ## check size FILESIZE=`stat -c%s "${FILE}"` if [ "${FILESIZE}" -le "100000" ] then echo "** Size of generated file quite small. Please check" ls -l ${FILE} exit 1 fi # (5) show the user the result echo "${FILE} was created:" ls -l ${FILE}
SCHELSTRAETE.ORG
I.T. minded