s4ros icon

backup_mysql_docker

s4ros | PRO | 10/31/20 04:42:15 PM UTC | 0 ⭐ | 2311 👁️ | Never ⏰ | []
Bash |

620 B

|

None

|

0 👍

/

0 👎

#!/bin/bash
 
if [[ -z $2 ]]; then
    cat <<- EOT
Usage: $0 [dst_dir] <container_name>
 
dst_dir - destination dir, where to save backups
 
container_name - name of the mysql docker container
 
EOT
fi
 
BASEDIR=$(dirname $0)
DEST_DIR=${1:-${BASEDIR}}
CONTAINER_NAME=$2
TIMESTAMP=$(date "+%s")
DB_NAME=$(docker exec ${CONTAINER_NAME} env | grep MYSQL_DATABASE | cut -d '=' -f 2)
 
# dump command chain
docker exec ${CONTAINER_NAME} \
    bash -c "mysqldump -u root --password=\${MYSQL_ROOT_PASSWORD} \${MYSQL_DATABASE}" 2> /dev/null | \
    bzip2 -c -9 > ${DEST_DIR}/${CONTAINER_NAME%%_*}_${DB_NAME}_${TIMESTAMP}.sql.bz2

Comments