Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- die() {
- ERROR_MESSAGE="Sometning went wrong..."
- if [[ -n "$1" ]]; then
- ERROR_MESSAGE="Error on: $1"
- fi
- logger -t mysqlbackup -s "$ERROR_MESSAGE"
- exit 1
- }
- ########################################
- if [[ ${UID} != 0 ]]; then
- die "Not root!"
- fi
- if [[ -n "$1" ]]; then
- FILE_DIR="$1"
- else
- die "Unknown dir!"
- fi
- FILE_COUNTS=0
- if [[ -n "$2" ]]; then
- FILE_COUNTS=$(expr 1 + $2)
- fi
- ########################################
- HOST_NAME="$(hostname)"
- if [[ -z "${HOST_NAME}" ]]; then
- HOST_NAME="unknown"
- fi
- ########################################
- CONFIG="$(mktemp)"
- echo "[mysqldump]" > "${CONFIG}"
- cat /etc/mysql/debian.cnf | grep "host" | head -n1 >> "${CONFIG}" || die "host"
- cat /etc/mysql/debian.cnf | grep "user" | head -n1 >> "${CONFIG}" || die "user"
- cat /etc/mysql/debian.cnf | grep "password" | head -n1 >> "${CONFIG}" || die "password"
- cat /etc/mysql/debian.cnf | grep "socket" | head -n1 >> "${CONFIG}" || die "socket"
- mkdir -p "${FILE_DIR}"
- CURDATE=$(date '+%Y%m%d_%H%M%S')
- mysqldump --defaults-file="${CONFIG}" --all-databases | gzip -7 --rsyncable > "${FILE_DIR}/${HOST_NAME}-mysql-${CURDATE}.sql.gz"
- rm "${CONFIG}"
- ########################################
- if [[ ${FILE_COUNTS} > 0 ]]; then
- OLD_PWD=${PWD}
- cd ${FILE_DIR}
- ls -1 ${HOST_NAME}-mysql-* | tail -n +${FILE_COUNTS} | xargs rm -f 2>&1
- cd ${OLD_PWD}
- fi
Add Comment
Please, Sign In to add comment