Simple Backups

Downloads: 5791
Category: Plugin
Compatible with: GetSimple 3.1 - 3.1

Last Updated: April 19, 2012
Tags: automatic backups simplebackups ftp s3 email schedule cron
Author: ReedMurphy
Author Website: http://www.reedmurphy.net/projects/getsimple-simple-backups
Support: Support Forum

(4.2) 9 Votes

Plugin Description:

Automated, schedulable remote and local backups for your GetSimple websites - because accidents happen.

Download Simple Backups from GetSimple Extend

Get the source for Simple Backups from GitHub

Features

  • Gain peace of mind by automatically backing up your GetSimple websites
  • Schedule your backups to run hourly, daily, weekly or monthly
  • Send your backups via email, upload them to an FTP server, stash them in an Amazon S3 bucket, or just store them locally
  • Backup as much or as little as you need - from just the page data for your site, to your entire GetSimple installation, to any arbitrary folder on your server
  • Bask in the joy of using the 2nd place winner of GetSimple's March 2012 Create-a-thon.

Requirements

  • GetSimple v3.1+
  • PHP 5.x
  • For .tar.gz archives:
    • access to PHP's exec() function
    • the tar and gzip commands installed on your server
  • For .zip archives, one of:
    • PHP 5.2+ with --enable-zip
    • The PECL zip extension
    • the zip command installed on your server, and exec() enabled in PHP
  • For S3 storage
    • access to PHP's curl* functions

Install Instructions:

Installation

  1. Extract the zip file into your website's plugins/ directory
  2. In your GetSimple admin panel, you should see a new tab: "Simple Backups"

Optionally:

  1. Set up a hourly cron job to poll your website, so that backups are guaranteed to run:

15 * * * * curl -s http://your.getsimplewebsite.com/ > /dev/null

Configuration

Note: This document is a work in progress - all feedback, suggestions, corrections and complaints appreciated.

In Simple Backups, there are three things to configure: Sources, Destinations and Schedules.

A Source defines a directory that contains things you want backed up. Simple Backups comes with two sources pre-defined: "Data Files" points to your GetSimple website's data/ directory, and will include any user- or plugin-generated data from your site. "All Files" points to your GetSimple website's root, and includes your entire website - the GetSimple code, the plugins, the themes, the data, everything.

A Destination is somewhere backups can be stored when they're generated. Simple Backups defines a "Local backups folder" destination by default, which just points to the backups/simplebackups/ folder in your GetSimple website. Destinations can be local folders, locations on FTP servers, Amazon S3 buckets, or email addresses.

A Schedule ties these together with information about how often you want it to run (hourly, daily, etc.), and how many backups from that Source to the Destination you want to keep. For example, you might create a Schedule that uses the "All Files" Source, the "Local backups folder" destination, runs daily, and keeps 14 backups - this would mean you'd always have daily copies of your entire site for the last fortnight, stored right there on your server. Too simple.

Sources, Destinations and Schedules are all easily editable from the "Simple Backups" tab in your website's admin panel.

Cron

Simple Backups makes uses of the index-posttemplate hook, so that it can check for Schedules to run whenever a page is loaded on your GetSimple website. While this is fine for most sites, if you want more guarantee that your backups will run every hour, you're recommended to set up a cron job to poll your website. Any of the following examples would work:

# Using curl, poll the website at 15 minutes past every hour
15 * * * * curl -s http://your.getsimplewebsite.com/ > /dev/null

# ... and the same, using wget
15 * * * * wget -q http://your.getsimplewebsite.com/ -O /dev/null

Archived Versions:

These are old versions of this file. Please use with caution as they are probably out of date and no longer supported. ShowHide