GithubHelp home page GithubHelp logo

backup-buddy's Introduction

Backup-Buddy

Backup your things with Rsync and NodeJS!

Backup-Buddy is a convenience wrapper written in Node that uses Rsync to asynchronously back up your files and folders in parallel. It's super quick!

How It Works

Backup-buddy is a program written in NodeJS that parses a yaml file, constructs a list of arguments for rsync to run, and executes rsync processes for each backup path listed. This means if you have 10 folders to back up, Backup-buddy will invoke 10 rsync processes at the same time. Use with care!

Backup-buddy's uses yaml definition files to build commands that rsync will use. An example of a job file can be found here.

How To Use

From the terminal, first install it:

npm install -g backup-buddy

backup-buddy my_backup_file.yml

Backup-buddy's behavior should be identical to rsync's.

For example, adding /etc/ or /etc/* will back up all files (including folders & sub-folders) but not the etc folder itself. Adding /etc (without the trailing / or *) will backup the folder and everything inside it.

backup-buddy's People

Contributors

egeexyz avatar

Stargazers

 avatar Kubikk avatar sayantan guha roy avatar Corben Dallas avatar Tulili avatar

Watchers

 avatar Kubikk avatar

backup-buddy's Issues

Make into an actual CLI

Currently, backup buddy is an index file that instantiates a JavaScript object which parses a file.

Turning it into an actual cli makes it so we can check the input to make sure it's a usable file with the proper fields and etc.

Compression is awkward with wildcards

Since the method to compress a folder for backup uses the backup path for the filename, any wildcard (or otherwise extraneous character) is added to the tail-end of the path, it becomes part of the archive name. For example:

backupPaths:
  - /var/log/dmesg*

Will create a file called dmesg*.tar.gz.

The file is still a regular ole tar file, but the name is not what a user would expect.

Backup-buddy should create the destination folder

If you run backup buddy with a job file with a desired destination path that does not exist, backup buddy explodes and stops the process.

Ideally, backup buddy should create the folder and throw an info so the user knows what's going on. Even better would be if that info arrived at the end of the process so it doesn't get lost in the noise.

Also, a failed attempt to access a folder should not stop the entire process. Each backup folder runs asynchronously so there should be some try/catching to prevent it from crashing the program.

Generate a job file definition stub

The yaml job file definition is very simple and it should be easy to spit out an example at the cli so that an operator may modify it and make their own from it.

This feature is needed for backup-buddy to become useful for most people, I think. The yaml definition is simple but it's not obvious first without seeing it.

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.