Coder Social home page Coder Social logo

switchtrue / frosty Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 0.0 255 KB

A lightweigh backup utility that stores back ups as archives in Amazon Glacier or S3 with email reports.

License: MIT License

Go 82.08% HTML 15.37% Makefile 2.55%
amazon-glacier backup-script backup-utility glacier

frosty's People

Contributors

switchtrue avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

frosty's Issues

Zip time not accounted for

The time taken to zip the artifacts is not taken into account, therefore timings can look like:
Command Start Time: 01:00:00
Duration: 2.6m
Transfer Start Time: 01:07:59

Note the gap between the transfer start time and the command start time + duration.

There should be a zip time indicator in the report.

Errors reported only on non-0 exit code

The errors are only reported in the email if the script exits with a non-zero exit code. It is possible for scripts to have errors but not properly terminate with an appropriate exit code leading to a mis-leading email report that the job completed successfully.

For example with the following script, if the frosty user does not have permissions on /svn/svndata the job complete successfully even though an error is thrown in the svnadmin line.

#!/bin/sh

for D in `find /svn/svndata/* -maxdepth 0 -type d`
do
  REPONAME=`basename ${D}`
  svnadmin hotcopy ${D} $FROSTY_JOB_ARTIFACTS_DIR/$REPONAME --clean-logs
done

Bucket Name Conflicts

Currently the bucket name is hard coded to "frosty.backups" AWS enforces that buckets have unique names across the entirety of S3. As such frosty is going to error if more than one person uses it.

It would be good if the bucket name could be configuration in the .frosty.config file and if not found here then is should fallback to a sensible default such as frosty.backups..

Stream files to S3/glacier

At the moment Frosty requires the configuration to create files in a particular location and only once they are written are they uploaded to S3. This means that if you have a 50Gb database you need 50Gb to store it locally before uploading. Supporting streams would remove this requirement.

Move S3 object toGlacier

S3 lifecycle policies support the ability to move an object to glacier after a certain amount of time. It would be good if Frosty could manage this via the frosty.config.

Note: This is still currently possible if you set up the bucket in S3 manually and then don't include any lifecycle config in the frosty.config file. With no lifecycle policy in the config Frosty just uses whatever is already pre-configured in AWS.

Better handling of errors.

No error is reported if the script does not have execute permissions, simply the job is marked as failed with no explanation.

This probably raises issues around the reporting of other errors too and a thorough audit should be carried out.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.