Skip to main content

Backup stuff to S3

Project description

https://pypip.in/v/s3-backups/badge.png Build Status

Overview

S3 Backups provides easy scripts that system administrators can use to backup data from programs likes PostgreSQL, MySQL, Redis, etc.

Installation

To install s3-backups:

$ sudo pip install s3-backups

Usage

Setting Up S3 Backups to Run Automatically Using Cron

PostgreSQL

Add the following to the file /etc/cron.d/postgres_to_s3 and then change the command arguments so the command is using your correct AWS credentials, backup bucket and the correct base S3 Key/base folder.

0 */1 * * * postgres /usr/local/bin/postgres_to_s3.py --AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' --AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' --S3_BUCKET_NAME='my-backup-bucket' --S3_KEY_NAME='postgres/my-awesome-server' --backup --archive

Redis

Add the following to the file /etc/cron.d/redis_to_s3 and then change the command arguments so the command is using your correct AWS credentials, backup bucket and the correct base S3 Key/base folder.

0 */1 * * * root redis_to_s3.py --AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' --AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' --S3_BUCKET_NAME='my-backup-bucket' --S3_KEY_NAME='redis/my-awesome-server' --backup --archive

MySQL

Add the following to the file /etc/cron.d/mysql_to_s3 and then change the command arguments so the command is using your correct AWS credentials, backup bucket and the correct base S3 Key/base folder.

0 */1 * * * root mysql_to_s3.py --AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' --AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' --S3_BUCKET_NAME='my-backup-bucket' --S3_KEY_NAME='redis/my-awesome-server' --backup --archive

Manually Running Backups and Archiving

When running the archive command, S3 Backups moves backups into a year/month sub folder (technically a S3 key) for archives it’s scheduled to keep and removes all other archives. S3 Backups, will use the default schedule unless you you tell it to use a different schedule with the --schedule_module argument.

The default archive schedule will …

  • keep all archives for 7 days

  • keep midnight backups for every other day for 30 days

  • keep the first day of the month forever

  • remove all other files that aren’t scheduled to be kept

To backup PostgreSQL, run the following:

$ postgres_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='postgres/my-awesome-server' \
--backup

To archive PostgreSQL backups, run the following:

$ postgres_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='postgres/my-awesome-server' \
--archive

To backup Redis, run the following:

$ redis_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='redis/my-awesome-server' --backup

To archive Redis, run the following:

$ redis_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='redis/my-awesome-server' --archive

To backup MySQL, run the following:

$ mysql_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='redis/my-awesome-server' --backup

To archive MySQL, run the following:

$ mysql_to_s3.py \
--AWS_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx' \
--AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxx' \
--S3_BUCKET_NAME='my-backup-bucket' \
--S3_KEY_NAME='redis/my-awesome-server' --archive

Contribute

If you’d like to contribute, create an issue to get a dialog going about the feature you want to add. After a plan is place then fork the repository and create your fix or feature on a new branch. When your finished, make a pull request to get your changes pulled in.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

s3-backups-0.1.0.tar.gz (7.8 kB view details)

Uploaded Source

File details

Details for the file s3-backups-0.1.0.tar.gz.

File metadata

  • Download URL: s3-backups-0.1.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for s3-backups-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e0bca1da60245635ae2a19c1810021e6587f7e34eb9ffec42f1e78b509e3919f
MD5 609941bccc66ecab8169e0c941632749
BLAKE2b-256 2b8bb2988b537cad1bfb45cc1fd71032d6b395b218e117a33124794b37eb77b8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page