#!/bin/bash # Change to the script's directory & create directory cd $(dirname "$(readlink -f "$0")") mkdir -p ./dbdumps # Start mysql service docker compose --log-level ERROR up -d mysql # Wait i=20 while (( i >= 1 )); do sleep 10 echo -ne echo -ne "Wait for DB to initialize. Creating Dump in $(( i-- )) seconds ... "'\r' done # Load database name + root password source .env # Delete old Backups find ./dbdumps/* -atime +7 -exec rm {} \; # Dump Table Definitions docker compose exec -T mysql mysqldump -u root --password=$MYSQL_ROOT_PASSWORD --no-data $MYSQL_DATABASE > ./dbdumps/`date +\%Y\%m\%d-\%H\%M`-$MYSQL_DATABASE-defs.sql ## Dump Content docker compose exec -T mysql /usr/bin/mysqldump -u root \ --password=$MYSQL_ROOT_PASSWORD \ --no-create-info \ --ignore-table=zabbix.acknowledges \ --ignore-table=zabbix.alerts \ --ignore-table=zabbix.auditlog \ --ignore-table=zabbix.auditlog_details \ --ignore-table=zabbix.event_recovery \ --ignore-table=zabbix.event_suppress \ --ignore-table=zabbix.event_tag \ --ignore-table=zabbix.events \ --ignore-table=zabbix.history \ --ignore-table=zabbix.history_log \ --ignore-table=zabbix.history_str \ --ignore-table=zabbix.history_str_sync \ --ignore-table=zabbix.history_sync \ --ignore-table=zabbix.history_text \ --ignore-table=zabbix.history_uint \ --ignore-table=zabbix.history_uint_sync \ --ignore-table=zabbix.item_rtdata \ --ignore-table=zabbix.problem \ --ignore-table=zabbix.problem_tag \ --ignore-table=zabbix.task \ --ignore-table=zabbix.task_acknowledge \ --ignore-table=zabbix.task_check_now \ --ignore-table=zabbix.task_close_problem \ --ignore-table=zabbix.task_remote_command \ --ignore-table=zabbix.task_remote_command_result \ --ignore-table=zabbix.trends \ --ignore-table=zabbix.trends_uint \ $MYSQL_DATABASE \ | gzip --rsyncable > ./dbdumps/`date +\%Y\%m\%d-\%H\%M`-$MYSQL_DATABASE.sql.gz