Skip to content

Instantly share code, notes, and snippets.

@dginhoux
Last active October 29, 2022 12:08
Show Gist options
  • Save dginhoux/7bea4df1c162e9cddef5ae5cef8edb17 to your computer and use it in GitHub Desktop.
Save dginhoux/7bea4df1c162e9cddef5ae5cef8edb17 to your computer and use it in GitHub Desktop.
FROM alpine:3.16.2
MAINTAINER "[email protected]"
LABEL maintainer="[email protected]"
LABEL image="ginhoux.net/mysqldump-cron"
LABEL tag="v4-alpine3.16.2"
LABEL description=""
RUN apk add --no-cache mysql-client tzdata && \
echo "Europe/Paris" > /etc/timezone
ENTRYPOINT ["crond", "-f"]
#!/bin/sh
export dumpdate="$( date "+%Y%m%d_%H%M" )"
# export dumpdate="$( date "+%Y%m%d" )"
export dbport="3306"
export dbuser="ZZZ"
export dbpassword="AAA"
function backup () {
dbhostname="$1"
dbuser="$2"
dbpassword="$3"
dbname="$4"
if [ ! -d /mysqldump/${dbhostname} ]; then mkdir /mysqldump/${dbhostname}; fi
echo ---------------
echo ---------------
echo --------------- START FULL ${dbhostname} ${dbname}
/usr/bin/mysqldump --verbose --skip-comments --user=${dbuser} --password=${dbpassword} --port=${dbport} --host=${dbhostname} --databases ${dbname} --skip-add-drop-table --skip-lock-tables --no-create-db --default-character-set=utf8 --extended-insert | gzip -7 > /mysqldump/${dbhostname}/${dbname}_${dumpdate}_full.sql.gz
echo --------------- END FULL ${dbhostname} ${dbname}
echo --------------- START STRUCTURE ${dbhostname} ${dbname}
/usr/bin/mysqldump --verbose --skip-comments --user=${dbuser} --password=${dbpassword} --port=${dbport} --host=${dbhostname} --databases ${dbname} --skip-add-drop-table --skip-lock-tables --no-create-db --default-character-set=utf8 --no-data | gzip -7 > /mysqldump/${dbhostname}/${dbname}_${dumpdate}_structure.sql.gz
echo --------------- END STRUCTURE ${dbhostname} ${dbname}
echo --------------- START DATA ${dbhostname} ${dbname}
/usr/bin/mysqldump --verbose --skip-comments --user=${dbuser} --password=${dbpassword} --port=${dbport} --host=${dbhostname} --databases ${dbname} --skip-add-drop-table --skip-lock-tables --no-create-db --default-character-set=utf8 --extended-insert --no-create-info | gzip -7 > /mysqldump/${dbhostname}/${dbname}_${dumpdate}_data.sql.gz
echo --------------- END DATA ${dbhostname} ${dbname}
echo ---------------
echo ---------------
}
# backup "blog_mysql" "${dbuser}" "${dbpassword}" "blog"
# backup "elyps_mysql" "${dbuser}" "${dbpassword}" "elyps"
backup "ipam_mysql" "${dbuser}" "${dbpassword}" "phpipam"
# backup "rundeck_mysql" "${dbuser}" "${dbpassword}" "rundeck"
backup "vaultwarden_mysql" "${dbuser}" "${dbpassword}" "vaultwarden"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment