Coder Social home page Coder Social logo

aaronlaw / blobsnap Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tsileo/blobsnap

0.0 2.0 0.0 3.84 MB

BlobSnap: a snapshot-based backup system designed to provide "time machine" like features.

Home Page: http://blobsnap.com

Go 99.84% Makefile 0.16%

blobsnap's Introduction

BlobSnap

BlobSnap is a snapshot-based backup system built on top of BlobStash, designed to provide "time machine" like features.

Features

  • Content addressed (with BLAKE2b as hashing algorithm), files are split into blobs, and retrieved by hash, blobs are deduplicated (incremental backups by default).
  • Read-only FUSE file system to navigate backups/snapshots.
  • Take snapshot automatically every x minutes, using a separate client-side scheduler (provides Arq/time machine like backup).
  • Possibility to incrementally archive blobs to AWS Glacier (see BlobStash docs).
  • Support for backing-up multiple hosts (you can force a different host to split backups into "different buckets").

Draws inspiration from Camlistore and bup (files are split into multiple blobs using a rolling checksum).

Components

Fuse file system

The (read-only) Fuse file system is the most convenient way to restore/navigate snapshots.

There is two magic directories at the root:

  • latest: it contains the latest version of every snapshots/backups.
  • snapshots: it let you navigate for every snapshots, you can see every versions.
$ blobsnap mount /backups
2014/05/12 17:26:34 Mounting read-only filesystem on /backups
Ctrl+C to unmount.
$ ls /backups
tomt0m
$ ls /backups/tomt0m
latest  snapshots
$ ls /backups/tomt0m/latest
writing
$ ls /backups/tomt0m/latest/writing
file1  file2  file3
$ ls /backups/tomt0m/snapshots/writing
2014-05-11T11:01:07+02:00  2014-05-11T18:36:06+02:00  2014-05-12T17:25:47+02:00
$ ls /backups/tomt0m/snapshots/writing/2014-05-11T18:36:06+02:00/writing
file1  file2  file3

Command-line client

blobsnap is the command-line client to perform/restore snapshots/backups.

$ blobsnap put /path/to/dir/or/file

Backup scheduler

The backup scheduler allows you to perform snapshots on a given basis.

The spec expect a cron-like spec, or a custom spec supported by http://godoc.org/github.com/robfig/cron.

The scheduler support a special anacron-like mode, designed for laptop users.

{
    "anacron_mode": false,
    "snapshots": [
        {
            "path": "/path/to/backup",
            "spec": "0 30 * * * *"
        },
        {
            "path": "/path/to/another/backup",
            "spec": "@every 12h"
        }
    ]
}
$ blobsnap sched

Roadmap / Ideas

  • A stats subcommand
  • an Android app to backup Android devices
  • Follow .gitignore file
  • Fill an issue!

Donate!

Flattr this git repo

BTC 1HpHxwNUmXfrU9MR9WTj8Mpg1YUEry9MF4

License

Copyright (c) 2014-2015 Thomas Sileo and contributors. Released under the MIT license.

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.