User Tools

Site Tools


build:backups

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
build:backups [2007/06/13 14:35]
206.197.251.70 Add sections for tarball backups and rsync backups. (CMB)
build:backups [2010/07/18 16:51] (current)
SLUUG Administration
Line 4: Line 4:
  
 We're also backing up locally to tarballs for easier access, and to have multiple versions of backups. We're also backing up locally to tarballs for easier access, and to have multiple versions of backups.
 +
  
 ===== Backup Dirs ===== ===== Backup Dirs =====
Line 10: Line 11:
 <code rootshell>​ <code rootshell>​
 mkdir -p /​var/​backups mkdir -p /​var/​backups
 +mkdir -p /​var/​backups/​bud
 +mkdir -p /​var/​backups/​budlight
 mkdir -p /​var/​backups/​etc mkdir -p /​var/​backups/​etc
 mkdir -p /​var/​backups/​home mkdir -p /​var/​backups/​home
 mkdir -p /​var/​backups/​usr_local mkdir -p /​var/​backups/​usr_local
 mkdir -p /​var/​backups/​email mkdir -p /​var/​backups/​email
 +mkdir -p /​var/​backups/​web
 +mkdir -p /​var/​backups/​mysql
 chmod -R 600 /​var/​backups chmod -R 600 /​var/​backups
 </​code>​ </​code>​
Line 19: Line 24:
 ===== Rsync Backups ===== ===== Rsync Backups =====
  
 +
 +For the procedure used for backups of michelob and dark using rsync, see [[rsync-aix]].
  
 ===== Tarball Backups ===== ===== Tarball Backups =====
Line 83: Line 90:
  
 Run the script to test that it works, and saves a file with the correct name in /​var/​backups/​usr_local/​. Run 'tar tfz' on the resulting backup file to make sure it contains the expected files. Run the script to test that it works, and saves a file with the correct name in /​var/​backups/​usr_local/​. Run 'tar tfz' on the resulting backup file to make sure it contains the expected files.
 +
  
  
Line 88: Line 96:
 ==== Backup of Web Sites ==== ==== Backup of Web Sites ====
 NOTE: We currently store web sites in ''/​home/​web'',​ so we do not need to back up anything separately at this point. NOTE: We currently store web sites in ''/​home/​web'',​ so we do not need to back up anything separately at this point.
 +
 +We do have a backup procedure for the wiki content. The ''/​etc/​cron.daily/​backup-dokuwiki''​ script copies a backup of the wiki data files to ''/​var/​backups/​web/''​.
 +
 +<code /​etc/​cron.daily/​backup-dokuwiki>​
 +#!/bin/sh
 + 
 +DATE=`date +'​%Y%m%d'​`
 +BACKUPDIR=/​var/​backups/​web
 +EXCLUDE='​data/​cache/​*'​
 +INCLUDE='​data/​ conf/'
 +WIKIDIR=/​srv/​www/​wiki.sluug.org/​public
 + 
 +tar cfz $BACKUPDIR/​wikidata-$DATE.tgz -C $WIKIDIR --exclude="​$EXCLUDE"​ $INCLUDE
 +
 +</​code>​
 +
 +This tars all other vhosts in /srv/www
 +
 +<code /​etc/​cron.daily/​backup-www>​
 +#!/bin/sh
 + 
 +SRCDIR=/​srv/​www
 +BACKUPDIR=/​var/​backups/​web
 +EXCLUDE='​wiki.sluug.org/​* wordpress*'​
 +DATE=`date +'​%Y%m%d'​`
 + 
 +tar cfz $BACKUPDIR/​www-$DATE.tgz -P $SRCDIR --exclude="​$EXCLUDE"​
 +</​code>​
  
 ==== Backup of Email ==== ==== Backup of Email ====
 NOTE: We currently store users' email folders in their home directories,​ so we do not need to back up anything separately at this point. NOTE: We currently store users' email folders in their home directories,​ so we do not need to back up anything separately at this point.
  
 +==== Backup File Rotation ====
  
 +TODO: We need to delete tarballs that get old, so we don't keep too many around. Would be nice to keep: 1 backup per day for 1 week (or 2 weeks); 1 backup per week for a year (or 1-6 months); 1 backup per month forever.
  
 +
 +===== MySQL =====
 +
 +Decided not to use ''​mysqlhotcopy'',​ as it does not handle InnoDB databases, which some of our apps may require. So we're using ''​mysqldump''​. The ''​--add-locks''​ makes loading the resulting dump faster. The ''​--allow-keywords''​ allows fields to have the same name as SQL keywords. The ''​--create-options''​ includes MySQL-specific options on ''​CREATE TABLE''​ statements.
 +
 +<code rootshell>​
 +#!/bin/sh
 +BACKUPDIR=/​var/​backups/​mysql
 +DATE=`date +'​%Y%m%d'​`
 +mysqldump --all-databases --add-locks --allow-keywords --create-options > $BACKUPDIR/​mysql-$DATE.sql
 +gzip $BACKUPDIR/​mysql-$DATE.sql
 +</​code>​
 +
 +TODO: Add this to cron.
 ===== TODO ===== ===== TODO =====
  
Line 104: Line 156:
 Back up email folders separately, if/when they'​re no longer held in home directories. Back up email folders separately, if/when they'​re no longer held in home directories.
  
 +Take a look at [[http://​jeremy.zawodny.com/​mysql/​ | mysqlsnapshot]] to see if it might work better for MySQL backups. Note that it has not been updated for MySQL 4.x or 5.x, but it's a Perl script, so it might still work.
build/backups.1181763306.txt.gz ยท Last modified: 2007/06/13 14:35 by 206.197.251.70