A wrapper tool packaged as a container, that runs as a job, creates and restores backups of various databases, and uploads them to an S3 bucket.
docker run --it --rm -v /path/to/backups:/backups someengineering/fixbackup --type daily ...
usage: fixbackup [-h] [--backup-directory BACKUP_DIRECTORY] [-n ENVIRONMENT] [--sleep] [--restore] [--verbose | --trace | --quiet] [--s3-bucket S3_BUCKET] --type {daily,weekly,monthly,yearly} [--set-lifecycle-policy] [--redis-host REDIS_HOST]
[--redis-port REDIS_PORT] [--redis-username REDIS_USERNAME] [--redis-password REDIS_PASSWORD] [--redis-database-number REDIS_DATABASE_NUMBER] [--redis-cli-args REDIS_CLI_ARGS] [--redis-tls] [--redis-tls-insecure] [--mysql-host MYSQL_HOST]
[--mysql-port MYSQL_PORT] [--mysql-user MYSQL_USER] [--mysql-password MYSQL_PASSWORD] [--mysql-database MYSQL_DATABASE] [--mysqldump-args MYSQLDUMP_ARGS] [--pg-host PG_HOST] [--pg-port PG_PORT] [--pg-user PG_USER] [--pg-password PG_PASSWORD]
[--pg-database PG_DATABASE] [--pg-dump-args PG_DUMP_ARGS] [--arangodb-host ARANGODB_HOST] [--arangodb-port ARANGODB_PORT] [--arangodb-username ARANGODB_USERNAME] [--arangodb-password ARANGODB_PASSWORD] [--arangodb-database ARANGODB_DATABASE]
[--arangodump-args ARANGODUMP_ARGS] [--arangodb-tls]
Fix Database Backup and Restore System
options:
-h, --help show this help message and exit
--backup-directory BACKUP_DIRECTORY
Directory where backups are created
-n ENVIRONMENT, --name ENVIRONMENT
Name of the environment
--sleep Don't do anything, just sleep forever --restore Restore databases from directory --verbose, -v Verbose logging --trace Trage logging --quiet Only log errors --s3-bucket S3_BUCKET AWS S3 bucket name --type {daily,weekly,monthly,yearly} Type of backup to create. --set-lifecycle-policy Set S3 bucket object lifetime policy --redis-host REDIS_HOST Redis host --redis-port REDIS_PORT Redis port --redis-username REDIS_USERNAME Redis username --redis-password REDIS_PASSWORD Redis password (if any) --redis-database-number REDIS_DATABASE_NUMBER Redis database number --redis-cli-args REDIS_CLI_ARGS Extra arguments to pass to redis-cli --redis-tls Redis uses TLS --redis-tls-insecure Redis uses TLS without verifying the certificate --mysql-host MYSQL_HOST MySQL host --mysql-port MYSQL_PORT MySQL port --mysql-user MYSQL_USER MySQL user --mysql-password MYSQL_PASSWORD MySQL password --mysql-database MYSQL_DATABASE MySQL database --mysqldump-args MYSQLDUMP_ARGS Extra arguments to pass to mysqldump --pg-host PG_HOST PostgreSQL host --pg-port PG_PORT PostgreSQL port --pg-user PG_USER PostgreSQL user --pg-password PG_PASSWORD PostgreSQL password --pg-database PG_DATABASE PostgreSQL database --pg-dump-args PG_DUMP_ARGS Extra arguments to pass to pg_dump --arangodb-host ARANGODB_HOST ArangoDB host --arangodb-port ARANGODB_PORT ArangoDB port --arangodb-username ARANGODB_USERNAME ArangoDB username --arangodb-password ARANGODB_PASSWORD ArangoDB password --arangodb-database ARANGODB_DATABASE ArangoDB database to dump --arangodump-args ARANGODUMP_ARGS Extra arguments to pass to arangodump --arangodb-tls ArangoDB uses TLS