Project

gitback

0.0
No commit activity in last 3 years
No release in over 3 years
Provide a list of files and/or directories and gitback will copy them to your git repo, commit and push when there are changes.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 2.4.1
 Project Readme

Gitback

Do you have backups of your production web/mail/db configs? crontabs?

How fast could you configure a production machine if everything was lost?

Gitback allows you to version arbitrary files and/or directories in a git repository. You just need to include the gem and write a brief ruby script that indicates the files/directories you'd like to backup. Then, run the script via cron. Gitback will take care of a adding/commiting/pushing whenever your files are modified.

Requirements

Install

$ gem install gitback

Usage

Here's a basic example of a script using gitback:

require 'rubygems'
require 'gitback'

Gitback::Repository.new '/var/config-backup/' do |repo|
  repo.backup '/opt/nginx/conf/nginx.conf'
  repo.backup '/etc/mysql/'
  repo.backup '/etc/memcached.conf'
  repo.backup '/etc/ssh/sshd_config'
  repo.backup '/var/spool/cron/crontabs/'
end

This will check these files for additions/changes. If a file has been added or changed, gitback will commit it.

For example, the nginx config file would be saved to the following location:

/var/config-backup/opt/nginx/conf/nginx.conf

Notice that '/etc/mysql' is a directory. Gitback accepts directories and will copy everything within that directory into the git repository.

Namespaces

Namespaces are also supported. If you'd like to use the same repository for multiple servers you can specify a namespace like this:

Gitback::Repository.new '/var/config-backup/' do |repo|
  repo.namespace 'server1.domain.com' do
    repo.backup '/opt/nginx/conf/nginx.conf'
  end
end

This will save the file to the following location:

/var/config-backup/server1.domain.com/opt/nginx/conf/nginx.conf

Remote Git Repositories

Gitback is intended to be used with remote git repositories. If your git repository is tracking a remote branch, gitback will push changes to the remote after each commit.

Running Via Cron

There's nothing special about a gitback script. In order for it to backup your files you'll need to run it via the command line. I suggest setting up a cron job to do this for you at regular intervals.

Copyright

Copyright (c) 2010 Bryce Thornton. See LICENSE for details.