mirror of
https://github.com/jkaninda/mysql-bkup.git
synced 2025-12-06 05:29:41 +01:00
feat: add database backup verification
This commit is contained in:
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
push: true
|
||||
file: "./src/docker/Dockerfile"
|
||||
file: "./src/Dockerfile"
|
||||
platforms: linux/amd64,linux/arm64
|
||||
tags: |
|
||||
"${{env.BUILDKIT_IMAGE}}:v0.3"
|
||||
|
||||
4
build.sh
4
build.sh
@@ -6,6 +6,6 @@ if [ $# -eq 0 ]
|
||||
tag=$1
|
||||
fi
|
||||
|
||||
docker build -f src/docker/Dockerfile -t jkaninda/mysql-bkup:$tag .
|
||||
docker build -f src/Dockerfile -t jkaninda/mysql-bkup:$tag .
|
||||
|
||||
docker compose up -d
|
||||
#docker compose up -d
|
||||
@@ -13,7 +13,7 @@ ARG DEBIAN_FRONTEND=noninteractive
|
||||
ENV VERSION="v0.3"
|
||||
|
||||
RUN apt-get update -qq
|
||||
RUN apt-get install build-essential libcurl4-openssl-dev libxml2-dev mime-support -y
|
||||
#RUN apt-get install build-essential libcurl4-openssl-dev libxml2-dev mime-support -y
|
||||
RUN apt install s3fs mysql-client supervisor cron -y
|
||||
|
||||
# Clear cache
|
||||
@@ -34,4 +34,3 @@ RUN ln -s /usr/local/bin/mysql_bkup.sh /usr/local/bin/bkup
|
||||
|
||||
RUN mkdir /backup
|
||||
WORKDIR /backup
|
||||
#VOLUME /backup
|
||||
@@ -18,7 +18,7 @@ export S3_PATH=/mysql-bkup
|
||||
export TIMEOUT=60
|
||||
export EXECUTION_MODE="default"
|
||||
export SCHEDULE_PERIOD="0 1 * * *"
|
||||
export FILE_COMPRESION=true
|
||||
export DISABLE_COMPRESION=false
|
||||
usage_info()
|
||||
{
|
||||
echo "Usage: \\"
|
||||
@@ -131,6 +131,11 @@ flags()
|
||||
[ $# = 0 ] && error "No timeout specified"
|
||||
export TIMEOUT="$1"
|
||||
shift;;
|
||||
(--disable-compression)
|
||||
shift
|
||||
[ $# = 0 ] && error "No disable-compression specified"
|
||||
export DISABLE_COMPRESION="$1"
|
||||
shift;;
|
||||
(-h|--help)
|
||||
help;;
|
||||
(-V|--version)
|
||||
@@ -148,13 +153,16 @@ backup()
|
||||
fatal "Please make sure all required environment variables are set "
|
||||
else
|
||||
## Test database connection
|
||||
test_database_connection
|
||||
##mysql -h ${DB_HOST} -P ${DB_PORT} -u ${DB_USERNAME} --password=${DB_PASSWORD} ${DB_NAME} -e"quit"
|
||||
|
||||
test_database_connection
|
||||
## Backup database
|
||||
mysqldump -h ${DB_HOST} -P ${DB_PORT} -u ${DB_USERNAME} --password=${DB_PASSWORD} ${DB_NAME} | gzip > ${STORAGE_PATH}/${DB_NAME}_${TIME}.sql.gz
|
||||
echo "$TIME: ${DB_NAME}_${TIME}.sql.gz" | tee -a "${STORAGE_PATH}/history.txt"
|
||||
info "Database has been saved"
|
||||
export BK_FILE_NAME="${DB_NAME}_${TIME}.sql.gz"
|
||||
mysqldump -h ${DB_HOST} -P ${DB_PORT} -u ${DB_USERNAME} --password=${DB_PASSWORD} ${DB_NAME} | gzip > ${STORAGE_PATH}/$BK_FILE_NAME
|
||||
if [[ $? -eq 0 ]];then
|
||||
echo $BK_FILE_NAME | tee -a "${STORAGE_PATH}/history.txt"
|
||||
info "Database has been backed up"
|
||||
else
|
||||
fatal "An error occurred during the backup"
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user