OSE Site Backup: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
No edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Our site uses [http://code.orgecc.com/mbackup/ mbackup] as a backup tool. ''mbackup'' uses ''duplicity'' as a back-end.
=Page Status=
 
{{Hint|As of 2017, all of this information appears to be invalid. See [[OSE Server#Backups]] for current backup info.}}
 
See [[OSE Server#Backups]] for current backup info.
 
=Overview=
Our [[website]] uses [http://code.orgecc.com/mbackup/ mbackup] as a backup tool. mbackup uses ''duplicity'' as a back-end.
 
==Introduction==
'''mbackup''' performs module-oriented backups.
 
Example:
mbkp.sh forum-db
mbkp.sh forum-root
mbkp.sh forum-extra
 
The commands above will backup 3 different modules: one for the forum database, one for the forum root files (which don't change frequently) and one for extra forum files (uploaded files)
 
You define what each module should back up using these module configuration files:
* ''module-name''.pre - executes ''before'' the backup starts
* ''module-name''.post - executes ''after'' the backup ends
* ''module-name''.files - defines which files should be included and excluded, using the same syntax as ''duplicity''
* ''module-name''.priv - contains sensitive information, like database passwords




Line 15: Line 38:
  export HGRCPATH="$HOME/.hgrc"
  export HGRCPATH="$HOME/.hgrc"


==Folders==
==Files and Folders==
''mbackup'' itself is installed on a folder identified as $MBKP_HOME.
''mbackup'' itself is installed on a folder identified as $MBKP_HOME.


Line 24: Line 47:
  drwx------ 2 a_user a_group 4 2011-06-05 16:03 priv/
  drwx------ 2 a_user a_group 4 2011-06-05 16:03 priv/


On '''.config/mbackup/modules''' we have the configuration for each module to be backed up:
On '''~/.config/mbackup/modules''' we have the configuration for each module to be backed up:
  blog-db.pre      drupal-db.post        forum-db.pre      wiki-db.post
  blog-db.pre      drupal-db.post        forum-db.pre      wiki-db.post
  blog-db-var.pre  drupal-db.pre          home.files        wiki-db.pre
  blog-db-var.pre  drupal-db.pre          home.files        wiki-db.pre
  civicrm-db.pre  drupal-sites.excludes  limesurvey-db.pre  wiki-root.excludes
  civicrm-db.pre  drupal-sites.excludes  limesurvey-db.pre  wiki-root.excludes


On '''.config/mbackup/priv''' we have sensitive configuration data (like db passwords):
On '''~/.config/mbackup/priv''' we have sensitive configuration data (like db passwords):
  altroot.priv    drupal-db.priv    home.priv            wiki-extra-1.priv
  altroot.priv    drupal-db.priv    home.priv            wiki-extra-1.priv
  blog-cache.priv  drupal-root.priv  limesurvey-db.priv    wiki-extra-2.priv
  blog-cache.priv  drupal-root.priv  limesurvey-db.priv    wiki-extra-2.priv
Line 39: Line 62:
mbackup-config.sh is the main configuration file:
mbackup-config.sh is the main configuration file:


  cat .config/mbackup/mbackup-config.sh
  cat ~/.config/mbackup/mbackup-config.sh


  #!/bin/sh
  #!/bin/sh
Line 50: Line 73:
_mbackup.priv contains other configurations:
_mbackup.priv contains other configurations:


  cat .config/mbackup/priv/_mbackup.priv
  cat ~/.config/mbackup/priv/_mbackup.priv
  # Please choose the default passwords you want to use
  # Please choose the default passwords you want to use
  # for protecting your backups.
  # for protecting your backups.
Line 65: Line 88:
'''~/.local/share/mbackup/cache/modules''' contains cache files used during backup (like database dumps)
'''~/.local/share/mbackup/cache/modules''' contains cache files used during backup (like database dumps)


==Modules==
==Performing a Backup==
 
We have some cron jobs that perform our backups. See the daily backup job below:
 
. $D_ROOT/init.sh
#
~/bin/mbkp.sh limesurvey-db
~/bin/mbkp.sh limesurvey-root
#
~/bin/mbkp.sh civicrm-db
#
~/bin/mbkp.sh drupal-db
~/bin/mbkp.sh drupal-root
~/bin/mbkp.sh drupal-sites
#
~/bin/mbkp.sh forum-db
~/bin/mbkp.sh forum-root
~/bin/mbkp.sh forum-extra
#
~/bin/mbkp.sh blog-db
~/bin/mbkp.sh blog-root
~/bin/mbkp.sh blog-extra
#
~/bin/mbkp.sh wiki-db
~/bin/mbkp.sh wiki-root
~/bin/mbkp.sh wiki-extra-1
~/bin/mbkp.sh wiki-extra-2
#
# Sync to backup account
~/bin/sync2bkpaccount.sh


==See Also==
*[[Website]]
*[[OSE Server#Backups]]
*[[Amazon Glacier]]
*[[Backblaze]]


[[Category: IT Infrastructure]]
[[Category: IT Infrastructure]]

Latest revision as of 11:07, 2 December 2019

Page Status

HintLightbulb.png Hint: As of 2017, all of this information appears to be invalid. See OSE Server#Backups for current backup info.

See OSE Server#Backups for current backup info.

Overview

Our website uses mbackup as a backup tool. mbackup uses duplicity as a back-end.

Introduction

mbackup performs module-oriented backups.

Example:

mbkp.sh forum-db
mbkp.sh forum-root
mbkp.sh forum-extra

The commands above will backup 3 different modules: one for the forum database, one for the forum root files (which don't change frequently) and one for extra forum files (uploaded files)

You define what each module should back up using these module configuration files:

  • module-name.pre - executes before the backup starts
  • module-name.post - executes after the backup ends
  • module-name.files - defines which files should be included and excluded, using the same syntax as duplicity
  • module-name.priv - contains sensitive information, like database passwords


Pre-Requisites

OSE's site is located on a shared server. We had to install duplicity and its libraries on a separate folder (hence identified by $D_ROOT). Before running mbackup, we need to prepare some environment variables by running $D_ROOT/init.sh:

% cat $D_ROOT/init.sh 
BASEDIR="$(dirname $0)"
export LD_LIBRARY_PATH=$D_ROOT/lib:$D_ROOT/usr/lib
export PYTHONPATH=$D_ROOT/share/pyshared:$LD_LIBRARY_PATH
export PATH=~/bin:$D_ROOT/bin:$PATH
export HGRCPATH="$HOME/.hgrc"

Files and Folders

mbackup itself is installed on a folder identified as $MBKP_HOME.

On ~/.config/mbackup/ we have configuration files:

-rw-r--r-- 1 a_user a_group 1 2011-06-05 15:43 mbackup-config.sh
drwxr-xr-x 2 a_user a_group 4 2011-06-05 16:03 modules/
drwx------ 2 a_user a_group 4 2011-06-05 16:03 priv/

On ~/.config/mbackup/modules we have the configuration for each module to be backed up:

blog-db.pre      drupal-db.post         forum-db.pre       wiki-db.post
blog-db-var.pre  drupal-db.pre          home.files         wiki-db.pre
civicrm-db.pre   drupal-sites.excludes  limesurvey-db.pre  wiki-root.excludes

On ~/.config/mbackup/priv we have sensitive configuration data (like db passwords):

altroot.priv     drupal-db.priv     home.priv             wiki-extra-1.priv
blog-cache.priv  drupal-root.priv   limesurvey-db.priv    wiki-extra-2.priv
blog-db.priv     drupal-sites.priv  limesurvey-root.priv  wiki-root.priv
blog-extra.priv  forum-db.priv      _mbackup.priv
blog-root.priv   forum-extra.priv   site-root.priv
civicrm-db.priv  forum-root.priv    wiki-db.priv

mbackup-config.sh is the main configuration file:

cat ~/.config/mbackup/mbackup-config.sh
#!/bin/sh
FORUM_ROOT="path/to/forum/root"
BLOG_ROOT="path/to/blog/root"
OSE_ROOT="path/to/main/site"
# MBKP_BASE_TARGET="sftp://user@backup.domain.com/mbackup-modules"
MBKP_BASE_TARGET="file://$MBKP_LOCAL_DATA"

_mbackup.priv contains other configurations:

cat ~/.config/mbackup/priv/_mbackup.priv
# Please choose the default passwords you want to use
# for protecting your backups.
set +x
# Default Gpg passphrase for Duplicity
PASSPHRASE='the-passphrase'
# Default password for ssh / sftp
FTP_PASSWORD="the-ftp-password"
# Delete the line below in order to use mbackup:
# MBKP_FIRST_RUN=1

~/.local/share/mbackup/data/ contains a folder for each module, storing duplicity archives. Said folder is rsynce'd to a remote server.

~/.local/share/mbackup/cache/modules contains cache files used during backup (like database dumps)

Performing a Backup

We have some cron jobs that perform our backups. See the daily backup job below:

. $D_ROOT/init.sh
#
~/bin/mbkp.sh limesurvey-db
~/bin/mbkp.sh limesurvey-root
#
~/bin/mbkp.sh civicrm-db
#
~/bin/mbkp.sh drupal-db
~/bin/mbkp.sh drupal-root
~/bin/mbkp.sh drupal-sites
#
~/bin/mbkp.sh forum-db
~/bin/mbkp.sh forum-root
~/bin/mbkp.sh forum-extra
#
~/bin/mbkp.sh blog-db
~/bin/mbkp.sh blog-root
~/bin/mbkp.sh blog-extra
#
~/bin/mbkp.sh wiki-db
~/bin/mbkp.sh wiki-root
~/bin/mbkp.sh wiki-extra-1
~/bin/mbkp.sh wiki-extra-2
#
# Sync to backup account
~/bin/sync2bkpaccount.sh

See Also