added mariadb dump to backup
This commit is contained in:
12
podman/files/mysql-dump.service.jinja
Normal file
12
podman/files/mysql-dump.service.jinja
Normal file
@@ -0,0 +1,12 @@
|
||||
{%- set user = salt['pillar.get']('podman:user', 'root') %}
|
||||
{%- set home = salt['user.info'](user).home %}
|
||||
[Unit]
|
||||
Description=Dump all mariadb databases
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User={{ user }}
|
||||
ExecStart={{ home }}/bin/mysql-dump.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
15
podman/files/mysql-dump.sh.jinja
Normal file
15
podman/files/mysql-dump.sh.jinja
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
umask 0077
|
||||
BACKUP_DIR={{ pillar.containers.mariadb.backup_dir }}
|
||||
databases=$(podman exec -it mariadb mysql -B -u root -p{{ pillar.containers.mariadb.env.MYSQL_ROOT_PASSWORD }} -e "SHOW DATABASES;" | tr -d "| " | grep -v Database)
|
||||
|
||||
for db in ${databases[@]}; do
|
||||
db=${db::-1}
|
||||
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] && [[ "$db" != "sys" ]]; then
|
||||
echo "Dumping database: $db"
|
||||
podman exec -it mariadb mysqldump -u root -p{{ pillar.containers.mariadb.env.MYSQL_ROOT_PASSWORD }} --databases $db | gzip > ${BACKUP_DIR}/$(date +"%Y-%m-%d_%H-%M-%S")_$db-sql.gz
|
||||
fi
|
||||
done
|
||||
# Delete the files older than 3 days
|
||||
find $BACKUP_DIR/* -type d -name *-sql.gz -mtime +3 -exec rm {} \;
|
||||
|
9
podman/files/mysql-dump.timer.jinja
Normal file
9
podman/files/mysql-dump.timer.jinja
Normal file
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=Restic backup timer
|
||||
|
||||
[Timer]
|
||||
OnCalendar={{ pillar.containers.mariadb.OnCalendar }}
|
||||
Unit=restic-backup.service
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
Reference in New Issue
Block a user