30 lines
1.0 KiB
Bash
Executable File
30 lines
1.0 KiB
Bash
Executable File
# sql-backup.sh
|
|
#!/bin/bash
|
|
|
|
# Use your health check url
|
|
HEALTHCHECK_URL="https://healthchecks.io/ping/{uuid}"
|
|
|
|
DBNAME=doggo_kaufen
|
|
DATE=$(date +"%Y%m%d_%H%M%S")
|
|
SQLFILE=$DBNAME-${DATE}.sql
|
|
BACKUP_PATH=/root/s3_backup/doggo.kaufen/sql
|
|
|
|
curl --retry 3 "$HEALTHCHECK_URL/start"
|
|
|
|
#mysqldump --opt --user={user} --password="{password}" $DBNAME > /root/s3_backup/doggo.kaufen/sql/$SQLFILE
|
|
docker-compose -f /root/docker/doggo.kaufen/docker-compose.yml exec db /usr/bin/mysqldump -u root --password={password} $DBNAME > $BACKUP_PATH/$SQLFILE
|
|
gzip $BACKUP_PATH/$SQLFILE
|
|
|
|
# Restic backup
|
|
export RESTIC_REPOSITORY="s3:https://eu-central-1.linodeobjects.com/{BucketName}"
|
|
export RESTIC_PASSWORD="{RESTIC_PASSWORD}"
|
|
export AWS_ACCESS_KEY_ID="{AWS_ACCESS_KEY_ID}"
|
|
export AWS_SECRET_ACCESS_KEY="{AWS_SECRET_ACCESS_KEY}"
|
|
|
|
restic backup $BACKUP_PATH --tag doggo_kaufen_sql
|
|
restic forget --tag doggo_kaufen_sql --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
|
|
|
|
# Remove local backup files
|
|
rm -f $BACKUP_PATH/$SQLFILE.gz
|
|
|
|
curl --retry 3 "$HEALTHCHECK_URL" |