Skip to content

someengineering/fixbackup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2f6d203 · Jul 14, 2024

History

22 Commits
Dec 13, 2023
Jul 14, 2024
Oct 12, 2023
Oct 12, 2023
Oct 12, 2023
Jul 14, 2024
Oct 12, 2023
Oct 12, 2023
Oct 12, 2023
Jul 14, 2024
Oct 12, 2023
Oct 12, 2023
Jul 14, 2024
Jul 14, 2024
Jul 14, 2024
Oct 12, 2023
Jul 14, 2024

Repository files navigation

fixbackup - Fix Database Backup and Restore System

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

docker run --it --rm -v /path/to/backups:/backups someengineering/fixbackup --type daily ...

Usage

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