Code Climate

McDuck

McDuck

Single "file" backup tool with versions to S3.

The objective is to backup individual files with versions on S3, for example keeping database backups.

Usage: mc_duck OPTIONS
    -k, --aws-key-id KEY_ID          AWS key id
    -a, --aws-access-key ACCESS_KEY  AWS access key
    -b, --s3-bucket BUCKET_NAME      S3 bucket name
    -v, --verbose                    Verbose
    -f, --file_name REMOTE_FILENAME  Target folder in s3, e.g. 'production'
    --keep [10]                      Number of versions to keep

Example:

pg_dump ... | gzip | mc_duck -k $AWS_KEY -a $AWS_SECRET -b my_bucket -f backups/postgres.gz

this will create inside the bucket:

  /backups/postgres.gz/TIMESTAMP

the --keep option controls how many versions do you want to keep, by default it keeps 10.

Theoretically it can backup anything you can pipe through the command line.

Other examples:

  • cat big_backup.gz | mc_duck -k $AWS_KEY -a $AWS_SECRET -b my_bucket -f backups/postgres.gz
  • tar cz | mc_duck -k $AWS_KEY -a $AWS_SECRET -b my_bucket -f backups/postgres.gz