~ubuntu-branches/ubuntu/karmic/cedar-backup2/karmic

« back to all changes in this revision

Viewing changes to doc/manual/manual.html

  • Committer: Bazaar Package Importer
  • Author(s): Kenneth J. Pronovici
  • Date: 2006-12-18 22:59:17 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20061218225917-gwos76xdo3jewj6i
Tags: 2.9.0-1
* New upstream release.
  - Provide way to configure dev=/dev/cdrw and the like (closes: #403546).
  - Fix, clean up and reorganize parts of user manual (closes: #403448, #403662).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Cedar Backup Software Manual</title><link rel="stylesheet" href="styles.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.70.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="cedar"></a>Cedar Backup Software Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Kenneth J.</span> <span class="surname">Pronovici</span></h3></div></div></div><div><p class="copyright">Copyright � 2005-2006 Kenneth J. Pronovici</p></div><div><div class="legalnotice"><a name="id2487874"></a><p>
 
1
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Cedar Backup Software Manual</title><link rel="stylesheet" href="styles.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.71.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="cedar"></a>Cedar Backup Software Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Kenneth J.</span> <span class="surname">Pronovici</span></h3></div></div></div><div><p class="copyright">Copyright � 2005-2006 Kenneth J. Pronovici</p></div><div><div class="legalnotice"><a name="id2479183"></a><p>
2
2
            This work is free; you can redistribute it and/or modify it under
3
3
            the terms of the GNU General Public License (the "GPL"), Version 2,
4
4
            as published by the Free Software Foundation.
20
20
            <code class="systemitem">http://www.gnu.org/</code>.
21
21
            You may also write the Free Software Foundation, Inc., 59 Temple
22
22
            Place, Suite 330, Boston, MA 02111-1307 USA.
23
 
         </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#cedar-preface">Preface</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-preface-purpose">Purpose</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-audience">Audience</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-conventions">Conventions Used in This Book</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-preface-conventions-typo">Typographic Conventions</a></span></dt><dt><span class="sect2"><a href="#cedar-preface-conventions-icons">Icons</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-preface-organization">Organization of This Manual</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-acknowlege">Acknowledgments</a></span></dt></dl></dd><dt><span class="chapter"><a href="#cedar-intro">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-intro-whatis">What is Cedar Backup?</a></span></dt><dt><span class="sect1"><a href="#cedar-intro-support">How to Get Support</a></span></dt><dt><span class="sect1"><a href="#cedar-intro-history">History</a></span></dt></dl></dd><dt><span class="chapter"><a href="#cedar-basic">2. Basic Concepts</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-basic-general">General Architecture</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-datarecovery">Data Recovery</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-pools">Cedar Backup Pools</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-process">The Backup Process</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-basic-process-collect">The Collect Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-stage">The Stage Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-store">The Store Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-purge">The Purge Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-all">The All Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-validate">The Validate Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-rebuild">The Rebuild Action</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-basic-coordinate">Coordination between Master and Clients</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-mediadevice">Media and Device Types</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-incremental">Incremental Backups</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-extensions">Extensions</a></span></dt></dl></dd><dt><span class="chapter"><a href="#cedar-install">3. Installation</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-install-background">Background</a></span></dt><dt><span class="sect1"><a href="#cedar-install-debian">Installing on a Debian System</a></span></dt><dt><span class="sect1"><a href="#cedar-install-source">Installing from Source</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-install-source-deps">Installing Dependencies</a></span></dt><dt><span class="sect2"><a href="#cedar-install-source-package">Installing the Source Package</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cedar-config">4. Configuration</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-config-overview">Overview</a></span></dt><dt><span class="sect1"><a href="#cedar-config-commandline">Command Line Interface</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-config-commandline-syntax">Syntax</a></span></dt><dt><span class="sect2"><a href="#cedar-config-commandline-options">Switches</a></span></dt><dt><span class="sect2"><a href="#cedar-config-commandline-actions">Actions</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-configfile">Configuration File Format</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-config-configfile-sample">Sample Configuration File</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-reference">Reference Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-options">Options Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-collect">Collect Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-stage">Stage Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-store">Store Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-purge">Purge Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-extensions">Extensions Configuration</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-poolofone">Setting up a Pool of One</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2543441">Step 1: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2543475">Step 2: Configure your CD-R or CD-RW drive.</a></span></dt><dt><span class="sect2"><a href="#id2543530">Step 3: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2543581">Step 4: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2543683">Step 5: Modify the backup cron jobs.</a></span></dt><dt><span class="sect2"><a href="#id2538684">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2544032">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2544070">Step 8: Test your backup.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-client">Setting up a Client Peer Node</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2544184">Step 1: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2543724">Step 2: Configure the master in your backup pool.</a></span></dt><dt><span class="sect2"><a href="#id2543769">Step 3: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2543939">Step 4: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2544797">Step 5: Modify the backup cron jobs.</a></span></dt><dt><span class="sect2"><a href="#id2544960">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2545028">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2545071">Step 8: Test your backup.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-master">Setting up a Master Peer Node</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2545169">Step 1: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2545211">Step 2: Configure your CD-R or CD-RW drive.</a></span></dt><dt><span class="sect2"><a href="#id2545266">Step 3: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2545409">Step 4: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2545509">Step 5: Modify the backup cron jobs.</a></span></dt><dt><span class="sect2"><a href="#id2545666">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2545763">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2545807">Step 8: Test connectivity to client machines.</a></span></dt><dt><span class="sect2"><a href="#id2545858">Step 9: Test your backup.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-scsi">Configuring your SCSI Device</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2545955">SCSI Required</a></span></dt><dt><span class="sect2"><a href="#id2546008">Linux Notes</a></span></dt><dt><span class="sect2"><a href="#id2546079">Mac OS X Notes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cedar-extensions">5. Official Extensions</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-extensions-sysinfo">System Information Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-subversion">Subversion Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-mysql">MySQL Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-postgresql">PostgreSQL Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-mbox">Mbox Extension</a></span></dt></dl></dd><dt><span class="appendix"><a href="#cedar-extenspec">A. Extension Architecture Interface</a></span></dt><dt><span class="appendix"><a href="#cedar-depends">B. Dependencies</a></span></dt><dt><span class="appendix"><a href="#cedar-recovering">C. Data Recovery</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-recovering-finding">Finding your Data</a></span></dt><dt><span class="sect1"><a href="#cedar-recovering-filesystem">Recovering Filesystem Data</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-recovering-filesystem-full">Full Restore</a></span></dt><dt><span class="sect2"><a href="#cedar-recovering-filesystem-partial">Partial Restore</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-recovering-mysql">Recovering MySQL Data</a></span></dt><dt><span class="sect1"><a href="#cedar-recovering-subversion">Recovering Subversion Data</a></span></dt><dt><span class="sect1"><a href="#cedar-recovering-mbox">Recovering Mailbox Data</a></span></dt></dl></dd><dt><span class="appendix"><a href="#cedar-copyright">D. Copyright</a></span></dt></dl></div><div class="preface" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cedar-preface"></a>Preface</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#cedar-preface-purpose">Purpose</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-audience">Audience</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-conventions">Conventions Used in This Book</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-preface-conventions-typo">Typographic Conventions</a></span></dt><dt><span class="sect2"><a href="#cedar-preface-conventions-icons">Icons</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-preface-organization">Organization of This Manual</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-acknowlege">Acknowledgments</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-preface-purpose"></a>Purpose</h2></div></div></div><p>
 
23
         </p></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="preface"><a href="#cedar-preface">Preface</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-preface-purpose">Purpose</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-audience">Audience</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-conventions">Conventions Used in This Book</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-preface-conventions-typo">Typographic Conventions</a></span></dt><dt><span class="sect2"><a href="#cedar-preface-conventions-icons">Icons</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-preface-organization">Organization of This Manual</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-acknowlege">Acknowledgments</a></span></dt></dl></dd><dt><span class="chapter"><a href="#cedar-intro">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-intro-whatis">What is Cedar Backup?</a></span></dt><dt><span class="sect1"><a href="#cedar-intro-support">How to Get Support</a></span></dt><dt><span class="sect1"><a href="#cedar-intro-history">History</a></span></dt></dl></dd><dt><span class="chapter"><a href="#cedar-basic">2. Basic Concepts</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-basic-general">General Architecture</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-datarecovery">Data Recovery</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-pools">Cedar Backup Pools</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-process">The Backup Process</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-basic-process-collect">The Collect Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-stage">The Stage Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-store">The Store Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-purge">The Purge Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-all">The All Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-validate">The Validate Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-rebuild">The Rebuild Action</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-basic-coordinate">Coordination between Master and Clients</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-mediadevice">Media and Device Types</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-incremental">Incremental Backups</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-extensions">Extensions</a></span></dt></dl></dd><dt><span class="chapter"><a href="#cedar-install">3. Installation</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-install-background">Background</a></span></dt><dt><span class="sect1"><a href="#cedar-install-debian">Installing on a Debian System</a></span></dt><dt><span class="sect1"><a href="#cedar-install-source">Installing from Source</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-install-source-deps">Installing Dependencies</a></span></dt><dt><span class="sect2"><a href="#cedar-install-source-package">Installing the Source Package</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cedar-config">4. Configuration</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-config-overview">Overview</a></span></dt><dt><span class="sect1"><a href="#cedar-config-commandline">Command Line Interface</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-config-commandline-syntax">Syntax</a></span></dt><dt><span class="sect2"><a href="#cedar-config-commandline-options">Switches</a></span></dt><dt><span class="sect2"><a href="#cedar-config-commandline-actions">Actions</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-configfile">Configuration File Format</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-config-configfile-sample">Sample Configuration File</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-reference">Reference Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-options">Options Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-collect">Collect Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-stage">Stage Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-store">Store Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-purge">Purge Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-extensions">Extensions Configuration</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-poolofone">Setting up a Pool of One</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2535014">Step 1: Decide when you will run your backup.</a></span></dt><dt><span class="sect2"><a href="#id2535080">Step 2: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2535114">Step 3: Configure your CD-R or CD-RW drive.</a></span></dt><dt><span class="sect2"><a href="#id2535187">Step 4: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2535238">Step 5: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2535340">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2535408">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2535446">Step 8: Test your backup.</a></span></dt><dt><span class="sect2"><a href="#id2535512">Step 9: Modify the backup cron jobs.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-client">Setting up a Client Peer Node</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2535664">Step 1: Decide when you will run your backup.</a></span></dt><dt><span class="sect2"><a href="#id2535722">Step 2: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2535763">Step 3: Configure the master in your backup pool.</a></span></dt><dt><span class="sect2"><a href="#id2535808">Step 4: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2535978">Step 5: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2536069">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2536138">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2536181">Step 8: Test your backup.</a></span></dt><dt><span class="sect2"><a href="#id2536211">Step 9: Modify the backup cron jobs.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-master">Setting up a Master Peer Node</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2536396">Step 1: Decide when you will run your backup.</a></span></dt><dt><span class="sect2"><a href="#id2530073">Step 2: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2530107">Step 3: Configure your CD-R or CD-RW drive.</a></span></dt><dt><span class="sect2"><a href="#id2530180">Step 4: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2536847">Step 5: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2536947">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2537045">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2537089">Step 8: Test connectivity to client machines.</a></span></dt><dt><span class="sect2"><a href="#id2537140">Step 9: Test your backup.</a></span></dt><dt><span class="sect2"><a href="#id2537226">Step 10: Modify the backup cron jobs.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-writer">Configuring your Writer Device</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2537341">SCSI Devices</a></span></dt><dt><span class="sect2"><a href="#id2537395">Non-SCSI Devices</a></span></dt><dt><span class="sect2"><a href="#id2537437">Linux Notes</a></span></dt><dt><span class="sect2"><a href="#id2537604">Mac OS X Notes</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#cedar-extensions">5. Official Extensions</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-extensions-sysinfo">System Information Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-subversion">Subversion Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-mysql">MySQL Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-postgresql">PostgreSQL Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-mbox">Mbox Extension</a></span></dt></dl></dd><dt><span class="appendix"><a href="#cedar-extenspec">A. Extension Architecture Interface</a></span></dt><dt><span class="appendix"><a href="#cedar-depends">B. Dependencies</a></span></dt><dt><span class="appendix"><a href="#cedar-recovering">C. Data Recovery</a></span></dt><dd><dl><dt><span class="sect1"><a href="#cedar-recovering-finding">Finding your Data</a></span></dt><dt><span class="sect1"><a href="#cedar-recovering-filesystem">Recovering Filesystem Data</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-recovering-filesystem-full">Full Restore</a></span></dt><dt><span class="sect2"><a href="#cedar-recovering-filesystem-partial">Partial Restore</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-recovering-mysql">Recovering MySQL Data</a></span></dt><dt><span class="sect1"><a href="#cedar-recovering-subversion">Recovering Subversion Data</a></span></dt><dt><span class="sect1"><a href="#cedar-recovering-mbox">Recovering Mailbox Data</a></span></dt></dl></dd><dt><span class="appendix"><a href="#cedar-copyright">D. Copyright</a></span></dt></dl></div><div class="preface" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cedar-preface"></a>Preface</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#cedar-preface-purpose">Purpose</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-audience">Audience</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-conventions">Conventions Used in This Book</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-preface-conventions-typo">Typographic Conventions</a></span></dt><dt><span class="sect2"><a href="#cedar-preface-conventions-icons">Icons</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-preface-organization">Organization of This Manual</a></span></dt><dt><span class="sect1"><a href="#cedar-preface-acknowlege">Acknowledgments</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-preface-purpose"></a>Purpose</h2></div></div></div><p>
24
24
         This software manual has been written to document the 2.0 series of
25
25
         Cedar Backup, originally released in early 2005.
26
26
      </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-preface-audience"></a>Audience</h2></div></div></div><p>
140
140
         usually help you solve whatever problems you might see.  
141
141
      </p><p>
142
142
         If you experience a problem, your best bet is to write the Cedar
143
 
         Backup Users mailing list.  <sup>[<a name="id2533997" href="#ftn.id2533997">1</a>]</sup>
 
143
         Backup Users mailing list.  <sup>[<a name="id2525490" href="#ftn.id2525490">1</a>]</sup>
144
144
         This is a public list for all Cedar Backup users.  If you write to
145
145
         this list, you might get help from me, or from some other user who has
146
146
         experienced the same thing you have.  
148
148
         If you know that the problem you have found constitutes a bug, or
149
149
         if you would like to make an enhancement request, then feel free to
150
150
         file a bug report in the Cedar Solutions Bug Tracking System.  
151
 
         <sup>[<a name="id2534017" href="#ftn.id2534017">2</a>]</sup>
 
151
         <sup>[<a name="id2525511" href="#ftn.id2525511">2</a>]</sup>
152
152
      </p><p>
153
153
         If you are not comfortable discussing your problem in public or
154
154
         listing it in a public database, or if you need to send along
164
164
         Regardless of how you report your problem, please try to provide as
165
165
         much information as possible about the behavior you observed and the
166
166
         environment in which the problem behavior occurred.
167
 
         <sup>[<a name="id2534055" href="#ftn.id2534055">3</a>]</sup> 
 
167
         <sup>[<a name="id2525549" href="#ftn.id2525549">3</a>]</sup> 
168
168
      </p><p>
169
169
         In particular, you should provide: the version of Cedar Backup that you
170
170
         are using; how you installed Cedar Backup (i.e. Debian package,
206
206
      </p><p>
207
207
         Because I had become fed up with the prospect of maintaining a large
208
208
         volume of Perl code, I decided to abandon that language in favor of
209
 
         Python. <sup>[<a name="id2533890" href="#ftn.id2533890">4</a>]</sup> At the time, I chose Python mostly because I was
 
209
         Python. <sup>[<a name="id2525383" href="#ftn.id2525383">4</a>]</sup> At the time, I chose Python mostly because I was
210
210
         interested in learning it, but in retrospect it turned out to be a
211
211
         very good decision.  From my perspective, Python has almost all of the
212
212
         strengths of Perl, but few of its inherent weaknesses (I feel that
215
215
      </p><p>
216
216
         Around this same time, skyjammer.com and cedar-solutions.com were
217
217
         converted to run Debian GNU/Linux (potato) 
218
 
         <sup>[<a name="id2533911" href="#ftn.id2533911">5</a>]</sup>
 
218
         <sup>[<a name="id2525405" href="#ftn.id2525405">5</a>]</sup>
219
219
         and I entered the Debian new maintainer queue, so I also made it a
220
220
         goal to implement Debian packages along with a Python source
221
221
         distribution for the new release.
235
235
         <span class="application">kbackup</span>, still left something to be
236
236
         desired.  In November 2003, I began an attempt at cleaning up the
237
237
         codebase.  I converted all of the internal documentation to use
238
 
         Epydoc, <sup>[<a name="id2534378" href="#ftn.id2534378">6</a>]</sup>
 
238
         Epydoc, <sup>[<a name="id2525872" href="#ftn.id2525872">6</a>]</sup>
239
239
         and updated the code to use the newly-released Python logging package
240
 
         <sup>[<a name="id2534390" href="#ftn.id2534390">7</a>]</sup> after having a good experience with Java's log4j.
 
240
         <sup>[<a name="id2525884" href="#ftn.id2525884">7</a>]</sup> after having a good experience with Java's log4j.
241
241
         However, I was still not satisfied with the code, which did not lend
242
242
         itself to the automated regression testing I had used when working
243
243
         with junit in my Java code.
254
254
         general-purpose library.  The 2.0 release also includes a complete
255
255
         regression test suite of over 2000 tests, which will help to ensure
256
256
         that quality is maintained as development continues into the future.
257
 
         <sup>[<a name="id2534423" href="#ftn.id2534423">8</a>]</sup> 
258
 
      </p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2533997" href="#id2533997">1</a>] </sup>See <a href="http://cedar-solutions.com/listarchives/" target="_top">http://cedar-solutions.com/listarchives/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2534017" href="#id2534017">2</a>] </sup>See <a href="http://cedar-solutions.com/bugzilla/" target="_top">http://cedar-solutions.com/bugzilla/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2534055" href="#id2534055">3</a>] </sup>See Simon Tatham's excellent bug reporting tutorial:
 
257
         <sup>[<a name="id2525917" href="#ftn.id2525917">8</a>]</sup> 
 
258
      </p></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2525490" href="#id2525490">1</a>] </sup>See <a href="http://cedar-solutions.com/listarchives/" target="_top">http://cedar-solutions.com/listarchives/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2525511" href="#id2525511">2</a>] </sup>See <a href="http://cedar-solutions.com/bugzilla/" target="_top">http://cedar-solutions.com/bugzilla/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2525549" href="#id2525549">3</a>] </sup>See Simon Tatham's excellent bug reporting tutorial:
259
259
         <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html" target="_top">http://www.chiark.greenend.org.uk/~sgtatham/bugs.html</a>
260
 
         .</p></div><div class="footnote"><p><sup>[<a name="ftn.id2533890" href="#id2533890">4</a>] </sup>See <a href="http://www.python.org/" target="_top">http://www.python.org/</a>
261
 
         .</p></div><div class="footnote"><p><sup>[<a name="ftn.id2533911" href="#id2533911">5</a>] </sup>Debian's stable releases are named after characters
262
 
         in the Toy Story movie.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2534378" href="#id2534378">6</a>] </sup>Epydoc is a Python code documentation tool.
263
 
         See <a href="http://epydoc.sourceforge.net/" target="_top">http://epydoc.sourceforge.net/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2534390" href="#id2534390">7</a>] </sup>See <a href="http://docs.python.org/lib/module-logging.html" target="_top">http://docs.python.org/lib/module-logging.html</a>
264
 
         .</p></div><div class="footnote"><p><sup>[<a name="ftn.id2534423" href="#id2534423">8</a>] </sup>Tests are implemented using Python's unit test
 
260
         .</p></div><div class="footnote"><p><sup>[<a name="ftn.id2525383" href="#id2525383">4</a>] </sup>See <a href="http://www.python.org/" target="_top">http://www.python.org/</a>
 
261
         .</p></div><div class="footnote"><p><sup>[<a name="ftn.id2525405" href="#id2525405">5</a>] </sup>Debian's stable releases are named after characters
 
262
         in the Toy Story movie.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2525872" href="#id2525872">6</a>] </sup>Epydoc is a Python code documentation tool.
 
263
         See <a href="http://epydoc.sourceforge.net/" target="_top">http://epydoc.sourceforge.net/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2525884" href="#id2525884">7</a>] </sup>See <a href="http://docs.python.org/lib/module-logging.html" target="_top">http://docs.python.org/lib/module-logging.html</a>
 
264
         .</p></div><div class="footnote"><p><sup>[<a name="ftn.id2525917" href="#id2525917">8</a>] </sup>Tests are implemented using Python's unit test
265
265
         framework.  See <a href="http://docs.python.org/lib/module-unittest.html" target="_top">http://docs.python.org/lib/module-unittest.html</a>.</p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cedar-basic"></a>Chapter�2.�Basic Concepts</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#cedar-basic-general">General Architecture</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-datarecovery">Data Recovery</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-pools">Cedar Backup Pools</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-process">The Backup Process</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-basic-process-collect">The Collect Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-stage">The Stage Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-store">The Store Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-purge">The Purge Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-all">The All Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-validate">The Validate Action</a></span></dt><dt><span class="sect2"><a href="#cedar-basic-process-rebuild">The Rebuild Action</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-basic-coordinate">Coordination between Master and Clients</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-mediadevice">Media and Device Types</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-incremental">Incremental Backups</a></span></dt><dt><span class="sect1"><a href="#cedar-basic-extensions">Extensions</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-basic-general"></a>General Architecture</h2></div></div></div><p>
266
266
         Cedar Backup is architected as a Python package (library) and a single
267
267
         executable (a Python script).  The Python package provides both
275
275
         CD-R/CD-RW device.  However, pains are taken to use the backup user's
276
276
         effective user id (specified in configuration) when appropriate.
277
277
         Note: this does not mean that <span><strong class="command">cback</strong></span> runs
278
 
         <em class="firstterm">setuid</em><sup>[<a name="id2533579" href="#ftn.id2533579">9</a>]</sup> or
 
278
         <em class="firstterm">setuid</em><sup>[<a name="id2525063" href="#ftn.id2525063">9</a>]</sup> or
279
279
         <em class="firstterm">setgid</em>.  However, all files on disk will be
280
280
         owned by the backup user, and and all rsh-based network connections
281
281
         will take place as the backup user.
402
402
            files and directories out of the backup.  For instance,
403
403
            administrators can configure an <em class="firstterm">ignore indicator
404
404
            file</em> 
405
 
            <sup>[<a name="id2535260" href="#ftn.id2535260">10</a>]</sup> 
 
405
            <sup>[<a name="id2526754" href="#ftn.id2526754">10</a>]</sup> 
406
406
            or specify absolute paths or filename patterns 
407
 
            <sup>[<a name="id2535272" href="#ftn.id2535272">11</a>]</sup>
 
407
            <sup>[<a name="id2526766" href="#ftn.id2526766">11</a>]</sup>
408
408
            to be excluded.
409
409
         </p><p>
410
410
            This action is optional on the master.  You only need to configure
520
520
            Extensions <span class="emphasis"><em>cannot</em></span> be executed as part of the
521
521
            all action.  If you need to execute an extended action, you must
522
522
            specify the other actions you want to run individually on the
523
 
            command line.  <sup>[<a name="id2535572" href="#ftn.id2535572">12</a>]</sup>
 
523
            command line.  <sup>[<a name="id2527066" href="#ftn.id2527066">12</a>]</sup>
524
524
         </p><p>
525
525
            The all action does not have its own configuration.  Instead, it
526
526
            relies on the individual configuration sections for all of the
579
579
         worked out all of the kinks.  Given that the current architecture has
580
580
         been proven to work well, I don't think that it is worth adding
581
581
         complexity to the code just to simplify the initial set-up process.
582
 
         <sup>[<a name="id2535739" href="#ftn.id2535739">13</a>]</sup>
 
582
         <sup>[<a name="id2527232" href="#ftn.id2527232">13</a>]</sup>
583
583
      </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-basic-mediadevice"></a>Media and Device Types</h2></div></div></div><p>
584
584
         Cedar Backup is focused around writing backups to CD-R or CD-RW media
585
585
         using a standard SCSI or IDE CD writer.  In Cedar Backup terms, the
586
586
         disc itself is referred to as the <em class="firstterm">media</em>, and
587
587
         the CD-R or CD-RW drive is referred to as the <em class="firstterm">device</em> 
588
588
         or sometimes the <em class="firstterm">backup device</em>.
589
 
         <sup>[<a name="id2535782" href="#ftn.id2535782">14</a>]</sup>
 
589
         <sup>[<a name="id2527275" href="#ftn.id2527275">14</a>]</sup>
590
590
      </p><p>
591
591
         When using a new enough backup device, a new &#8220;<span class="quote">multisession</span>&#8221; 
592
 
         ISO image <sup>[<a name="id2535799" href="#ftn.id2535799">15</a>]</sup> is
 
592
         ISO image <sup>[<a name="id2527293" href="#ftn.id2527293">15</a>]</sup> is
593
593
         written to the media on the first day of the week, and then additional
594
594
         multisession images are added to the media each day that Cedar Backup
595
595
         runs.  This way, the media is complete and usable at the end of every
609
609
         whether it is rewritable.  
610
610
      </p><p>
611
611
         Future versions of Cedar Backup may support writable DVDs.
612
 
         <sup>[<a name="id2535914" href="#ftn.id2535914">16</a>]</sup> Now that I have my own
 
612
         <sup>[<a name="id2527408" href="#ftn.id2527408">16</a>]</sup> Now that I have my own
613
613
         DVD�RW hardware, this will happen when I get some time to work
614
614
         on it and/or when someone else shows interest in it.  If you would
615
615
         like to see support for DVDs in Cedar Backup and can offer some help,
616
616
         please write the Cedar Backup Users mailing list.  
617
 
         <sup>[<a name="id2535974" href="#ftn.id2535974">17</a>]</sup>
 
617
         <sup>[<a name="id2527468" href="#ftn.id2527468">17</a>]</sup>
618
618
      </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-basic-incremental"></a>Incremental Backups</h2></div></div></div><p>
619
619
         Cedar Backup supports three different kinds of backups for individual
620
620
         collect directories.  These are <em class="firstterm">daily</em>,
629
629
         In Cedar Backup, incremental backups are not based on date, but are
630
630
         instead based on saved checksums, one for each backed-up file.
631
631
         When a full backup is run, Cedar Backup gathers a checksum value
632
 
         <sup>[<a name="id2536002" href="#ftn.id2536002">18</a>]</sup> 
 
632
         <sup>[<a name="id2527496" href="#ftn.id2527496">18</a>]</sup> 
633
633
         for each backed-up file.  The next time an incremental backup is run,
634
634
         Cedar Backup checks its list of file/checksum pairs for each file that
635
635
         might be backed up.  If the file's checksum value does not
680
680
            officially-supported extensions.  
681
681
         </p><p>
682
682
            Developers may be interested in <a href="#cedar-extenspec" title="Appendix�A.�Extension Architecture Interface">Appendix�A, <i>Extension Architecture Interface</i></a>.
683
 
         </p></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2533579" href="#id2533579">9</a>] </sup>See <a href="http://en.wikipedia.org/wiki/Setuid" target="_top">http://en.wikipedia.org/wiki/Setuid</a></p></div><div class="footnote"><p><sup>[<a name="ftn.id2535260" href="#id2535260">10</a>] </sup>Analagous to <code class="filename">.cvsignore</code> in CVS</p></div><div class="footnote"><p><sup>[<a name="ftn.id2535272" href="#id2535272">11</a>] </sup>In terms of Python regular expressions</p></div><div class="footnote"><p><sup>[<a name="ftn.id2535572" href="#id2535572">12</a>] </sup>Some users find this surprising,
 
683
         </p></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2525063" href="#id2525063">9</a>] </sup>See <a href="http://en.wikipedia.org/wiki/Setuid" target="_top">http://en.wikipedia.org/wiki/Setuid</a></p></div><div class="footnote"><p><sup>[<a name="ftn.id2526754" href="#id2526754">10</a>] </sup>Analagous to <code class="filename">.cvsignore</code> in CVS</p></div><div class="footnote"><p><sup>[<a name="ftn.id2526766" href="#id2526766">11</a>] </sup>In terms of Python regular expressions</p></div><div class="footnote"><p><sup>[<a name="ftn.id2527066" href="#id2527066">12</a>] </sup>Some users find this surprising,
684
684
            because extensions are configured with sequence numbers.  I did it
685
685
            this way because I felt that running extensions as part of the all
686
686
            action would sometimes result in surprising behavior.  I am not
687
 
            planning to change the way this works.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2535739" href="#id2535739">13</a>] </sup>Feel free to write me or the user mailing list if you
 
687
            planning to change the way this works.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2527232" href="#id2527232">13</a>] </sup>Feel free to write me or the user mailing list if you
688
688
         disagree <span class="emphasis"><em>and</em></span> can come up with a straightforward
689
689
         implementation which can be easily verified and
690
 
         maintained.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2535782" href="#id2535782">14</a>] </sup>My original backup device was an old
 
690
         maintained.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2527275" href="#id2527275">14</a>] </sup>My original backup device was an old
691
691
         Sony CRX140E 4X CD-RW drive.  It has since died, and I currently
692
 
         develop using a Lite-On 1673S DVD�RW drive.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2535799" href="#id2535799">15</a>] </sup>An <em class="firstterm">ISO image</em> is the
 
692
         develop using a Lite-On 1673S DVD�RW drive.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2527293" href="#id2527293">15</a>] </sup>An <em class="firstterm">ISO image</em> is the
693
693
         standard way of creating a filesystem to be copied to a CD.  It is
694
694
         essentially a &#8220;<span class="quote">filesystem-within-a-file</span>&#8221; and many UNIX
695
695
         operating systems can actually mount ISO image files just like hard drives,
696
 
         floppy disks or actual CDs.  See Wikipedia for more information: <a href="http://en.wikipedia.org/wiki/ISO_image" target="_top">http://en.wikipedia.org/wiki/ISO_image</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2535914" href="#id2535914">16</a>] </sup>It would just require a new
 
696
         floppy disks or actual CDs.  See Wikipedia for more information: <a href="http://en.wikipedia.org/wiki/ISO_image" target="_top">http://en.wikipedia.org/wiki/ISO_image</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2527408" href="#id2527408">16</a>] </sup>It would just require a new
697
697
         <code class="literal">DvdWriter</code> class in <code class="filename">writer.py</code>
698
698
         as well as some minor changes to configuration code.  All
699
699
         writer-related access is through an abstract interface, so once the
700
700
         new writer is implemented, the rest of the code will be able to use it
701
 
         without any changes.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2535974" href="#id2535974">17</a>] </sup>See <a href="http://cedar-solutions.com/listarchives/" target="_top">http://cedar-solutions.com/listarchives/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2536002" href="#id2536002">18</a>] </sup>The checksum is actually an <em class="firstterm">SHA
 
701
         without any changes.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2527468" href="#id2527468">17</a>] </sup>See <a href="http://cedar-solutions.com/listarchives/" target="_top">http://cedar-solutions.com/listarchives/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2527496" href="#id2527496">18</a>] </sup>The checksum is actually an <em class="firstterm">SHA
702
702
         cryptographic hash</em>.  See Wikipedia for more information:
703
703
         <a href="http://en.wikipedia.org/wiki/SHA-1" target="_top">http://en.wikipedia.org/wiki/SHA-1</a>.</p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cedar-install"></a>Chapter�3.�Installation</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#cedar-install-background">Background</a></span></dt><dt><span class="sect1"><a href="#cedar-install-debian">Installing on a Debian System</a></span></dt><dt><span class="sect1"><a href="#cedar-install-source">Installing from Source</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-install-source-deps">Installing Dependencies</a></span></dt><dt><span class="sect2"><a href="#cedar-install-source-package">Installing the Source Package</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-install-background"></a>Background</h2></div></div></div><p>
704
704
         There are two different ways to install Cedar Backup.  The easiest way
727
727
            If you would like to use Cedar Backup on a non-Linux system, you
728
728
            should install the Python source distribution along with all of the
729
729
            indicated dependencies.  Then, please report back to the Cedar
730
 
            Backup Users mailing list <sup>[<a name="id2537628" href="#ftn.id2537628">19</a>]</sup>
 
730
            Backup Users mailing list <sup>[<a name="id2529122" href="#ftn.id2529122">19</a>]</sup>
731
731
            with information about your platform and any problems you
732
732
            encountered.
733
733
         </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-install-debian"></a>Installing on a Debian System</h2></div></div></div><p>
740
740
         &#8220;<span class="quote">etch</span>&#8221; release is the first release to contain Cedar
741
741
         Backup.) Otherwise, you need to install from the Cedar Solutions APT
742
742
         data source.  To do this, add the Cedar Solutions APT data source to
743
 
         your <code class="filename">/etc/apt/sources.list</code> file.  <sup>[<a name="id2537692" href="#ftn.id2537692">20</a>]</sup>
 
743
         your <code class="filename">/etc/apt/sources.list</code> file.  <sup>[<a name="id2529185" href="#ftn.id2529185">20</a>]</sup>
744
744
      </p><p>
745
745
         After you have configured the proper APT data source, install Cedar
746
746
         Backup using this set of commands:
772
772
            the source distribution instead of the Debian package.
773
773
         </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-install-source"></a>Installing from Source</h2></div></div></div><p>
774
774
         On platforms other than Debian, Cedar Backup is installed from a
775
 
         Python source distribution. <sup>[<a name="id2537808" href="#ftn.id2537808">22</a>]</sup> You will have to manage dependencies on your own.
 
775
         Python source distribution. <sup>[<a name="id2529301" href="#ftn.id2529301">22</a>]</sup> You will have to manage dependencies on your own.
776
776
      </p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>
777
777
            Many UNIX-like distributions provide an automatic or semi-automatic
778
778
            way to install packages like the ones Cedar Backup requires (think
836
836
         </pre><p>
837
837
            If any unit test reports a failure on your system, please email me the
838
838
            output from the unit test, so I can fix the problem.
839
 
            <sup>[<a name="id2538052" href="#ftn.id2538052">23</a>]</sup>
 
839
            <sup>[<a name="id2529546" href="#ftn.id2529546">23</a>]</sup>
840
840
            This is particularly important for non-Linux platforms where I do
841
841
            not have a test system available to me.
842
842
         </p><p>
850
850
         </pre><p>
851
851
            In any case, once the package has been installed, you can proceed
852
852
            to configuration as described in <a href="#cedar-config" title="Chapter�4.�Configuration">Chapter�4, <i>Configuration</i></a>.
853
 
         </p></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2537628" href="#id2537628">19</a>] </sup>See <a href="http://cedar-solutions.com/listarchives/" target="_top">http://cedar-solutions.com/listarchives/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2537692" href="#id2537692">20</a>] </sup>See
854
 
         <a href="http://cedar-solutions.com/debian.html" target="_top">http://cedar-solutions.com/debian.html</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.cedar-install-foot-software" href="#cedar-install-foot-software">21</a>] </sup>See <a href="http://cedar-solutions.com/software.html" target="_top">http://cedar-solutions.com/software.html</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2537808" href="#id2537808">22</a>] </sup>See <a href="http://docs.python.org/lib/module-distutils.html" target="_top">http://docs.python.org/lib/module-distutils.html</a>
855
 
         .</p></div><div class="footnote"><p><sup>[<a name="ftn.id2538052" href="#id2538052">23</a>] </sup><code class="email">&lt;<a href="mailto:support@cedar-solutions.com">support@cedar-solutions.com</a>&gt;</code></p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cedar-config"></a>Chapter�4.�Configuration</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#cedar-config-overview">Overview</a></span></dt><dt><span class="sect1"><a href="#cedar-config-commandline">Command Line Interface</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-config-commandline-syntax">Syntax</a></span></dt><dt><span class="sect2"><a href="#cedar-config-commandline-options">Switches</a></span></dt><dt><span class="sect2"><a href="#cedar-config-commandline-actions">Actions</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-configfile">Configuration File Format</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-config-configfile-sample">Sample Configuration File</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-reference">Reference Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-options">Options Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-collect">Collect Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-stage">Stage Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-store">Store Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-purge">Purge Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-extensions">Extensions Configuration</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-poolofone">Setting up a Pool of One</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2543441">Step 1: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2543475">Step 2: Configure your CD-R or CD-RW drive.</a></span></dt><dt><span class="sect2"><a href="#id2543530">Step 3: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2543581">Step 4: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2543683">Step 5: Modify the backup cron jobs.</a></span></dt><dt><span class="sect2"><a href="#id2538684">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2544032">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2544070">Step 8: Test your backup.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-client">Setting up a Client Peer Node</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2544184">Step 1: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2543724">Step 2: Configure the master in your backup pool.</a></span></dt><dt><span class="sect2"><a href="#id2543769">Step 3: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2543939">Step 4: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2544797">Step 5: Modify the backup cron jobs.</a></span></dt><dt><span class="sect2"><a href="#id2544960">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2545028">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2545071">Step 8: Test your backup.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-master">Setting up a Master Peer Node</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2545169">Step 1: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2545211">Step 2: Configure your CD-R or CD-RW drive.</a></span></dt><dt><span class="sect2"><a href="#id2545266">Step 3: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2545409">Step 4: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2545509">Step 5: Modify the backup cron jobs.</a></span></dt><dt><span class="sect2"><a href="#id2545666">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2545763">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2545807">Step 8: Test connectivity to client machines.</a></span></dt><dt><span class="sect2"><a href="#id2545858">Step 9: Test your backup.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-scsi">Configuring your SCSI Device</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2545955">SCSI Required</a></span></dt><dt><span class="sect2"><a href="#id2546008">Linux Notes</a></span></dt><dt><span class="sect2"><a href="#id2546079">Mac OS X Notes</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-config-overview"></a>Overview</h2></div></div></div><p>
 
853
         </p></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2529122" href="#id2529122">19</a>] </sup>See <a href="http://cedar-solutions.com/listarchives/" target="_top">http://cedar-solutions.com/listarchives/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2529185" href="#id2529185">20</a>] </sup>See
 
854
         <a href="http://cedar-solutions.com/debian.html" target="_top">http://cedar-solutions.com/debian.html</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.cedar-install-foot-software" href="#cedar-install-foot-software">21</a>] </sup>See <a href="http://cedar-solutions.com/software.html" target="_top">http://cedar-solutions.com/software.html</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2529301" href="#id2529301">22</a>] </sup>See <a href="http://docs.python.org/lib/module-distutils.html" target="_top">http://docs.python.org/lib/module-distutils.html</a>
 
855
         .</p></div><div class="footnote"><p><sup>[<a name="ftn.id2529546" href="#id2529546">23</a>] </sup><code class="email">&lt;<a href="mailto:support@cedar-solutions.com">support@cedar-solutions.com</a>&gt;</code></p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cedar-config"></a>Chapter�4.�Configuration</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#cedar-config-overview">Overview</a></span></dt><dt><span class="sect1"><a href="#cedar-config-commandline">Command Line Interface</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-config-commandline-syntax">Syntax</a></span></dt><dt><span class="sect2"><a href="#cedar-config-commandline-options">Switches</a></span></dt><dt><span class="sect2"><a href="#cedar-config-commandline-actions">Actions</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-configfile">Configuration File Format</a></span></dt><dd><dl><dt><span class="sect2"><a href="#cedar-config-configfile-sample">Sample Configuration File</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-reference">Reference Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-options">Options Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-collect">Collect Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-stage">Stage Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-store">Store Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-purge">Purge Configuration</a></span></dt><dt><span class="sect2"><a href="#cedar-config-configfile-extensions">Extensions Configuration</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-poolofone">Setting up a Pool of One</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2535014">Step 1: Decide when you will run your backup.</a></span></dt><dt><span class="sect2"><a href="#id2535080">Step 2: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2535114">Step 3: Configure your CD-R or CD-RW drive.</a></span></dt><dt><span class="sect2"><a href="#id2535187">Step 4: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2535238">Step 5: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2535340">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2535408">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2535446">Step 8: Test your backup.</a></span></dt><dt><span class="sect2"><a href="#id2535512">Step 9: Modify the backup cron jobs.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-client">Setting up a Client Peer Node</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2535664">Step 1: Decide when you will run your backup.</a></span></dt><dt><span class="sect2"><a href="#id2535722">Step 2: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2535763">Step 3: Configure the master in your backup pool.</a></span></dt><dt><span class="sect2"><a href="#id2535808">Step 4: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2535978">Step 5: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2536069">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2536138">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2536181">Step 8: Test your backup.</a></span></dt><dt><span class="sect2"><a href="#id2536211">Step 9: Modify the backup cron jobs.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-master">Setting up a Master Peer Node</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2536396">Step 1: Decide when you will run your backup.</a></span></dt><dt><span class="sect2"><a href="#id2530073">Step 2: Make sure email works.</a></span></dt><dt><span class="sect2"><a href="#id2530107">Step 3: Configure your CD-R or CD-RW drive.</a></span></dt><dt><span class="sect2"><a href="#id2530180">Step 4: Configure your backup user.</a></span></dt><dt><span class="sect2"><a href="#id2536847">Step 5: Create your backup tree.</a></span></dt><dt><span class="sect2"><a href="#id2536947">Step 6: Create the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2537045">Step 7: Validate the Cedar Backup configuration file.</a></span></dt><dt><span class="sect2"><a href="#id2537089">Step 8: Test connectivity to client machines.</a></span></dt><dt><span class="sect2"><a href="#id2537140">Step 9: Test your backup.</a></span></dt><dt><span class="sect2"><a href="#id2537226">Step 10: Modify the backup cron jobs.</a></span></dt></dl></dd><dt><span class="sect1"><a href="#cedar-config-writer">Configuring your Writer Device</a></span></dt><dd><dl><dt><span class="sect2"><a href="#id2537341">SCSI Devices</a></span></dt><dt><span class="sect2"><a href="#id2537395">Non-SCSI Devices</a></span></dt><dt><span class="sect2"><a href="#id2537437">Linux Notes</a></span></dt><dt><span class="sect2"><a href="#id2537604">Mac OS X Notes</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-config-overview"></a>Overview</h2></div></div></div><p>
856
856
         Configuring Cedar Backup is unfortunately
857
857
         somewhat complicated.  The good news is that once you get through the
858
858
         initial configuration process, you'll hardly ever have to change
890
890
            you install from source.  
891
891
         </p><p>
892
892
            The configuration instructions below have been generalized so they
893
 
            should work well regardless of what platfomr you are running (i.e.
 
893
            should work well regardless of what platform you are running (i.e.
894
894
            RedHat, Gentoo, FreeBSD, etc.).  If instructions vary for a
895
895
            particular platform, you will find a note related to that
896
896
            platform.
939
939
         </pre><p>
940
940
            Note that the all action <span class="emphasis"><em>only</em></span> executes the
941
941
            standard four actions.  It never executes any of the configured
942
 
            extensions.  <sup>[<a name="id2538914" href="#ftn.id2538914">24</a>]</sup>
 
942
            extensions.  <sup>[<a name="id2530407" href="#ftn.id2530407">24</a>]</sup>
943
943
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="cedar-config-commandline-options"></a>Switches</h3></div></div></div><div class="variablelist"><dl><dt><span class="term"><code class="option">-h</code>, <code class="option">--help</code></span></dt><dd><p>Display usage/help listing.</p></dd><dt><span class="term"><code class="option">-V</code>, <code class="option">--version</code></span></dt><dd><p>Display version information.</p></dd><dt><span class="term"><code class="option">-b</code>, <code class="option">--verbose</code></span></dt><dd><p>
944
944
                     Print verbose output to the screen as well writing to the
945
945
                     logfile.  When this option is enabled, most information
989
989
                     Dump a Python stack trace instead of swallowing
990
990
                     exceptions.  This forces Cedar Backup to dump the entire
991
991
                     Python stack trace associated with an error, rather than
992
 
                     just progating last message it received back up to the
 
992
                     just propagating last message it received back up to the
993
993
                     user interface.  Under some circumstances, this is useful
994
994
                     information to include along with a bug report.
995
995
                  </p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="cedar-config-commandline-actions"></a>Actions</h3></div></div></div><p>
1009
1009
            per configuration.  The <code class="literal">all</code> action never
1010
1010
            executes extended actions, however.
1011
1011
         </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-config-configfile"></a>Configuration File Format</h2></div></div></div><p>
1012
 
         Cedar Backup is configured through an XML <sup>[<a name="id2539372" href="#ftn.id2539372">25</a>]</sup> configuration file,
 
1012
         Cedar Backup is configured through an XML <sup>[<a name="id2530866" href="#ftn.id2530866">25</a>]</sup> configuration file,
1013
1013
         usually called <code class="filename">/etc/cback.conf</code>.  The configuration
1014
1014
         file contains the following sections: <em class="firstterm">reference</em>,
1015
1015
         <em class="firstterm">options</em>, <em class="firstterm">collect</em>,
1022
1022
         For instance, on a client machine, administrators will generally only
1023
1023
         configure the collect and purge sections, while on a master machine
1024
1024
         they will have to configure all four action-related sections.
1025
 
         <sup>[<a name="id2539428" href="#ftn.id2539428">26</a>]</sup> The extensions section is
 
1025
         <sup>[<a name="id2530921" href="#ftn.id2530921">26</a>]</sup> The extensions section is
1026
1026
         always optional and can be omitted unless extensions are in use.
1027
1027
      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
1028
1028
            Even though the Mac OS X (darwin) filesystem is
1285
1285
                     functionality with standard Cedar Backup actions or with
1286
1286
                     arbitrary extensions.
1287
1287
                  </p><p>
1288
 
                     This section is optional, and can be repeatd as many times
 
1288
                     This section is optional, and can be repeated as many times
1289
1289
                     as necessary.
1290
1290
                  </p><p>
1291
1291
                     This subsection must contain the following two fields:
1418
1418
                     in configuration.  
1419
1419
                  </p><p>
1420
1420
                     The ignore file provides a way for individual users (who
1421
 
                     might not have access to Cedar backup configuration) to
 
1421
                     might not have access to Cedar Backup configuration) to
1422
1422
                     control which of their own directories get backed up.  For
1423
1423
                     instance, users with a <code class="filename">~/tmp</code>
1424
1424
                     directory might not want it backed up.  If they create an
1599
1599
                              if it were explicitly excluded in configuration.  
1600
1600
                           </p><p>
1601
1601
                              The ignore file provides a way for individual
1602
 
                              users (who might not have access to Cedar backup
 
1602
                              users (who might not have access to Cedar Backup
1603
1603
                              configuration) to control which of their own
1604
1604
                              directories get backed up.  For instance, users
1605
1605
                              with a <code class="filename">~/tmp</code> directory might
1730
1730
                     enough free space to stage all of the files collected from
1731
1731
                     all of the various machines in a backup pool.  Many
1732
1732
                     administrators set up purging to keep staging directories
1733
 
                     around for a week or more, which require even more space.
 
1733
                     around for a week or more, which requires even more space.
1734
1734
                  </p><p>
1735
1735
                     <span class="emphasis"><em>Restrictions:</em></span> Must be an absolute path
1736
1736
                  </p></dd><dt><span class="term"><code class="literal">peer</code> (local version)</span></dt><dd><p>Local client peer in a backup pool.</p><p>
1881
1881
                     the post-write consistency check, if enabled.
1882
1882
                  </p><p>
1883
1883
                     <span class="emphasis"><em>Restrictions:</em></span> Must be an absolute path.
1884
 
                  </p></dd><dt><span class="term"><code class="literal">target_scsi_id</code></span></dt><dd><p>SCSI id for writer device</p><p>
1885
 
                     In order to execute the store action, your CD-R or CD-RW
1886
 
                     drive must either be a SCSI device or must be configured
1887
 
                     to act like a SCSI device from the perspective of the
1888
 
                     <span><strong class="command">cdrecord</strong></span> and <span><strong class="command">mkisofs</strong></span>
1889
 
                     commands.  This value configures the SCSI id that will be
1890
 
                     used to write to your device.
 
1884
                  </p></dd><dt><span class="term"><code class="literal">target_scsi_id</code></span></dt><dd><p>SCSI id for the writer device.</p><p>
 
1885
                     This value is optional.  If you have configured your CD
 
1886
                     writer hardware to work through the normal filesystem
 
1887
                     device path, then you can leave this parameter unset.
 
1888
                     Cedar Backup will just use the target device (above) when
 
1889
                     talking to <span><strong class="command">cdrecord</strong></span>.
 
1890
                  </p><p>
 
1891
                     Otherwise, if you have SCSI CD writer hardware or you have
 
1892
                     configured your non-SCSI hardware to operate like a SCSI
 
1893
                     device, then you need to provide Cedar Backup with a SCSI
 
1894
                     id it can use when talking with
 
1895
                     <span><strong class="command">cdrecord</strong></span>.
1891
1896
                  </p><p>
1892
1897
                     For the purposes of Cedar Backup, a valid SCSI identifier
1893
 
                     must either be in the form
1894
 
                     &#8220;<span class="quote">scsibus,target,lun</span>&#8221;,
1895
 
                     &#8220;<span class="quote">ATA:scsibus,target,lun</span>&#8221;, or
1896
 
                     &#8220;<span class="quote">ATAPI:scsibus,target,lun</span>&#8221;.  For example,
1897
 
                     &#8220;<span class="quote">1,6,2</span>&#8221;, &#8220;<span class="quote">ATA:0,0,0</span>&#8221; and
1898
 
                     &#8220;<span class="quote">ATAPI:0,1,0</span>&#8221; are all valid identifiers.
1899
 
                  </p><p>
1900
 
                     Technically, Mac OS X identifiers are also accepted, but
1901
 
                     the syntax is not documented here because the store action
1902
 
                     is not supported for that platform.  See <a href="#cedar-config-scsi" title="Configuring your SCSI Device">the section called &#8220;Configuring your SCSI Device&#8221;</a> for more information on SCSI
1903
 
                     devices and how they are configured.
1904
 
                  </p><p>
1905
 
                     <span class="emphasis"><em>Restrictions:</em></span> Must be a valid SCSI identifier.
 
1898
                     must either be in the standard SCSI identifier form
 
1899
                     <code class="literal">scsibus,target,lun</code> or in the
 
1900
                     specialized-method form
 
1901
                     <code class="literal">&lt;method&gt;:scsibus,target,lun</code>.
 
1902
                  </p><p>
 
1903
                     An example of a standard SCSI identifier is
 
1904
                     <code class="literal">1,6,2</code>. Today, the two most common examples
 
1905
                     of the specialized-method form are
 
1906
                     <code class="literal">ATA:scsibus,target,lun</code> and
 
1907
                     <code class="literal">ATAPI:scsibus,target,lun</code>, but you may
 
1908
                     occassionally see other values (like
 
1909
                     <code class="literal">OLDATAPI</code> in some forks of
 
1910
                     <span><strong class="command">cdrecord</strong></span>).
 
1911
                  </p><p>
 
1912
                     See <a href="#cedar-config-writer" title="Configuring your Writer Device">the section called &#8220;Configuring your Writer Device&#8221;</a> for more
 
1913
                     information on writer devices and how they are configured.
 
1914
                  </p><p>
 
1915
                     <span class="emphasis"><em>Restrictions:</em></span> If set, must be a valid SCSI identifier.
1906
1916
                  </p></dd><dt><span class="term"><code class="literal">drive_speed</code></span></dt><dd><p>Speed of the drive, i.e. <code class="literal">2</code> for a 2x device.</p><p>
1907
1917
                     This field is optional.  If it doesn't exist, the
1908
1918
                     underlying device-related functionality will use the
2037
2047
            indexes.  The collect action has index 100, the stage index
2038
2048
            has action 200, the store action has index 300 and the purge
2039
2049
            action has index 400.
2040
 
         </p><p>
2041
 
            For instance, imagine that a third-party developer provided a Cedar
 
2050
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
 
2051
               Extended actions should always be configured to run
 
2052
               <span class="emphasis"><em>before</em></span> the standard action they are
 
2053
               associated with.  This is because of the way indicator files are
 
2054
               used in Cedar Backup.  For instance, the staging process
 
2055
               considers the collect action to be complete for a peer if the
 
2056
               file <code class="filename">cback.collect</code> can be found in that
 
2057
               peer's collect directory.  
 
2058
            </p><p>
 
2059
               If you were to run the standard collect action before your other
 
2060
               collect-like actions, the indicator file would be written after
 
2061
               the collect action completes but <span class="emphasis"><em>before</em></span> all
 
2062
               of the other actions even run.  Because of this, there's a
 
2063
               chance the stage process might back up the collect directory
 
2064
               before the entire set of collect-like actions have completed
 
2065
               &#8212; and you would get no warning about this in your email!
 
2066
            </p></div><p>
 
2067
            So, imagine that a third-party developer provided a Cedar
2042
2068
            Backup extension to back up a certain kind of database repository,
2043
2069
            and you wanted to map that extension to the &#8220;<span class="quote">database</span>&#8221;
2044
2070
            command-line action.  You have been told that this function is
2050
2076
            To configure this extension, you would list an action with a name
2051
2077
            &#8220;<span class="quote">database</span>&#8221;, a module &#8220;<span class="quote">foo</span>&#8221;,
2052
2078
            a function name &#8220;<span class="quote">bar</span>&#8221; and an index of
2053
 
            &#8220;<span class="quote">101</span>&#8221;.
 
2079
            &#8220;<span class="quote">99</span>&#8221;.
2054
2080
         </p><p>
2055
2081
            This is how the hypothetical action would be configured:
2056
2082
         </p><pre class="programlisting">
2059
2085
      &lt;name&gt;database&lt;/name&gt;
2060
2086
      &lt;module&gt;foo&lt;/module&gt;
2061
2087
      &lt;function&gt;bar&lt;/function&gt;
2062
 
      &lt;index&gt;101&lt;/index&gt;
 
2088
      &lt;index&gt;99&lt;/index&gt;
2063
2089
   &lt;/action&gt;
2064
2090
&lt;/extensions&gt;
2065
2091
         </pre><p>
2106
2132
            directory), you can do that.  You'll just have to modify the
2107
2133
            procedure below based on information in the remainder of the
2108
2134
            manual.
2109
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2543441"></a>Step 1: Make sure email works.</h3></div></div></div><p>
 
2135
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535014"></a>Step 1: Decide when you will run your backup.</h3></div></div></div><p>
 
2136
            There are four parts to a Cedar Backup run: collect, stage, store
 
2137
            and purge. The usual way of setting off these steps is through a
 
2138
            set of cron jobs.  Although you won't create your cron jobs just
 
2139
            yet, you should decide now when you will run your backup so you are
 
2140
            prepared for later.
 
2141
         </p><p>
 
2142
            Backing up large directories and creating ISO CD images can be
 
2143
            intensive operations, and could slow your computer down
 
2144
            significantly. Choose a backup time that will not interfere with
 
2145
            normal use of your computer.  Usually, you will want the backup to
 
2146
            occur every day, but it is possible to configure cron to execute
 
2147
            the backup only one day per week, three days per week, etc.
 
2148
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
 
2149
               Because of the way Cedar Backup works, you must ensure that your
 
2150
               backup <span class="emphasis"><em>always</em></span> runs son the first day of your
 
2151
               configured week.  This is because Cedar Backup will only clear
 
2152
               incremental backup information and re-initialize your media when
 
2153
               running on the first day of the week.  If you skip running Cedar
 
2154
               Backup on the first day of the week, your backups will likely be
 
2155
               &#8220;<span class="quote">confused</span>&#8221; until the next week begins, or until you
 
2156
               re-run the backup using the <code class="option">--full</code> flag.
 
2157
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535080"></a>Step 2: Make sure email works.</h3></div></div></div><p>
2110
2158
            Cedar Backup relies on email for problem notification.  This
2111
2159
            notification works through the magic of cron.  Cron will email any
2112
2160
            output from each job it executes to the user associated with the
2121
2169
            that you may prefer to configure root's email to forward to some
2122
2170
            other user, so you do not need to check the root user's mail in
2123
2171
            order to see Cedar Backup errors.
2124
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2543475"></a>Step 2: Configure your CD-R or CD-RW drive.</h3></div></div></div><p>
2125
 
            Your CD-R or CD-RW drive must either be a SCSI device or must be
2126
 
            configured to act like a SCSI device from the perspective of the
2127
 
            <span><strong class="command">cdrecord</strong></span> and <span><strong class="command">mkisofs</strong></span>
2128
 
            commands.  Regardless of what kind of drive you have, make sure you
2129
 
            know its SCSI address and its filesystem device name.  The SCSI
2130
 
            address will be used to write to media, and the device name will be
2131
 
            used when Cedar Backup needs to mount the media (for instance, when
2132
 
            a validation check must be run).
2133
 
         </p><p>
2134
 
            See <a href="#cedar-config-scsi" title="Configuring your SCSI Device">the section called &#8220;Configuring your SCSI Device&#8221;</a> for more
2135
 
            information on SCSI devices and how they are configured.
 
2172
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535114"></a>Step 3: Configure your CD-R or CD-RW drive.</h3></div></div></div><p>
 
2173
            Before using Cedar Backup, your writer device must be properly
 
2174
            configured.  If you have configured your CD writer hardware to work
 
2175
            through the normal filesystem device path, then you just need to
 
2176
            know the path to the device on disk (something like
 
2177
            <code class="filename">/dev/cdrw</code>).  Cedar Backup will use the this
 
2178
            device path both when talking to <span><strong class="command">cdrecord</strong></span> and
 
2179
            when doing filesystem operations like running media validation.
 
2180
         </p><p>
 
2181
            Your other option is to configure your writer hardware like a SCSI
 
2182
            device (either because it <span class="emphasis"><em>is</em></span> a SCSI device or
 
2183
            because you are using some sort of interface that makes it look
 
2184
            like one).  In this case, Cedar Backup will use the SCSI id when
 
2185
            talking to <span><strong class="command">cdrecord</strong></span> and the device path when
 
2186
            running filesystem operations.
 
2187
         </p><p>
 
2188
            See <a href="#cedar-config-writer" title="Configuring your Writer Device">the section called &#8220;Configuring your Writer Device&#8221;</a> for more information on
 
2189
            writer devices and how they are configured.
2136
2190
         </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
2137
2191
               There is no need to set up your CD-R or CD-RW device if you
2138
2192
               have decided not to execute the store action.
2139
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2543530"></a>Step 3: Configure your backup user.</h3></div></div></div><p>
 
2193
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535187"></a>Step 4: Configure your backup user.</h3></div></div></div><p>
2140
2194
             Choose a user to be used for backups. Some platforms may
2141
2195
             come with a &#8220;<span class="quote">ready made</span>&#8221; backup user. For other
2142
2196
             platforms, you may have to create a user yourself. You may
2148
2202
               Standard Debian systems come with a user named
2149
2203
               <code class="literal">backup</code>.  You may choose to stay with this
2150
2204
               user or create another one.
2151
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2543581"></a>Step 4: Create your backup tree.</h3></div></div></div><p>
 
2205
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535238"></a>Step 5: Create your backup tree.</h3></div></div></div><p>
2152
2206
            Cedar Backup requires a backup directory tree on disk. This
2153
2207
            directory tree must be roughly three times as big as the amount of
2154
2208
            data that will be backed up on a nightly basis, to allow for the
2185
2239
               directory structure within some existing Debian directory such
2186
2240
               as <code class="filename">/var/backups</code> or
2187
2241
               <code class="filename">/var/tmp</code>.
2188
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2543683"></a>Step 5: Modify the backup cron jobs.</h3></div></div></div><p>
2189
 
            There are four parts to a Cedar Backup run: collect, stage, store
2190
 
            and purge. The usual way of setting off these steps is through a
2191
 
            cron job.  For more information on using cron, see the manpage for
2192
 
            crontab(5).
 
2242
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535340"></a>Step 6: Create the Cedar Backup configuration file.</h3></div></div></div><p>
 
2243
            Following the instructions in <a href="#cedar-config-configfile" title="Configuration File Format">the section called &#8220;Configuration File Format&#8221;</a> (above) create a configuration
 
2244
            file for your machine.  Since you are working with a pool of one,
 
2245
            you must configure all four action-specific sections: collect,
 
2246
            stage, store and purge.
2193
2247
         </p><p>
2194
 
            Backing up large directories and creating ISO CD images can be
2195
 
            intensive operations, and could slow your computer down
2196
 
            significantly. Choose a backup time that will not interfere with
2197
 
            normal use of your computer.  Usually, you will want the backup to
2198
 
            occur every day, but it is possible to configure cron to execute
2199
 
            the backup only one day per week, three days per week, etc.
 
2248
            The usual location for the Cedar Backup config file is
 
2249
            <code class="filename">/etc/cback.conf</code>.  If you change the location,
 
2250
            make sure you edit your cronjobs (below) to point the
 
2251
            <span><strong class="command">cback</strong></span> script at the correct config file (using
 
2252
            the <code class="option">--config</code> option).
2200
2253
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
2201
 
               Because of the way Cedar Backup works, you must ensure that your
2202
 
               backup <span class="emphasis"><em>always</em></span> run on the first day of your
2203
 
               configured week.  This is because Cedar Backup will only clear
2204
 
               incremental backup information and re-initialize your media when
2205
 
               running on the first day of the week.  If you skip running Cedar
2206
 
               Backup on the first day of the week, your backups will likely be
2207
 
               &#8220;<span class="quote">confused</span>&#8221; until either the next week, or until you
2208
 
               re-run the backup using the <code class="option">--full</code> flag.
2209
 
            </p></div><p>
 
2254
               Configuration files should always be writable only by root
 
2255
               (or by the file owner, if the owner is not root).
 
2256
            </p><p>
 
2257
               If you intend to place confidental information into the Cedar
 
2258
               Backup configuration file, make sure that you set the filesystem
 
2259
               permissions on the file appropriately.  For instance, if you
 
2260
               configure any extensions that require passwords or other similar
 
2261
               information, you should make the file readable only to root or
 
2262
               to the file owner (if the owner is not root).
 
2263
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535408"></a>Step 7: Validate the Cedar Backup configuration file.</h3></div></div></div><p>
 
2264
            Use the command <span><strong class="command">cback validate</strong></span> to validate your
 
2265
            configuration file. This command checks that the configuration file
 
2266
            can be found and parsed, and also checks for typical configuration
 
2267
            problems, such as invalid CD-R/CD-RW device entries.
 
2268
         </p><p>
 
2269
            Note: the most common cause of configuration problems is in not
 
2270
            closing XML tags properly. Any XML tag that is
 
2271
            &#8220;<span class="quote">opened</span>&#8221; must be &#8220;<span class="quote">closed</span>&#8221; appropriately.
 
2272
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535446"></a>Step 8: Test your backup.</h3></div></div></div><p>
 
2273
            Place a valid CD-R or CD-RW disc in your drive, and then use the
 
2274
            command <span><strong class="command">cback --full all</strong></span>.  You should execute
 
2275
            this command as root.  If the command completes with no output,
 
2276
            then the backup was run successfully.
 
2277
         </p><p>
 
2278
            Just to be sure that everything worked properly, check the logfile
 
2279
            (<code class="filename">/var/log/cback.log</code>) for errors and also mount
 
2280
            the CD-R or CD-RW disc to be sure it can be read.
 
2281
         </p><p>
 
2282
            <span class="emphasis"><em>If Cedar Backup ever completes &#8220;<span class="quote">normally</span>&#8221;
 
2283
            but the disc that is created is not usable, please report this as a
 
2284
            bug.
 
2285
            <sup>[<a name="cedar-config-foot-bugzilla" href="#ftn.cedar-config-foot-bugzilla">28</a>]</sup>
 
2286
            To be safe, always enable the consistency check option in the
 
2287
            store configuration section.</em></span>
 
2288
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535512"></a>Step 9: Modify the backup cron jobs.</h3></div></div></div><p>
2210
2289
            Since Cedar Backup should be run as root, one way to configure the
2211
2290
            cron job is to add a line like this to your
2212
2291
            <code class="filename">/etc/crontab</code> file:
2227
2306
            <span><strong class="command">cdrecord</strong></span> or <span><strong class="command">mkisofs</strong></span> fail
2228
2307
            mysteriously.
2229
2308
         </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
 
2309
               For general information about using cron, see the manpage for
 
2310
               crontab(5).
 
2311
            </p><p>
2230
2312
               On a Debian system, execution of daily backups is controlled by
2231
2313
               the file <code class="filename">/etc/cron.d/cedar-backup2</code>.  As
2232
2314
               installed, this file contains several different settings, all
2233
2315
               commented out.  Uncomment the &#8220;<span class="quote">Single machine (pool of
2234
2316
               one)</span>&#8221; entry in the file, and change the line so that the
2235
2317
               backup goes off when you want it to.
2236
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2538684"></a>Step 6: Create the Cedar Backup configuration file.</h3></div></div></div><p>
2237
 
            Following the instructions in <a href="#cedar-config-configfile" title="Configuration File Format">the section called &#8220;Configuration File Format&#8221;</a> (above) create a configuration
2238
 
            file for your machine.  Since you are working with a pool of one,
2239
 
            you must configure all four action-specific sections: collect,
2240
 
            stage, store and purge.
2241
 
         </p><p>
2242
 
            The usual location for the Cedar Backup config file is
2243
 
            <code class="filename">/etc/cback.conf</code>.  If you change the location,
2244
 
            make sure you edit your cronjobs (step 5) to point the
2245
 
            <span><strong class="command">cback</strong></span> script at the correct config file (using
2246
 
            the <code class="option">--config</code> option).
2247
 
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
2248
 
               Configuration files should always be writable only by root
2249
 
               (or by the file owner, if the owner is not root).
2250
 
            </p><p>
2251
 
               If you intend to place confidental information into the Cedar
2252
 
               Backup configuration file, make sure that you set the filesystem
2253
 
               permissions on the file appropriately.  For instance, if you
2254
 
               configure any extensions that require passwords or other similar
2255
 
               information, you should make the file readable only to root or
2256
 
               to the file owner (if the owner is not root).
2257
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2544032"></a>Step 7: Validate the Cedar Backup configuration file.</h3></div></div></div><p>
2258
 
            Use the command <span><strong class="command">cback validate</strong></span> to validate your
2259
 
            configuration file. This command checks that the configuration file
2260
 
            can be found and parsed, and also checks for typical configuration
2261
 
            problems, such as invalid CD-R/CD-RW device entries.
2262
 
         </p><p>
2263
 
            Note: the most common cause of configuration problems is in not
2264
 
            closing XML tags properly. Any XML tag that is
2265
 
            &#8220;<span class="quote">opened</span>&#8221; must be &#8220;<span class="quote">closed</span>&#8221; appropriately.
2266
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2544070"></a>Step 8: Test your backup.</h3></div></div></div><p>
2267
 
            Place a valid CD-R or CD-RW disc in your drive, and then use the
2268
 
            command <span><strong class="command">cback --full all</strong></span>.  You should execute
2269
 
            this command as root.  If the command completes with no output,
2270
 
            then the backup was run successfully.
2271
 
         </p><p>
2272
 
            Just to be sure that everything worked properly, check the logfile
2273
 
            (<code class="filename">/var/log/cback.log</code>) for errors and also mount
2274
 
            the CD-R or CD-RW disc to be sure it can be read.
2275
 
         </p><p>
2276
 
            <span class="emphasis"><em>If Cedar Backup ever completes &#8220;<span class="quote">normally</span>&#8221;
2277
 
            but the disc that is created is not usable, please report this as a
2278
 
            bug.
2279
 
            <sup>[<a name="cedar-config-foot-bugzilla" href="#ftn.cedar-config-foot-bugzilla">28</a>]</sup>
2280
 
            To be safe, always enable the consistency check option in the
2281
 
            store configuration section.</em></span>
2282
 
         </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-config-client"></a>Setting up a Client Peer Node</h2></div></div></div><p>
 
2318
            </p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-config-client"></a>Setting up a Client Peer Node</h2></div></div></div><p>
2283
2319
         Cedar Backup has been designed to backup entire &#8220;<span class="quote">pools</span>&#8221;
2284
2320
         of machines.  In any given pool, there is one master and some number
2285
2321
         of clients.  Most of the work takes place on the master, so
2299
2335
      </p><p>
2300
2336
         Note: all of these configuration steps should be run as the root user,
2301
2337
         unless otherwise indicated.
2302
 
      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2544184"></a>Step 1: Make sure email works.</h3></div></div></div><p>
 
2338
      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535664"></a>Step 1: Decide when you will run your backup.</h3></div></div></div><p>
 
2339
            There are four parts to a Cedar Backup run: collect, stage, store
 
2340
            and purge. The usual way of setting off these steps is through a
 
2341
            set of cron jobs.  Although you won't create your cron jobs just
 
2342
            yet, you should decide now when you will run your backup so you are
 
2343
            prepared for later.
 
2344
         </p><p>
 
2345
            Backing up large directories and creating ISO CD images can be
 
2346
            intensive operations, and could slow your computer down
 
2347
            significantly. Choose a backup time that will not interfere with
 
2348
            normal use of your computer.  Usually, you will want the backup to
 
2349
            occur every day, but it is possible to configure cron to execute
 
2350
            the backup only one day per week, three days per week, etc.
 
2351
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
 
2352
               Because of the way Cedar Backup works, you must ensure that your
 
2353
               backup <span class="emphasis"><em>always</em></span> runs on the first day of your
 
2354
               configured week.  This is because Cedar Backup will only clear
 
2355
               incremental backup information and re-initialize your media when
 
2356
               running on the first day of the week.  If you skip running Cedar
 
2357
               Backup on the first day of the week, your backups will likely be
 
2358
               &#8220;<span class="quote">confused</span>&#8221; until the next week begins, or until you
 
2359
               re-run the backup using the <code class="option">--full</code> flag.
 
2360
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535722"></a>Step 2: Make sure email works.</h3></div></div></div><p>
2303
2361
            Cedar Backup relies on email for problem notification.  This
2304
2362
            notification works through the magic of cron.  Cron will email any
2305
2363
            output from each job it executes to the user associated with the
2314
2372
            that you may prefer to configure root's email to forward to some
2315
2373
            other user, so you do not need to check the root user's mail in
2316
2374
            order to see Cedar Backup errors.
2317
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2543724"></a>Step 2: Configure the master in your backup pool.</h3></div></div></div><p>
 
2375
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535763"></a>Step 3: Configure the master in your backup pool.</h3></div></div></div><p>
2318
2376
            You will not be able to complete the client configuration until at
2319
2377
            least step 3 of the master's configuration has been completed. In
2320
2378
            particular, you will need to know the master's public SSH identity
2328
2386
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA0vOKjlfwohPg1oPRdrmwHk75l3mI9Tb/WRZfVnu2Pw69
2329
2387
uyphM9wBLRo6QfOC2T8vZCB8o/ZIgtAM3tkM0UgQHxKBXAZ+H36TOgg7BcI20I93iGtzpsMA/uXQy8kH
2330
2388
HgZooYqQ9pw+ZduXgmPcAAv2b5eTm07wRqFt/U84k6bhTzs= user@machine
2331
 
         </pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2543769"></a>Step 3: Configure your backup user.</h3></div></div></div><p>
 
2389
         </pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535808"></a>Step 4: Configure your backup user.</h3></div></div></div><p>
2332
2390
             Choose a user to be used for backups. Some platforms may come with
2333
2391
             a "ready made" backup user. For other platforms, you may have to
2334
2392
             create a user yourself. You may choose any id you like, but a
2377
2435
            to do things your way.  The important part is that the master must
2378
2436
            be able to SSH into a client <span class="emphasis"><em>with no password entry
2379
2437
            required</em></span>.
2380
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2543939"></a>Step 4: Create your backup tree.</h3></div></div></div><p>
 
2438
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2535978"></a>Step 5: Create your backup tree.</h3></div></div></div><p>
2381
2439
            Cedar Backup requires a backup directory tree on disk. This
2382
2440
            directory tree must be roughly as big as the amount of data that
2383
2441
            will be backed up on a nightly basis (more if you elect not to
2409
2467
               within some existing Debian directory such as
2410
2468
               <code class="filename">/var/backups</code> or
2411
2469
               <code class="filename">/var/tmp</code>.
2412
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2544797"></a>Step 5: Modify the backup cron jobs.</h3></div></div></div><p>
2413
 
            There are two parts to a Cedar Backup run on a client: collect
2414
 
            and purge. The usual way of setting off these steps is through a
2415
 
            cron job.  For more information on using cron, see the manpage for
2416
 
            crontab(5).
2417
 
         </p><p>
2418
 
            Backing up large directories could slow your computer down
2419
 
            significantly. Choose a backup time that will not interfere with
2420
 
            normal use of your computer.  Usually, you will want the backup to
2421
 
            go occur every day, but it is possible to configure cron to 
2422
 
            execute the backup only one day per week, three days per week,
2423
 
            etc.
2424
 
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
2425
 
               Because of the way Cedar Backup works, you must ensure that at
2426
 
               least your collect action <span class="emphasis"><em>always</em></span> runs on
2427
 
               the first day of your configured week.  This is because Cedar
2428
 
               Backup will only clear incremental backup information when
2429
 
               running on the first day of the week.  If you skip running the
2430
 
               collect action on the first day of the week, your backups will
2431
 
               likely be &#8220;<span class="quote">confused</span>&#8221; until either the next week, or
2432
 
               until you re-run the collect action backup using the
2433
 
               <code class="option">--full</code> flag.
2434
 
            </p></div><p>
2435
 
            Since Cedar Backup should be run as root, you should add a set of
2436
 
            lines like this to your <code class="filename">/etc/crontab</code> file:
2437
 
         </p><pre class="programlisting">
2438
 
30 00 * * * root  cback collect
2439
 
30 06 * * * root  cback purge
2440
 
         </pre><p>
2441
 
            You should consider adding the <code class="option">--output</code> or
2442
 
            <code class="option">-O</code> switch to your <span><strong class="command">cback</strong></span>
2443
 
            command-line in cron.  This will result in larger logs, but could
2444
 
            help diagnose problems when commands like
2445
 
            <span><strong class="command">cdrecord</strong></span> or <span><strong class="command">mkisofs</strong></span> fail
2446
 
            mysteriously.
2447
 
         </p><p>
2448
 
            You will need to coordinate the collect and purge actions on the
2449
 
            client so that the collect action completes before the master
2450
 
            attempts to stage, and so that the purge action does not begin
2451
 
            until after the master has completed staging.  Usually, allowing an
2452
 
            hour or two between steps should be sufficient.  <sup>[<a name="cedar-config-foot-coordinate" href="#ftn.cedar-config-foot-coordinate">29</a>]</sup>
2453
 
         </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
2454
 
               On a Debian system, execution of daily backups is controlled by
2455
 
               the file <code class="filename">/etc/cron.d/cedar-backup2</code>.  As
2456
 
               installed, this file contains several different settings, all
2457
 
               commented out.  Uncomment the &#8220;<span class="quote">Client machine</span>&#8221;
2458
 
               entries in the file, and change the lines so that the backup
2459
 
               goes off when you want it to.
2460
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2544960"></a>Step 6: Create the Cedar Backup configuration file.</h3></div></div></div><p>
 
2470
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2536069"></a>Step 6: Create the Cedar Backup configuration file.</h3></div></div></div><p>
2461
2471
            Following the instructions in <a href="#cedar-config-configfile" title="Configuration File Format">the section called &#8220;Configuration File Format&#8221;</a> (above), create a configuration
2462
2472
            file for your machine.  Since you are working with a client, you
2463
2473
            must configure all action-specific sections for the collect and
2465
2475
         </p><p>
2466
2476
            The usual location for the Cedar Backup config file is
2467
2477
            <code class="filename">/etc/cback.conf</code>.  If you change the location,
2468
 
            make sure you edit your cronjobs (step 5) to point the
 
2478
            make sure you edit your cronjobs (below) to point the
2469
2479
            <span><strong class="command">cback</strong></span> script at the correct config file (using
2470
2480
            the <code class="option">--config</code> option).
2471
2481
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
2478
2488
               configure any extensions that require passwords or other similar
2479
2489
               information, you should make the file readable only to root or
2480
2490
               to the file owner (if the owner is not root).
2481
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545028"></a>Step 7: Validate the Cedar Backup configuration file.</h3></div></div></div><p>
 
2491
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2536138"></a>Step 7: Validate the Cedar Backup configuration file.</h3></div></div></div><p>
2482
2492
            Use the command <span><strong class="command">cback validate</strong></span> to validate your
2483
2493
            configuration file. This command checks that the configuration file
2484
2494
            can be found and parsed, and also checks for typical configuration
2489
2499
            Note: the most common cause of configuration problems is in not
2490
2500
            closing XML tags properly. Any XML tag that is
2491
2501
            &#8220;<span class="quote">opened</span>&#8221; must be &#8220;<span class="quote">closed</span>&#8221; appropriately.
2492
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545071"></a>Step 8: Test your backup.</h3></div></div></div><p>
 
2502
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2536181"></a>Step 8: Test your backup.</h3></div></div></div><p>
2493
2503
            Use the command <span><strong class="command">cback --full collect purge</strong></span>.  If the 
2494
2504
            command completes with no output, then the backup was run successfully.
2495
2505
            Just to be sure that everything worked properly, check the logfile 
2496
2506
            (<code class="filename">/var/log/cback.log</code>) for errors.
2497
 
         </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-config-master"></a>Setting up a Master Peer Node</h2></div></div></div><p>
 
2507
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2536211"></a>Step 9: Modify the backup cron jobs.</h3></div></div></div><p>
 
2508
            Since Cedar Backup should be run as root, you should add a set of
 
2509
            lines like this to your <code class="filename">/etc/crontab</code> file:
 
2510
         </p><pre class="programlisting">
 
2511
30 00 * * * root  cback collect
 
2512
30 06 * * * root  cback purge
 
2513
         </pre><p>
 
2514
            You should consider adding the <code class="option">--output</code> or
 
2515
            <code class="option">-O</code> switch to your <span><strong class="command">cback</strong></span>
 
2516
            command-line in cron.  This will result in larger logs, but could
 
2517
            help diagnose problems when commands like
 
2518
            <span><strong class="command">cdrecord</strong></span> or <span><strong class="command">mkisofs</strong></span> fail
 
2519
            mysteriously.
 
2520
         </p><p>
 
2521
            You will need to coordinate the collect and purge actions on the
 
2522
            client so that the collect action completes before the master
 
2523
            attempts to stage, and so that the purge action does not begin
 
2524
            until after the master has completed staging.  Usually, allowing an
 
2525
            hour or two between steps should be sufficient.  <sup>[<a name="cedar-config-foot-coordinate" href="#ftn.cedar-config-foot-coordinate">29</a>]</sup>
 
2526
         </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
 
2527
               For general information about using cron, see the manpage for
 
2528
               crontab(5).
 
2529
            </p><p>
 
2530
               On a Debian system, execution of daily backups is controlled by
 
2531
               the file <code class="filename">/etc/cron.d/cedar-backup2</code>.  As
 
2532
               installed, this file contains several different settings, all
 
2533
               commented out.  Uncomment the &#8220;<span class="quote">Client machine</span>&#8221;
 
2534
               entries in the file, and change the lines so that the backup
 
2535
               goes off when you want it to.
 
2536
            </p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-config-master"></a>Setting up a Master Peer Node</h2></div></div></div><p>
2498
2537
         Cedar Backup has been designed to backup entire &#8220;<span class="quote">pools</span>&#8221;
2499
2538
         of machines.  In any given pool, there is one master and some number
2500
2539
         of clients.  Most of the work takes place on the master, so
2523
2562
            directory), you can do that.  You'll just have to modify the
2524
2563
            procedure below based on information in the remainder of the
2525
2564
            manual.
2526
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545169"></a>Step 1: Make sure email works.</h3></div></div></div><p>
 
2565
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2536396"></a>Step 1: Decide when you will run your backup.</h3></div></div></div><p>
 
2566
            There are four parts to a Cedar Backup run: collect, stage, store
 
2567
            and purge. The usual way of setting off these steps is through a
 
2568
            set of cron jobs.  Although you won't create your cron jobs just
 
2569
            yet, you should decide now when you will run your backup so you are
 
2570
            prepared for later.
 
2571
         </p><p>
 
2572
            Keep in mind that you do not necessarily have to run the collect
 
2573
            action on the master.  See notes further below for more
 
2574
            information.
 
2575
         </p><p>
 
2576
            Backing up large directories and creating ISO CD images can be
 
2577
            intensive operations, and could slow your computer down
 
2578
            significantly. Choose a backup time that will not interfere with
 
2579
            normal use of your computer.  Usually, you will want the backup to
 
2580
            occur every day, but it is possible to configure cron to execute
 
2581
            the backup only one day per week, three days per week, etc.
 
2582
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
 
2583
               Because of the way Cedar Backup works, you must ensure that your
 
2584
               backup <span class="emphasis"><em>always</em></span> runs on the first day of your
 
2585
               configured week.  This is because Cedar Backup will only clear
 
2586
               incremental backup information and re-initialize your media when
 
2587
               running on the first day of the week.  If you skip running Cedar
 
2588
               Backup on the first day of the week, your backups will likely be
 
2589
               &#8220;<span class="quote">confused</span>&#8221; until the next week begins, or until you
 
2590
               re-run the backup using the <code class="option">--full</code> flag.
 
2591
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2530073"></a>Step 2: Make sure email works.</h3></div></div></div><p>
2527
2592
            Cedar Backup relies on email for problem notification.  This
2528
2593
            notification works through the magic of cron.  Cron will email any
2529
2594
            output from each job it executes to the user associated with the
2538
2603
            that you may prefer to configure root's email to forward to some
2539
2604
            other user, so you do not need to check the root user's mail in
2540
2605
            order to see Cedar Backup errors.
2541
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545211"></a>Step 2: Configure your CD-R or CD-RW drive.</h3></div></div></div><p>
2542
 
            Your CD-R or CD-RW drive must either be a SCSI device or must be
2543
 
            configured to act like a SCSI device from the perspective of the
2544
 
            <span><strong class="command">cdrecord</strong></span> and <span><strong class="command">mkisofs</strong></span>
2545
 
            commands.  Regardless of what kind of drive you have, make sure you
2546
 
            know its SCSI address and its filesystem device name.  The SCSI
2547
 
            address will be used to write to media, and the device name will be
2548
 
            used when Cedar Backup needs to mount the media (for instance, when
2549
 
            a validation check must be run).
2550
 
         </p><p>
2551
 
            See <a href="#cedar-config-scsi" title="Configuring your SCSI Device">the section called &#8220;Configuring your SCSI Device&#8221;</a> for more
2552
 
            information on SCSI devices and how they are configured.
 
2606
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2530107"></a>Step 3: Configure your CD-R or CD-RW drive.</h3></div></div></div><p>
 
2607
            Before using Cedar Backup, your writer device must be properly
 
2608
            configured.  If you have configured your CD writer hardware to work
 
2609
            through the normal filesystem device path, then you just need to
 
2610
            know the path to the device on disk (something like
 
2611
            <code class="filename">/dev/cdrw</code>).  Cedar Backup will use the this
 
2612
            device path both when talking to <span><strong class="command">cdrecord</strong></span> and
 
2613
            when doing filesystem operations like running media validation.
 
2614
         </p><p>
 
2615
            Your other option is to configure your writer hardware like a SCSI
 
2616
            device (either because it <span class="emphasis"><em>is</em></span> a SCSI device or
 
2617
            because you are using some sort of interface that makes it look
 
2618
            like one).  In this case, Cedar Backup will use the SCSI id when
 
2619
            talking to <span><strong class="command">cdrecord</strong></span> and the device path when
 
2620
            running filesystem operations.
 
2621
         </p><p>
 
2622
            See <a href="#cedar-config-writer" title="Configuring your Writer Device">the section called &#8220;Configuring your Writer Device&#8221;</a> for more information on
 
2623
            writer devices and how they are configured.
2553
2624
         </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
2554
2625
               There is no need to set up your CD-R or CD-RW device if you
2555
2626
               have decided not to execute the store action.
2556
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545266"></a>Step 3: Configure your backup user.</h3></div></div></div><p>
 
2627
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2530180"></a>Step 4: Configure your backup user.</h3></div></div></div><p>
2557
2628
             Choose a user to be used for backups. Some platforms may come with
2558
2629
             a &#8220;<span class="quote">ready made</span>&#8221; backup user. For other platforms, you
2559
2630
             may have to create a user yourself. You may choose any id you
2594
2665
            to do things your way.  The important part is that the master must
2595
2666
            be able to SSH into a client <span class="emphasis"><em>with no password entry
2596
2667
            required</em></span>.
2597
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545409"></a>Step 4: Create your backup tree.</h3></div></div></div><p>
 
2668
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2536847"></a>Step 5: Create your backup tree.</h3></div></div></div><p>
2598
2669
            Cedar Backup requires a backup directory tree on disk. This
2599
2670
            directory tree must be roughly large enough hold twice as much data
2600
2671
            as will be backed up from the entire pool on a given night, plus
2630
2701
               directory structure within some existing Debian directory such
2631
2702
               as <code class="filename">/var/backups</code> or
2632
2703
               <code class="filename">/var/tmp</code>.
2633
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545509"></a>Step 5: Modify the backup cron jobs.</h3></div></div></div><p>
2634
 
            There are four parts to a Cedar Backup run: collect, stage, store
2635
 
            and purge. The usual way of setting off these steps is through a
2636
 
            cron job.  For more information on using cron, see the manpage for
2637
 
            crontab(5).
2638
 
         </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
2639
 
               Keep in mind that you do not necessarily have to run the collect
2640
 
               action on the master.  See notes further below for more
2641
 
               information.
2642
 
            </p></div><p>
2643
 
            Backing up large directories and creating ISO CD images can be
2644
 
            intensive operations, and could slow your computer down
2645
 
            significantly. Choose a backup time that will not interfere with
2646
 
            normal use of your computer.  Usually, you will want the backup to
2647
 
            go occur every day, but it is possible to configure cron to 
2648
 
            execute the backup only one day per week, three days per week,
2649
 
            etc.
2650
 
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
2651
 
               Because of the way Cedar Backup works, you must ensure that at
2652
 
               least your collect and store actions <span class="emphasis"><em>always</em></span>
2653
 
               run on the first day of your configured week.  This is because
2654
 
               Cedar Backup will only clear incremental backup information and
2655
 
               re-initialize your media when running on the first day of the
2656
 
               week.  If you skip running Cedar Backup on the first day of the
2657
 
               week, your backups will likely be &#8220;<span class="quote">confused</span>&#8221; until
2658
 
               either the next week, or until you re-run the collect and store
2659
 
               actions using the <code class="option">--full</code> flag.
2660
 
            </p></div><p>
2661
 
            Since Cedar Backup should be run as root, you should add a set of
2662
 
            lines like this to your <code class="filename">/etc/crontab</code> file:
2663
 
         </p><pre class="programlisting">
2664
 
30 00 * * * root  cback collect
2665
 
30 02 * * * root  cback stage
2666
 
30 04 * * * root  cback store
2667
 
30 06 * * * root  cback purge
2668
 
         </pre><p>
2669
 
            You should consider adding the <code class="option">--output</code> or
2670
 
            <code class="option">-O</code> switch to your <span><strong class="command">cback</strong></span>
2671
 
            command-line in cron.  This will result in larger logs, but could
2672
 
            help diagnose problems when commands like
2673
 
            <span><strong class="command">cdrecord</strong></span> or <span><strong class="command">mkisofs</strong></span> fail
2674
 
            mysteriously.
2675
 
         </p><p>
2676
 
            You will need to coordinate the collect and purge actions on
2677
 
            clients so that their collect actions complete before the master
2678
 
            attempts to stage, and so that their purge actions do not begin
2679
 
            until after the master has completed staging.  Usually, allowing
2680
 
            an hour or two between steps should be sufficient.
2681
 
            <sup>[<a href="#ftn.cedar-config-foot-coordinate">29</a>]</sup>
2682
 
         </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
2683
 
               On a Debian system, execution of daily backups is controlled by
2684
 
               the file <code class="filename">/etc/cron.d/cedar-backup2</code>.  As
2685
 
               installed, this file contains several different settings, all
2686
 
               commented out.  Uncomment the &#8220;<span class="quote">Master machine</span>&#8221;
2687
 
               entries in the file, and change the lines so that the backup
2688
 
               goes off when you want it to.
2689
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545666"></a>Step 6: Create the Cedar Backup configuration file.</h3></div></div></div><p>
 
2704
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2536947"></a>Step 6: Create the Cedar Backup configuration file.</h3></div></div></div><p>
2690
2705
            Following the instructions in 
2691
2706
            <a href="#cedar-config-configfile" title="Configuration File Format">the section called &#8220;Configuration File Format&#8221;</a> (above), create a
2692
2707
            configuration file for your machine.  Since you are working with a
2707
2722
            </p></div><p>
2708
2723
            The usual location for the Cedar Backup config file is
2709
2724
            <code class="filename">/etc/cback.conf</code>.  If you change the location,
2710
 
            make sure you edit your cronjobs (step 5) to point the
 
2725
            make sure you edit your cronjobs (below) to point the
2711
2726
            <span><strong class="command">cback</strong></span> script at the correct config file (using
2712
2727
            the <code class="option">--config</code> option).
2713
2728
         </p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
2720
2735
               configure any extensions that require passwords or other similar
2721
2736
               information, you should make the file readable only to root or
2722
2737
               to the file owner (if the owner is not root).
2723
 
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545763"></a>Step 7: Validate the Cedar Backup configuration file.</h3></div></div></div><p>
 
2738
            </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2537045"></a>Step 7: Validate the Cedar Backup configuration file.</h3></div></div></div><p>
2724
2739
            Use the command <span><strong class="command">cback validate</strong></span> to validate your
2725
2740
            configuration file. This command checks that the configuration file
2726
2741
            can be found and parsed, and also checks for typical configuration
2731
2746
            Note: the most common cause of configuration problems is in not
2732
2747
            closing XML tags properly. Any XML tag that is
2733
2748
            &#8220;<span class="quote">opened</span>&#8221; must be &#8220;<span class="quote">closed</span>&#8221; appropriately.
2734
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545807"></a>Step 8: Test connectivity to client machines.</h3></div></div></div><p>
 
2749
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2537089"></a>Step 8: Test connectivity to client machines.</h3></div></div></div><p>
2735
2750
            This step must wait until after your client machines have been at
2736
2751
            least partially configured. Once the backup user(s) have been
2737
2752
            configured on the client machine(s) in a pool, attempt an SSH
2748
2763
            entering a password, then things have been configured properly.
2749
2764
            Otherwise, double-check that you followed the user setup
2750
2765
            instructions for the master and the clients.
2751
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545858"></a>Step 9: Test your backup.</h3></div></div></div><p>
 
2766
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2537140"></a>Step 9: Test your backup.</h3></div></div></div><p>
2752
2767
             Make sure that you have configured all of the clients in your
2753
2768
             backup pool. On all of the clients, execute <span><strong class="command">cback --full
2754
2769
             collect</strong></span>.  (You will probably have already tested this
2775
2790
            <sup>[<a href="#ftn.cedar-config-foot-bugzilla">28</a>]</sup>
2776
2791
            To be safe, always enable the consistency check option in the
2777
2792
            store configuration section.</em></span>
2778
 
         </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-config-scsi"></a>Configuring your SCSI Device</h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2545955"></a>SCSI Required</h3></div></div></div><p>
2779
 
            In order to execute the store action, your CD-R or CD-RW drive must
2780
 
            either be a SCSI device or must be configured to act like a SCSI
2781
 
            device from the perspective of the <span><strong class="command">cdrecord</strong></span> and
2782
 
            <span><strong class="command">mkisofs</strong></span> commands.  Regardless of what kind of drive
2783
 
            you have, make sure you know its SCSI address and its filesystem
2784
 
            device name.  The SCSI address will be used to write to media, and the
2785
 
            device name will be used when Cedar Backup needs to mount the media
2786
 
            (for instance, when a validation check must be run).
 
2793
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2537226"></a>Step 10: Modify the backup cron jobs.</h3></div></div></div><p>
 
2794
            Since Cedar Backup should be run as root, you should add a set of
 
2795
            lines like this to your <code class="filename">/etc/crontab</code> file:
 
2796
         </p><pre class="programlisting">
 
2797
30 00 * * * root  cback collect
 
2798
30 02 * * * root  cback stage
 
2799
30 04 * * * root  cback store
 
2800
30 06 * * * root  cback purge
 
2801
         </pre><p>
 
2802
            You should consider adding the <code class="option">--output</code> or
 
2803
            <code class="option">-O</code> switch to your <span><strong class="command">cback</strong></span>
 
2804
            command-line in cron.  This will result in larger logs, but could
 
2805
            help diagnose problems when commands like
 
2806
            <span><strong class="command">cdrecord</strong></span> or <span><strong class="command">mkisofs</strong></span> fail
 
2807
            mysteriously.
 
2808
         </p><p>
 
2809
            You will need to coordinate the collect and purge actions on
 
2810
            clients so that their collect actions complete before the master
 
2811
            attempts to stage, and so that their purge actions do not begin
 
2812
            until after the master has completed staging.  Usually, allowing
 
2813
            an hour or two between steps should be sufficient.
 
2814
            <sup>[<a href="#ftn.cedar-config-foot-coordinate">29</a>]</sup>
 
2815
         </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
 
2816
               For general information about using cron, see the manpage for
 
2817
               crontab(5).
 
2818
            </p><p>
 
2819
               On a Debian system, execution of daily backups is controlled by
 
2820
               the file <code class="filename">/etc/cron.d/cedar-backup2</code>.  As
 
2821
               installed, this file contains several different settings, all
 
2822
               commented out.  Uncomment the &#8220;<span class="quote">Master machine</span>&#8221;
 
2823
               entries in the file, and change the lines so that the backup
 
2824
               goes off when you want it to.
 
2825
            </p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-config-writer"></a>Configuring your Writer Device</h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2537341"></a>SCSI Devices</h3></div></div></div><p>
 
2826
            In order to execute the store action for a SCSI writer device, you
 
2827
            need to know the device's SCSI address and
 
2828
            <span class="emphasis"><em>also</em></span> its filesystem device name.  The SCSI id
 
2829
            (&lt;target_scsi_id&gt;) will be used to write to media using
 
2830
            <span><strong class="command">cdrecord</strong></span>; and the device name
 
2831
            (&lt;target_device&gt;) will be used for other filesystem
 
2832
            operations &#8212; for instance, when the media needs to be mounted
 
2833
            to run the consistency check.
2787
2834
         </p><p>
2788
2835
            A true SCSI device will always have an address
2789
2836
            <code class="literal">scsibus,target,lun</code>, for instance
2792
2839
            BSD system to test with currently).  The SCSI address represents the
2793
2840
            location of your writer device on the one or more SCSI buses that you
2794
2841
            have available on your system.  
2795
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2546008"></a>Linux Notes</h3></div></div></div><p>
 
2842
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2537395"></a>Non-SCSI Devices</h3></div></div></div><p>
 
2843
            On some platforms, it is possible to reference non-SCSI writer
 
2844
            devices (like IDE CD writers) using an emulated SCSI id.  If you
 
2845
            have configured your non-SCSI writer device to have an emulated
 
2846
            SCSI id, provide the filesystem device path in
 
2847
            &lt;target_device&gt; and the SCSI id in &lt;target_scsi_id&gt;,
 
2848
            just like for a real SCSI device.
 
2849
         </p><p>
 
2850
            On other platforms, it is possible to reference non-SCSI writer
 
2851
            devices directly by filesystem device path rather than through SCSI
 
2852
            emulation.  On these platforms, you should configure Cedar Backup
 
2853
            with a &lt;target_device&gt; value but not a &lt;target_scsi_id&gt;
 
2854
            value.
 
2855
         </p><p>
 
2856
            You should note that in some cases, an emulated SCSI id takes the
 
2857
            same form as a normal SCSI id (&#8220;<span class="quote">scsibus,target,lun</span>&#8221;),
 
2858
            while in other cases you might see a method name prepended to the
 
2859
            normal SCSI id.
 
2860
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2537437"></a>Linux Notes</h3></div></div></div><p>
2796
2861
            On a Linux system, IDE writer devices often have a simulated SCSI
2797
2862
            address, which allows SCSI-based software to access the device through
2798
2863
            an IDE-to-SCSI interface.  Under these circumstances, the first IDE
2799
 
            writer device typically has an address <code class="literal">0,0,0</code>.
2800
 
            Newer Linux systems (kernel 2.6.x) can also be compiled with support
2801
 
            for other kinds of CD drive interfaces.  If your kernel supports it,
2802
 
            you can address <em class="firstterm">ATA</em> or
 
2864
            writer device typically has an address <code class="literal">0,0,0</code>.  However,
 
2865
            support for the IDE-to-SCSI interface has been deprecated and is not
 
2866
            well-supported in newer kernels (kernel 2.6.x and later).
 
2867
         </p><p>
 
2868
            Newer Linux kernels can address <em class="firstterm">ATA</em> or
2803
2869
            <em class="firstterm">ATAPI</em> drives without SCSI emulation by
2804
 
            prepending an indicator to the simulated device address, for instance
2805
 
            <code class="literal">ATA:0,0,0</code> or <code class="literal">ATAPI:0,0,0</code>.
2806
 
         </p><p>
2807
 
            A discussion of how to configure your CD writer hardware is outside
2808
 
            the scope of this document, but you may want to reference the
2809
 
            <em class="citetitle">Linux CDROM HOWTO</em> 
2810
 
            (<a href="http://www.tldp.org/HOWTO/CDROM-HOWTO" target="_top">http://www.tldp.org/HOWTO/CDROM-HOWTO</a>)
2811
 
            or the <em class="citetitle">ATA RAID HOWTO</em>
2812
 
            (<a href="http://www.tldp.org/HOWTO/ATA-RAID-HOWTO/index.html" target="_top">http://www.tldp.org/HOWTO/ATA-RAID-HOWTO/index.html</a>)
 
2870
            prepending a &#8220;<span class="quote">method</span>&#8221; indicator to the simulated
 
2871
            device address.  For instance, <code class="literal">ATA:0,0,0</code> or
 
2872
            <code class="literal">ATAPI:0,0,0</code> are typical values.
 
2873
         </p><p>
 
2874
            However, even this interface is deprecated as of late 2006, so with
 
2875
            relatively new kernels you may be better off using the filesystem
 
2876
            device path directly rather than relying on any SCSI emulation, as
 
2877
            discussed above.
 
2878
         </p><p>
 
2879
            Here are some hints about how to find your Linux hardware.  First, try to
 
2880
            reference your device using the filesystem device path:
 
2881
         </p><pre class="screen">
 
2882
cdrecord -prcap dev=/dev/cdrom
 
2883
         </pre><p>
 
2884
            Running this command on my hardware gives output that looks like
 
2885
            this (just the top few lines):
 
2886
         </p><pre class="screen">
 
2887
Device type    : Removable CD-ROM
 
2888
Version        : 0
 
2889
Response Format: 2
 
2890
Capabilities   : 
 
2891
Vendor_info    : 'LITE-ON '
 
2892
Identification : 'DVDRW SOHW-1673S'
 
2893
Revision       : 'JS02'
 
2894
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
 
2895
 
 
2896
Drive capabilities, per MMC-3 page 2A:
 
2897
         </pre><p>
 
2898
            If this works, and the identifying information at the top of the
 
2899
            output looks like your CD writer device, you've probably found a
 
2900
            working configuration.  Place the device path into
 
2901
            &lt;target_device&gt; and leave &lt;target_scsi_id&gt; blank.
 
2902
         </p><p>
 
2903
            If this doesn't work, you should try to find an ATA or ATAPI
 
2904
            device:
 
2905
         </p><pre class="screen">
 
2906
cdrecord -scanbus dev=ATA
 
2907
cdrecord -scanbus dev=ATAPI
 
2908
         </pre><p>
 
2909
            On my development system, I get a result that looks something like
 
2910
            this for ATA:
 
2911
         </p><pre class="screen">
 
2912
scsibus1:
 
2913
        1,0,0   100) 'LITE-ON ' 'DVDRW SOHW-1673S' 'JS02' Removable CD-ROM
 
2914
        1,1,0   101) *
 
2915
        1,2,0   102) *
 
2916
        1,3,0   103) *
 
2917
        1,4,0   104) *
 
2918
        1,5,0   105) *
 
2919
        1,6,0   106) *
 
2920
        1,7,0   107) *
 
2921
         </pre><p>
 
2922
            Again, if you get a result that you recognize, you have again
 
2923
            probably found a working configuraton.  Place the associated device
 
2924
            path (in my case, <code class="literal">/dev/cdrom</code>) into
 
2925
            &lt;target_device&gt; and put the emulated SCSI id
 
2926
            (in this case, <code class="literal">ATA:1,0,0</code>) into &lt;target_scsi_id&gt;.
 
2927
         </p><p>
 
2928
            Any further discussion of how to configure your CD writer hardware
 
2929
            is outside the scope of this document.  If you have tried the hints
 
2930
            above and still can't get things working, you may want to reference
 
2931
            the <em class="citetitle">Linux CDROM HOWTO</em> 
 
2932
            (<a href="http://www.tldp.org/HOWTO/CDROM-HOWTO" target="_top">http://www.tldp.org/HOWTO/CDROM-HOWTO</a>) 
 
2933
            or the <em class="citetitle">ATA RAID HOWTO</em> 
 
2934
            (<a href="http://www.tldp.org/HOWTO/ATA-RAID-HOWTO/index.html" target="_top">http://www.tldp.org/HOWTO/ATA-RAID-HOWTO/index.html</a>) 
2813
2935
            for more information.
2814
 
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2546079"></a>Mac OS X Notes</h3></div></div></div><p>
 
2936
         </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2537604"></a>Mac OS X Notes</h3></div></div></div><p>
2815
2937
            On a Mac OS X (darwin) system, things get strange.  Apple has
2816
2938
            abandoned traditional SCSI device identifiers in favor of a
2817
2939
            system-wide resource id.  So, on a Mac, your writer device will
2821
2943
            has a number appended, i.e. <code class="literal">IODVDServices/2</code> for
2822
2944
            the second DVD writer.  You can try to figure out what the name of
2823
2945
            your device is by grepping through the output of the command
2824
 
            <span><strong class="command">ioreg -l</strong></span>.<sup>[<a name="id2546121" href="#ftn.id2546121">30</a>]</sup>
 
2946
            <span><strong class="command">ioreg -l</strong></span>.<sup>[<a name="id2537646" href="#ftn.id2537646">30</a>]</sup>
2825
2947
         </p><p>
2826
2948
            Unfortunately, even if you can figure out what device to use, I
2827
2949
            can't really support the store action on this platform.  In OS X,
2836
2958
            If you are interested in some of my notes about what works and what
2837
2959
            doesn't on this platform, check out the documentation in the
2838
2960
            <code class="filename">doc/osx</code> directory in the source distribution.
2839
 
         </p></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2538914" href="#id2538914">24</a>] </sup>Some users find this surprising,
 
2961
         </p></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2530407" href="#id2530407">24</a>] </sup>Some users find this surprising,
2840
2962
            because extensions are configured with sequence numbers.  I did it
2841
2963
            this way because I felt that running extensions as part of the all
2842
2964
            action would sometimes result in &#8220;<span class="quote">surprising</span>&#8221;
2843
 
            behavior.  Better to be definitive than confusing.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2539372" href="#id2539372">25</a>] </sup>See 
 
2965
            behavior.  Better to be definitive than confusing.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2530866" href="#id2530866">25</a>] </sup>See 
2844
2966
         <a href="http://www.xml.com/pub/a/98/10/guide0.html" target="_top">http://www.xml.com/pub/a/98/10/guide0.html</a>
2845
 
         for a basic introduction to XML.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2539428" href="#id2539428">26</a>] </sup>See <a href="#cedar-basic-process" title="The Backup Process">the section called &#8220;The Backup Process&#8221;</a>, in <a href="#cedar-basic" title="Chapter�2.�Basic Concepts">Chapter�2, <i>Basic Concepts</i></a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.cedar-config-foot-regex" href="#cedar-config-foot-regex">27</a>] </sup>See <a href="http://docs.python.org/lib/re-syntax.html" target="_top">http://docs.python.org/lib/re-syntax.html</a></p></div><div class="footnote"><p><sup>[<a name="ftn.cedar-config-foot-bugzilla" href="#cedar-config-foot-bugzilla">28</a>] </sup>
2846
 
            See <a href="http://cedar-solutions.com/bugzilla/" target="_top">http://cedar-solutions.com/bugzilla/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.cedar-config-foot-coordinate" href="#cedar-config-foot-coordinate">29</a>] </sup>See <a href="#cedar-basic-coordinate" title="Coordination between Master and Clients">the section called &#8220;Coordination between Master and Clients&#8221;</a> in <a href="#cedar-basic" title="Chapter�2.�Basic Concepts">Chapter�2, <i>Basic Concepts</i></a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2546121" href="#id2546121">30</a>] </sup>Thanks to the
 
2967
         for a basic introduction to XML.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2530921" href="#id2530921">26</a>] </sup>See <a href="#cedar-basic-process" title="The Backup Process">the section called &#8220;The Backup Process&#8221;</a>, in <a href="#cedar-basic" title="Chapter�2.�Basic Concepts">Chapter�2, <i>Basic Concepts</i></a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.cedar-config-foot-regex" href="#cedar-config-foot-regex">27</a>] </sup>See <a href="http://docs.python.org/lib/re-syntax.html" target="_top">http://docs.python.org/lib/re-syntax.html</a></p></div><div class="footnote"><p><sup>[<a name="ftn.cedar-config-foot-bugzilla" href="#cedar-config-foot-bugzilla">28</a>] </sup>
 
2968
            See <a href="http://cedar-solutions.com/bugzilla/" target="_top">http://cedar-solutions.com/bugzilla/</a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.cedar-config-foot-coordinate" href="#cedar-config-foot-coordinate">29</a>] </sup>See <a href="#cedar-basic-coordinate" title="Coordination between Master and Clients">the section called &#8220;Coordination between Master and Clients&#8221;</a> in <a href="#cedar-basic" title="Chapter�2.�Basic Concepts">Chapter�2, <i>Basic Concepts</i></a>.</p></div><div class="footnote"><p><sup>[<a name="ftn.id2537646" href="#id2537646">30</a>] </sup>Thanks to the
2847
2969
            file README.macosX in the cdrtools-2.01+01a01 source tree
2848
2970
            for this information</p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cedar-extensions"></a>Chapter�5.�Official Extensions</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#cedar-extensions-sysinfo">System Information Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-subversion">Subversion Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-mysql">MySQL Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-postgresql">PostgreSQL Extension</a></span></dt><dt><span class="sect1"><a href="#cedar-extensions-mbox">Mbox Extension</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-extensions-sysinfo"></a>System Information Extension</h2></div></div></div><p>
2849
2971
         The System Information Extension is a simple Cedar Backup extension
2867
2989
      &lt;name&gt;sysinfo&lt;/name&gt;
2868
2990
      &lt;module&gt;CedarBackup2.extend.sysinfo&lt;/module&gt;
2869
2991
      &lt;function&gt;executeAction&lt;/function&gt;
2870
 
      &lt;index&gt;101&lt;/index&gt;
 
2992
      &lt;index&gt;99&lt;/index&gt;
2871
2993
   &lt;/action&gt;
2872
2994
&lt;/extensions&gt;
2873
2995
      </pre><p>
2877
2999
      </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-extensions-subversion"></a>Subversion Extension</h2></div></div></div><p>
2878
3000
         The Subversion Extension is a Cedar Backup extension
2879
3001
         used to back up Subversion 
2880
 
         <sup>[<a name="id2553335" href="#ftn.id2553335">31</a>]</sup>
 
3002
         <sup>[<a name="id2545429" href="#ftn.id2545429">31</a>]</sup>
2881
3003
         version control repositories via the Cedar Backup command line.
2882
3004
         It is intended to be run either immediately before or immediately
2883
3005
         after the standard collect action.
2897
3019
         backup that way, then use the normal collect action rather than this
2898
3020
         extension.  If you decide to do that, be sure to consult the 
2899
3021
         Subversion documentation and make sure you understand the limitations
2900
 
         of this kind of backup. <sup>[<a name="id2553387" href="#ftn.id2553387">32</a>]</sup>
 
3022
         of this kind of backup. <sup>[<a name="id2545481" href="#ftn.id2545481">32</a>]</sup>
2901
3023
      </p><p>
2902
3024
         To enable this extension, add the following section to the Cedar Backup
2903
3025
         configuration file:
2907
3029
      &lt;name&gt;subversion&lt;/name&gt;
2908
3030
      &lt;module&gt;CedarBackup2.extend.subversion&lt;/module&gt;
2909
3031
      &lt;function&gt;executeAction&lt;/function&gt;
2910
 
      &lt;index&gt;101&lt;/index&gt;
 
3032
      &lt;index&gt;99&lt;/index&gt;
2911
3033
   &lt;/action&gt;
2912
3034
&lt;/extensions&gt;
2913
3035
      </pre><p>
3015
3137
                           <span class="emphasis"><em>Restrictions:</em></span> Must be an absolute path.
3016
3138
                        </p></dd></dl></div></dd></dl></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cedar-extensions-mysql"></a>MySQL Extension</h2></div></div></div><p>
3017
3139
         The MySQL Extension is a Cedar Backup extension used to back up MySQL
3018
 
         <sup>[<a name="id2553845" href="#ftn.id2553845">33</a>]</sup> 
 
3140
         <sup>[<a name="id2545939" href="#ftn.id2545939">33</a>]</sup> 
3019
3141
         databases via the Cedar Backup command line.  It is intended to be run
3020
3142
         either immediately before or immediately after the standard collect
3021
3143
         action.
3071
3193
      &lt;name&gt;mysql&lt;/name&gt;
3072
3194
      &lt;module&gt;CedarBackup2.extend.mysql&lt;/module&gt;
3073
3195
      &lt;function&gt;executeAction&lt;/function&gt;
3074
 
      &lt;index&gt;101&lt;/index&gt;
 
3196
      &lt;index&gt;99&lt;/index&gt;
3075
3197
   &lt;/action&gt;
3076
3198
&lt;/extensions&gt;
3077
3199
      </pre><p>
3162
3284
            ensure that it works properly.
3163
3285
         </p></div><p>
3164
3286
         The PostgreSQL Extension is a Cedar Backup extension used to back up
3165
 
         PostgreSQL <sup>[<a name="id2554336" href="#ftn.id2554336">34</a>]</sup> databases via the
 
3287
         PostgreSQL <sup>[<a name="id2546428" href="#ftn.id2546428">34</a>]</sup> databases via the
3166
3288
         Cedar Backup command line.  It is intended to be run either
3167
3289
         immediately before or immediately after the standard collect action. 
3168
3290
      </p><p>
3196
3318
      &lt;name&gt;postgresql&lt;/name&gt;
3197
3319
      &lt;module&gt;CedarBackup2.extend.postgresql&lt;/module&gt;
3198
3320
      &lt;function&gt;executeAction&lt;/function&gt;
3199
 
      &lt;index&gt;101&lt;/index&gt;
 
3321
      &lt;index&gt;99&lt;/index&gt;
3200
3322
   &lt;/action&gt;
3201
3323
&lt;/extensions&gt;
3202
3324
      </pre><p>
3304
3426
      &lt;name&gt;mbox&lt;/name&gt;
3305
3427
      &lt;module&gt;CedarBackup2.extend.mbox&lt;/module&gt;
3306
3428
      &lt;function&gt;executeAction&lt;/function&gt;
3307
 
      &lt;index&gt;101&lt;/index&gt;
 
3429
      &lt;index&gt;99&lt;/index&gt;
3308
3430
   &lt;/action&gt;
3309
3431
&lt;/extensions&gt;
3310
3432
      </pre><p>
3475
3597
                                    is necessary.
3476
3598
                                 </p><p>
3477
3599
                                    <span class="emphasis"><em>Restrictions:</em></span> Must be non-empty
3478
 
                                 </p></dd></dl></div></dd></dl></div></dd></dl></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2553335" href="#id2553335">31</a>] </sup>See <a href="http://subversion.org" target="_top">http://subversion.org</a></p></div><div class="footnote"><p><sup>[<a name="ftn.id2553387" href="#id2553387">32</a>] </sup>For instance, see the
 
3600
                                 </p></dd></dl></div></dd></dl></div></dd></dl></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2545429" href="#id2545429">31</a>] </sup>See <a href="http://subversion.org" target="_top">http://subversion.org</a></p></div><div class="footnote"><p><sup>[<a name="ftn.id2545481" href="#id2545481">32</a>] </sup>For instance, see the
3479
3601
         &#8220;<span class="quote">Backups</span>&#8221; section on this page: 
3480
3602
         <a href="http://freehackers.org/~shlomif/svn-raweb-light/subversion.cgi/trunk/notes/fsfs" target="_top">http://freehackers.org/~shlomif/svn-raweb-light/subversion.cgi/trunk/notes/fsfs</a>
3481
 
         </p></div><div class="footnote"><p><sup>[<a name="ftn.id2553845" href="#id2553845">33</a>] </sup>See <a href="http://www.mysql.com" target="_top">http://www.mysql.com</a></p></div><div class="footnote"><p><sup>[<a name="ftn.id2554336" href="#id2554336">34</a>] </sup>See <a href="http://www.postgresql.org/" target="_top">http://www.postgresql.org/</a></p></div></div></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cedar-extenspec"></a>Appendix�A.�Extension Architecture Interface</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"></div><p>
 
3603
         </p></div><div class="footnote"><p><sup>[<a name="ftn.id2545939" href="#id2545939">33</a>] </sup>See <a href="http://www.mysql.com" target="_top">http://www.mysql.com</a></p></div><div class="footnote"><p><sup>[<a name="ftn.id2546428" href="#id2546428">34</a>] </sup>See <a href="http://www.postgresql.org/" target="_top">http://www.postgresql.org/</a></p></div></div></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cedar-extenspec"></a>Appendix�A.�Extension Architecture Interface</h2></div></div></div><div class="simplesect" lang="en"><div class="titlepage"></div><p>
3482
3604
         The Cedar Backup <em class="firstterm">Extension Architecture
3483
3605
         Interface</em> is the application programming interface used by
3484
3606
         third-party developers to write Cedar Backup extensions.  This