Simple cron-based GitHub backup system using Git::Megapull
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


github-backup is a simple shellscript that uses the Git::Megapull CPAN module to backup all the GitHub repositories of one or more Unix users on your system.


Installing Git::Megapull

This backup script depends on the Git::Megapull CPAN module (version 0.101750 or later) to do its work. To install it do:

cpanm -S Git::Megapull

Installing github-backup

To install this program arrange for it to be unpacked in your /etc, you can do this by checking it out from git:

cd /etc
sudo git clone git://

Or if your /etc itself is in git (as mine is) you can add it as a submodule:

cd /etc
sudo git submodule add git:// github-backup
git commit -m"Add github-backup submodule"

Running it periodically

To run github-backup periodically simply run it via cron(8). On systems which have configured /etc/cron.daily directory simply do:

sudo ln -s /etc/github-backup/github-backup /etc/cron.daily/github-backup

User installation

If you've just created a user avar on your system and want to back up his GitHub repositories you should first. set the GitHub token for that user, then as the root user do:

# . /etc/github-backup/github-backup.conf
# mkdir avar
# chown avar avar

And you're done, github-backup will run the equivalent of sudo -u avar -H git config github.token to grab the token for avar and backup all of his repositories.


Please report any to the github-backup issue tracker on GitHub.


Ævar Arnfjörð Bjarmason