<?xml version="1.0"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" font-family="serif,Symbol,ZapfDingbats" font-size="10pt" text-align="justify" line-height="normal" font-selection-strategy="character-by-character" line-height-shift-adjustment="disregard-shifts" language="en"><fo:layout-master-set><fo:simple-page-master master-name="blank" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body display-align="center" margin-bottom="0.5in" margin-top="0.5in" region-name="blank-body"/><fo:region-before region-name="xsl-region-before-blank" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-blank" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-first" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-odd" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-even" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="blank-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-blank" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-blank" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="titlepage-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="lot-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="front-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="body-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="back-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in - 0pt" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="1" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-first-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-first" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-first" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-odd-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-left="1in" margin-right="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-odd" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-odd" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:simple-page-master master-name="index-even-draft" page-width="8.5in" page-height="11in" margin-top="0.5in" margin-bottom="0.5in" margin-right="1in" margin-left="1in"><fo:region-body margin-bottom="0.5in" margin-top="0.5in" column-gap="12pt" column-count="2" background-image="url(http://docbook.sourceforge.net/release/images/draft.png)" background-attachment="fixed" background-repeat="no-repeat" background-position-horizontal="center" background-position-vertical="center"/><fo:region-before region-name="xsl-region-before-even" extent="0.4in" display-align="before"/><fo:region-after region-name="xsl-region-after-even" extent="0.4in" display-align="after"/></fo:simple-page-master><fo:page-sequence-master master-name="titlepage"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="titlepage-first" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="lot"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="lot-first" page-position="first"/><fo:conditional-page-master-reference master-reference="lot-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="lot-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="front"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="front-first" page-position="first"/><fo:conditional-page-master-reference master-reference="front-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="front-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="body"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="body-first" page-position="first"/><fo:conditional-page-master-reference master-reference="body-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="body-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="back"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="back-first" page-position="first"/><fo:conditional-page-master-reference master-reference="back-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="back-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="index"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="index-first" page-position="first"/><fo:conditional-page-master-reference master-reference="index-odd" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="index-odd"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="titlepage-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="titlepage-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="titlepage-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="titlepage-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="lot-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="lot-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="lot-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="lot-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="front-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="front-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="front-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="front-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="body-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="body-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="body-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="body-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="back-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="back-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="back-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="back-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master><fo:page-sequence-master master-name="index-draft"><fo:repeatable-page-master-alternatives><fo:conditional-page-master-reference master-reference="blank-draft" blank-or-not-blank="blank"/><fo:conditional-page-master-reference master-reference="index-first-draft" page-position="first"/><fo:conditional-page-master-reference master-reference="index-odd-draft" odd-or-even="odd"/><fo:conditional-page-master-reference odd-or-even="even" master-reference="index-odd-draft"/></fo:repeatable-page-master-alternatives></fo:page-sequence-master></fo:layout-master-set><fo:page-sequence xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" hyphenate="true" master-reference="body" language="en" format="1" initial-page-number="1" force-page-count="no-force" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2"><fo:static-content flow-name="xsl-region-before-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>rsnapshot HOWTO</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block>rsnapshot HOWTO</fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-before-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-bottom-width="0.5pt" border-bottom-style="solid" border-bottom-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="before" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-footnote-separator"><fo:block><fo:leader color="black" leader-pattern="rule" leader-length="1in"/></fo:block></fo:static-content><fo:static-content flow-name="blank-body"><fo:block text-align="center"/></fo:static-content><fo:static-content flow-name="xsl-region-after-first"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-odd"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-even"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:static-content flow-name="xsl-region-after-blank"><fo:block font-family="serif,Symbol,ZapfDingbats" margin-left="0pt"><fo:table table-layout="fixed" width="100%" border-top-width="0.5pt" border-top-style="solid" border-top-color="black"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row height="14pt"><fo:table-cell text-align="left" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell><fo:table-cell text-align="center" display-align="after" relative-align="baseline"><fo:block><fo:block><fo:page-number/></fo:block></fo:block></fo:table-cell><fo:table-cell text-align="right" display-align="after" relative-align="baseline"><fo:block><fo:block/></fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block></fo:static-content><fo:flow flow-name="xsl-region-body" start-indent="4pc" end-indent="0pt"><fo:block id="id2486505"><fo:block font-family="sans-serif,Symbol,ZapfDingbats"><fo:block text-align="center"><fo:block keep-with-next="always" font-size="24.8832pt" font-weight="bold"><fo:block keep-with-next.within-column="always" space-before.optimum="10pt" space-before.minimum="10pt * 0.8" space-before.maximum="10pt * 1.2" hyphenate="false" start-indent="0pt" hyphenation-character="-" hyphenation-push-character-count="2" hyphenation-remain-character-count="2">rsnapshot HOWTO</fo:block></fo:block><fo:block space-before="0.5em" font-size="14.4pt"><fo:block>Nathan Rosenquist <fo:inline font-family="monospace"><fo:inline keep-together.within-line="always" hyphenate="false">&lt;nathan@rsnapshot.org&gt;</fo:inline></fo:inline></fo:block></fo:block><fo:block space-before="0.5em">2004-01-20</fo:block><fo:block space-before="0.5em"><fo:table table-layout="fixed" width="100%"><fo:table-column column-number="1" column-width="proportional-column-width(1)"/><fo:table-column column-number="2" column-width="proportional-column-width(1)"/><fo:table-column column-number="3" column-width="proportional-column-width(1)"/><fo:table-body><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>Revision History</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>Revision 1.0.0</fo:block></fo:table-cell><fo:table-cell><fo:block>2005-01-31</fo:block></fo:table-cell><fo:table-cell><fo:block>NR</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>Updated for rsnapshot 1.2.0</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>Revision 0.9.7</fo:block></fo:table-cell><fo:table-cell><fo:block>2005-01-17</fo:block></fo:table-cell><fo:table-cell><fo:block>NR</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>Spelling corrections submitted by Nicolas Kaiser</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>Revision 0.9.6</fo:block></fo:table-cell><fo:table-cell><fo:block>2004-12-13</fo:block></fo:table-cell><fo:table-cell><fo:block>NR</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>Misc. updates</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>Revision 0.9.5</fo:block></fo:table-cell><fo:table-cell><fo:block>2004-07-10</fo:block></fo:table-cell><fo:table-cell><fo:block>NR</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>Relicensed document under GPL, instead of FDL</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>Revision 0.9.4</fo:block></fo:table-cell><fo:table-cell><fo:block>2004-07-02</fo:block></fo:table-cell><fo:table-cell><fo:block>NR</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>Added description of proper crontab time settings</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>Revision 0.9.3</fo:block></fo:table-cell><fo:table-cell><fo:block>2004-06-11</fo:block></fo:table-cell><fo:table-cell><fo:block>NR</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>Misc. updates</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>Revision 0.9.2</fo:block></fo:table-cell><fo:table-cell><fo:block>2004-05-16</fo:block></fo:table-cell><fo:table-cell><fo:block>NR</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>Updated --link-dest info</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>Revision 0.9.1</fo:block></fo:table-cell><fo:table-cell><fo:block>2004-01-20</fo:block></fo:table-cell><fo:table-cell><fo:block>NR</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>Added --link-dest info</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell><fo:block>Revision 0.9</fo:block></fo:table-cell><fo:table-cell><fo:block>2004-01-10</fo:block></fo:table-cell><fo:table-cell><fo:block>NR</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell number-columns-spanned="3"><fo:block>First draft</fo:block></fo:table-cell></fo:table-row></fo:table-body></fo:table></fo:block><fo:block space-before="0.5em" text-align="start" margin-left="0.5in" margin-right="0.5in" font-family="serif,Symbol,ZapfDingbats"><fo:block><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Abstract</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">
				rsnapshot is a filesystem backup utility based on rsync. Using rsnapshot, it is possible to take snapshots
				of your filesystems at different points in time. Using hard links, rsnapshot creates the illusion of
				multiple full backups, while only taking up the space of one full backup plus differences. When coupled
				with ssh, it is possible to take snapshots of remote filesystems as well. This document is a tutorial in
				the installation and configuration of rsnapshot.
			</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="toc...id2486505" space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em"><fo:block><fo:block><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" space-before.minimum="1em" space-before.optimum="1.5em" space-before.maximum="2em" space-after="0.5em" margin-left="0pt" font-size="17.28pt" font-weight="bold" font-family="sans-serif,Symbol,ZapfDingbats">Table of Contents</fo:block></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="intro">Introduction</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="intro"><fo:page-number-citation ref-id="intro"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id2486505.intro" start-indent="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="what_you_will_need">What you will need</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="what_you_will_need"><fo:page-number-citation ref-id="what_you_will_need"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="copyright">Copyright and License</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="copyright"><fo:page-number-citation ref-id="copyright"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="disclaimer">Disclaimer</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="disclaimer"><fo:page-number-citation ref-id="disclaimer"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="feedback">Feedback</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="feedback"><fo:page-number-citation ref-id="feedback"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="motivation">Motivation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="motivation"><fo:page-number-citation ref-id="motivation"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="installation">Installation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="installation"><fo:page-number-citation ref-id="installation"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id2486505.installation" start-indent="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="thirty_second_version">30 second version (for the impatient)</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="thirty_second_version"><fo:page-number-citation ref-id="thirty_second_version"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="untar_the_source_code_package">Untar the source code package</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="untar_the_source_code_package"><fo:page-number-citation ref-id="untar_the_source_code_package"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="change_to_src_dir">Change to the source directory</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="change_to_src_dir"><fo:page-number-citation ref-id="change_to_src_dir"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="decide_where_to_install">Decide where you want to install</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="decide_where_to_install"><fo:page-number-citation ref-id="decide_where_to_install"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="run_the_configure_script">Run the configure script</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="run_the_configure_script"><fo:page-number-citation ref-id="run_the_configure_script"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="install_the_program">Install the program</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="install_the_program"><fo:page-number-citation ref-id="install_the_program"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="configuration">Configuration</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="configuration"><fo:page-number-citation ref-id="configuration"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id2486505.configuration" start-indent="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="create_the_config_file">Create the config file</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="create_the_config_file"><fo:page-number-citation ref-id="create_the_config_file"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="where_to_go_for_more_info">Where to go for more info</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="where_to_go_for_more_info"><fo:page-number-citation ref-id="where_to_go_for_more_info"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="modifying_the_config_file">Modifying the config file</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="modifying_the_config_file"><fo:page-number-citation ref-id="modifying_the_config_file"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="testing_your_config_file">Testing your config file</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="testing_your_config_file"><fo:page-number-citation ref-id="testing_your_config_file"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="automation">Automation</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="automation"><fo:page-number-citation ref-id="automation"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="how_it_works">How it works</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="how_it_works"><fo:page-number-citation ref-id="how_it_works"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="restoring_backups">Restoring backups</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="restoring_backups"><fo:page-number-citation ref-id="restoring_backups"/></fo:basic-link></fo:inline></fo:block><fo:block id="toc.id2486505.restoring_backups" start-indent="24pt"><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="root_only">root only</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="root_only"><fo:page-number-citation ref-id="root_only"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="all_users">All users</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="all_users"><fo:page-number-citation ref-id="all_users"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="conclusion">Conclusion</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="conclusion"><fo:page-number-citation ref-id="conclusion"/></fo:basic-link></fo:inline></fo:block><fo:block text-align-last="justify" text-align="start" end-indent="24pt" last-line-end-indent="-24pt"><fo:inline keep-with-next.within-line="always"><fo:basic-link internal-destination="more_resources">More resources</fo:basic-link></fo:inline><fo:inline keep-together.within-line="always"> <fo:leader leader-pattern="dots" leader-pattern-width="3pt" leader-alignment="reference-area" keep-with-next.within-line="always"/> <fo:basic-link internal-destination="more_resources"><fo:page-number-citation ref-id="more_resources"/></fo:basic-link></fo:inline></fo:block></fo:block><fo:block id="intro"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Introduction</fo:marker><fo:block font-size="20.736pt">Introduction</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">rsnapshot is a filesystem backup utility based on rsync. Using rsnapshot, it is possible to take snapshots of your filesystems at different points in time. Using hard links, rsnapshot creates the illusion of multiple full backups, while only taking up the space of one full backup plus differences. When coupled with ssh, it is possible to take snapshots of remote filesystems as well.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">rsnapshot is written in Perl, and depends on rsync. OpenSSH, GNU cp, GNU du, and the BSD logger program are also recommended, but not required. All of these should be present on most Linux systems. rsnapshot is written with the lowest common denominator in mind. It only requires at minimum Perl 5.004 and rsync. As a result of this, it works on pretty much any UNIX-like system you care to throw at it. It has been successfully tested with Perl 5.004 through 5.8.2, on Debian, Redhat, Fedora, Solaris, Mac OS X, FreeBSD, OpenBSD, NetBSD, and IRIX.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The latest version of the program and this document can always be found at <fo:basic-link external-destination="url(http://www.rsnapshot.org/)">http://www.rsnapshot.org/</fo:basic-link>.</fo:block><fo:block id="what_you_will_need"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">What you will need</fo:marker><fo:block font-size="17.28pt">What you will need</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">At a minimum: <fo:inline font-style="italic">perl, rsync</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Optionally: <fo:inline font-style="italic">ssh, logger, GNU cp, GNU du</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Additionally, it will help if you have reasonably good sysadmin skills.</fo:block></fo:block><fo:block id="copyright"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Copyright and License</fo:marker><fo:block font-size="17.28pt">Copyright and License</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This document, rsnapshot HOWTO, is copyrighted (c) 2005 by Nathan Rosenquist. You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. A copy of the license is available at <fo:basic-link external-destination="url(http://www.gnu.org/copyleft/gpl.html)">http://www.gnu.org/copyleft/gpl.html</fo:basic-link>.</fo:block></fo:block><fo:block id="disclaimer"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Disclaimer</fo:marker><fo:block font-size="17.28pt">Disclaimer</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">No liability for the contents of this document can be accepted. Use the concepts, examples and information at your own risk. There may be errors and inaccuracies, that could be damaging to your system.  Proceed with caution, and although this is highly unlikely, the author(s) do not take any responsibility.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">All copyrights are held by their by their respective owners, unless specifically noted otherwise.  Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark.  Naming of particular products or brands should not be seen as endorsements.</fo:block></fo:block><fo:block id="feedback"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Feedback</fo:marker><fo:block font-size="17.28pt">Feedback</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Feedback is most certainly welcome for this document. Send your additions, comments and criticisms to the following email address : <fo:inline font-family="monospace"><fo:inline keep-together.within-line="always" hyphenate="false">&lt;nathan@rsnapshot.org&gt;</fo:inline></fo:inline>.</fo:block></fo:block></fo:block><fo:block id="motivation"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Motivation</fo:marker><fo:block font-size="20.736pt">Motivation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">I originally used Mike Rubel's shell scripts to do rsync snapshots a while back. These worked very well, but there were a number of things that I wanted to improve upon. I had to write two shell scripts that were customized for my server. If I wanted to change the number of intervals stored, or the parts of the filesystem that were archived, that meant manually editing these shell scripts. If I wanted to install them on a different server with a different configuration, this meant manually editing the scripts for the new server, and hoping the logic and the sequence of operations was correct. Also, I was doing all the backups locally, on a single machine, on a single hard drive (just to protect from dumb user mistakes like deleting files). Never the less, I continued on with this system for a while, and it did work very well.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Several months later, the IDE controller on my web server failed horribly (when I typed <fo:inline font-weight="bold">/sbin/shutdown</fo:inline>, it said the command was not found). I was then faced with what was in the back of my mind all along: I had not been making regular remote backups of my server, and the local backups were of no use to me since the entire drive was corrupted. The reason I had only been making sporadic, partial remote backups is that they weren't automatic and effortless. Of course, this was no one's fault but my own, but I got frustrated enough to write a tool that would make automated remote snapshots so easy that I wouldn't ever have to worry about them again. This goal has long been reached, but work on rsnapshot still continues as people submit patches, request features, and ways are found to improve the program.</fo:block></fo:block><fo:block id="installation"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Installation</fo:marker><fo:block font-size="20.736pt">Installation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This section will walk you through the installation of rsnapshot, step by step. This is not the only way to do it, but it is a way that works and that is well documented. Feel free to improvise if you know what you're doing.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This guide assumes you are installing rsnapshot 1.2.0 for the first time. If you are upgrading from an earlier version, please read the <fo:inline font-family="monospace">INSTALL</fo:inline> file that comes with the source distribution instead.</fo:block><fo:block id="thirty_second_version"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">30 second version (for the impatient)</fo:marker><fo:block font-size="17.28pt">30 second version (for the impatient)</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id2487109" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">./configure --sysconfdir=/etc</fo:inline>
<fo:inline font-weight="bold">su</fo:inline>
<fo:inline font-weight="bold">make install</fo:inline>
<fo:inline font-weight="bold">cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The rest of this section is the long version.</fo:block></fo:block><fo:block id="untar_the_source_code_package"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Untar the source code package</fo:marker><fo:block font-size="17.28pt">Untar the source code package</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id2487148" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">tar xzvf rsnapshot-1.2.0.tar.gz</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you don't have GNU <fo:inline font-family="monospace">tar</fo:inline>, you may have to do this in two steps instead:</fo:block><fo:block id="id2487168" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">gunzip rsnapshot-1.2.0.tar.gz</fo:inline>
<fo:inline font-weight="bold">tar xvf rsnapshot-1.2.0.tar</fo:inline></fo:block></fo:block><fo:block id="change_to_src_dir"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Change to the source directory</fo:marker><fo:block font-size="17.28pt">Change to the source directory</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="id2487195" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">cd rsnapshot-1.2.0/</fo:inline></fo:block></fo:block><fo:block id="decide_where_to_install"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Decide where you want to install</fo:marker><fo:block font-size="17.28pt">Decide where you want to install</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">By default, the installation procedure will install all files under <fo:inline font-family="monospace">/usr/local</fo:inline>. For this tutorial, this will be OK except we will install the config file under <fo:inline font-family="monospace">/etc</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">We are assuming that <fo:inline font-family="monospace">rsync</fo:inline>, <fo:inline font-family="monospace">ssh</fo:inline>, <fo:inline font-family="monospace">logger</fo:inline>, and <fo:inline font-family="monospace">du</fo:inline> are all in your search path. If this is not the case, you can specify the path to any of these programs using the typical Autoconf <fo:inline font-style="italic" font-family="monospace">--with-program=/path/to/program</fo:inline> syntax. For example, if Perl was in <fo:inline font-family="monospace">/opt/bin/perl</fo:inline> and rsync was in <fo:inline font-family="monospace">/home/me/bin/rsync</fo:inline>, you could run configure like:</fo:block><fo:block id="id2487494" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">./configure --with-perl=/opt/bin/perl --with-rsync=/home/me/bin/rsync</fo:inline></fo:block></fo:block><fo:block id="run_the_configure_script"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Run the configure script</fo:marker><fo:block font-size="17.28pt">Run the configure script</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This will poke and prod your system to figure out where the various external programs that rsnapshot depends on live. It also generates the Makefile that we will use to install the program. The configure script accepts arguments that can be used to tell it where to install the program, and also where to find the supporting programs. For this installation, the only non-default option we want is to put the config file in the <fo:inline font-family="monospace">/etc</fo:inline> directory. To do this, run this command at the shell:</fo:block><fo:block id="id2487535" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">./configure --sysconfdir=/etc</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If all goes well, you're ready to install the program. If there was a problem, it should be descriptive. Most likely a problem would be the result of something that was required and not found (like rsync or perl). If this happens, you must figure out where the missing program is located on your system, or install it if necessary. If you know where it is but configure couldn't find it, you can specify the path using the <fo:inline font-style="italic" font-family="monospace">--with-program=/path/to/program</fo:inline> options described above.</fo:block></fo:block><fo:block id="install_the_program"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Install the program</fo:marker><fo:block font-size="17.28pt">Install the program</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you've followed these instructions so far, you will have configured rsnapshot to be installed under <fo:inline font-family="monospace">/usr/local</fo:inline>, with the config file in <fo:inline font-family="monospace">/etc</fo:inline>. Under these circumstances, it will be necessary to become root to install the program. Now is the time to do so. You will, of course, need the root password to do this:</fo:block><fo:block id="id2487597" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">su</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This will prompt you for the root password.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now, to install rsnapshot, run the following command:</fo:block><fo:block id="id2487614" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">make install</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This will install rsnapshot with all the settings you specified in the ./configure stage. If all goes well, you will have the following files on your system:</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">/usr/local/bin/rsnapshot</fo:inline>           The rsnapshot program</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">/usr/local/man/man1/rsnapshot.1</fo:inline>    Man page</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">/etc/rsnapshot.conf.default</fo:inline>        The example config file</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you decide later that you don't want rsnapshot on your system anymore, simply remove the files listed above, or run <fo:inline font-weight="bold">make uninstall</fo:inline> in the same source directory you installed from. Of course, if you installed with different options, the location of these files may be different.</fo:block></fo:block></fo:block><fo:block id="configuration"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Configuration</fo:marker><fo:block font-size="20.736pt">Configuration</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block id="create_the_config_file"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Create the config file</fo:marker><fo:block font-size="17.28pt">Create the config file</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In the install process, the config file is not created or installed. However, a working example is provided that you can copy. To copy the example config file into the location rsnapshot will be looking for the real config file:</fo:block><fo:block id="id2487705" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">As a general rule, you should avoid modifying <fo:inline font-family="monospace">/etc/rsnapshot.conf.default</fo:inline>, simply because it is a working example that you may wish to refer to later. Also, if you perform an upgrade, the <fo:inline font-family="monospace">rsnapshot.conf.default</fo:inline> file will always be upgraded to the latest version, while your real config file will be safe out of harm's way. Please note that if you run <fo:inline font-weight="bold">make upgrade</fo:inline> during an upgrade, your rsnapshot.conf may be modified slightly, and the original will then be saved in <fo:inline font-family="monospace">rsnapshot.conf.backup</fo:inline> in the same directory.</fo:block></fo:block><fo:block id="where_to_go_for_more_info"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Where to go for more info</fo:marker><fo:block font-size="17.28pt">Where to go for more info</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">rsnapshot.conf</fo:inline> config file is well commented, and much of it should be fairly self-explanatory. For a full reference of all the various options, please consult the rsnapshot man page. Type:</fo:block><fo:block id="id2487773" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">man rsnapshot</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This will give you the complete documentation. However, it assumes that you already know what you're doing to a certain extent. If you just want to get something up and running, this tutorial is a better place to start. If your system can't find the man page, <fo:inline font-family="monospace">/usr/local/man</fo:inline> probably isn't in your $MANPATH environmental variable. This is beyond the scope of this document, but if it isn't working for you, you can always read the newest man page on the rsnapshot web site at <fo:basic-link external-destination="url(http://www.rsnapshot.org/)">http://www.rsnapshot.org/</fo:basic-link></fo:block></fo:block><fo:block id="modifying_the_config_file"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Modifying the config file</fo:marker><fo:block font-size="17.28pt">Modifying the config file</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In this example, we will be using the <fo:inline font-family="monospace">/.snapshots/</fo:inline> directory to hold the filesystem snapshots. This is referred to as the “snapshot root”. Feel free to put this anywhere you have lots of free disk space. However, the examples in this document assume you have not changed this parameter, so you will have to substitute this in your commands if you put it somewhere else.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Also please note that fields are separated by tabs, not spaces. The reason for this is so it's easier to specify file paths with spaces in them.</fo:block><fo:block id="cmd_cp"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:block font-size="14.4pt">cmd_cp</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If enabled, the <fo:inline font-style="italic">cmd_cp</fo:inline> parameter should contain the path to the GNU <fo:inline font-family="monospace">cp</fo:inline> program on your filesystem. If you are using Linux, be sure to uncomment this by removing the hash mark (#) in front of it. If you are using BSD, Solaris, IRIX, or most other UNIX variants, you should leave this commented out.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">What makes GNU <fo:inline font-family="monospace">cp</fo:inline> so special is that unlike the traditional UNIX <fo:inline font-family="monospace">cp</fo:inline>, it has the ability to make recursive “copies” of directories as hard links.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you don't have GNU <fo:inline font-family="monospace">cp</fo:inline>, there is a subroutine in rsnapshot that somewhat approximates this functionality (although it won't support more esoteric files such as device nodes, FIFOs, sockets, etc). This gets followed up by another call to rsync, which transfers the remaining special files, if any. In this way, rsnapshot can support all file types on every platform.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The rule of thumb is that if you're on a Linux system, leave <fo:inline font-style="italic">cmd_cp</fo:inline> enabled. If you aren't on a Linux system, leave <fo:inline font-style="italic">cmd_cp</fo:inline> disabled. There are reports of GNU <fo:inline font-family="monospace">cp</fo:inline> working on BSD and other non-Linux platforms, but there have also been some cases where problems have been encountered. If you enable <fo:inline font-style="italic">cmd_cp</fo:inline> on a non-Linux platform, please let the mailing list know how it worked out for you.</fo:block></fo:block><fo:block id="cmd_rsync"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:block font-size="14.4pt">cmd_rsync</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-style="italic">cmd_rsync</fo:inline> parameter must not be commented out, and it must point to a working version of <fo:inline font-family="monospace">rsync</fo:inline>. If it doesn't, the program just will not work at all.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Please note that if you are using IRIX, there is another program named <fo:inline font-family="monospace">rsync</fo:inline> that is different than the “real” <fo:inline font-family="monospace">rsync</fo:inline> most people know of. If you're on an IRIX machine, you should double check this.</fo:block></fo:block><fo:block id="cmd_ssh"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:block font-size="14.4pt">cmd_ssh</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you have <fo:inline font-family="monospace">ssh</fo:inline> installed on your system, you will want to uncomment the <fo:inline font-style="italic">cmd_ssh</fo:inline> parameter. By enabling <fo:inline font-family="monospace">ssh</fo:inline>, you can take snapshots of any number of remote systems. If you don't have <fo:inline font-family="monospace">ssh</fo:inline>, or plan to only take snapshots of the local filesystem, you may safely leave this commented out.</fo:block></fo:block><fo:block id="cmd_logger"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:block font-size="14.4pt">cmd_logger</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-style="italic">cmd_logger</fo:inline> parameter specifies the path to the <fo:inline font-family="monospace">logger</fo:inline> program. <fo:inline font-family="monospace">logger</fo:inline> is a command line interface to syslog. See the <fo:inline font-family="monospace">logger</fo:inline> man page for more details. <fo:inline font-family="monospace">logger</fo:inline> should be a standard part of most UNIX-like systems. It appears to have remained unchanged since about 1993, which is good for cross-platform stability. If you comment out this parameter, it will disable syslog support in rsnapshot. It is recommended that you leave this enabled.</fo:block></fo:block><fo:block id="cmd_du"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:block font-size="14.4pt">cmd_du</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-style="italic">cmd_du</fo:inline> parameter specifies the path to the <fo:inline font-family="monospace">du</fo:inline> program. <fo:inline font-family="monospace">du</fo:inline> is a command line tool that reports on disk usage. rsnapshot uses <fo:inline font-family="monospace">du</fo:inline> to generate reports about the actual amount of disk space taken up, which is otherwise difficult to estimate because of all the hard links.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you comment this out, rsnapshot will try to use the version of <fo:inline font-family="monospace">du</fo:inline> it finds in your path, if possible. The GNU version of <fo:inline font-family="monospace">du</fo:inline> is recommended, since it has the best selection of features, and supports the most options. The BSD version also seems to work, although some versions don't support the <fo:inline font-weight="bold">-h</fo:inline> flag. Solaris <fo:inline font-weight="bold">du</fo:inline> does not work at all, because it doesn't support the <fo:inline font-weight="bold">-c</fo:inline> parameter.</fo:block></fo:block><fo:block id="link_dest"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:block font-size="14.4pt">link_dest</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you have <fo:inline font-family="monospace">rsync</fo:inline> version 2.5.7 or later, you may want to enable this. With <fo:inline font-style="italic">link_dest</fo:inline> enabled, rsnapshot relies on rsync to create recursive hard links, overriding GNU cp in most, but not all, cases. With <fo:inline font-style="italic">link_dest</fo:inline> enabled, every single file on your system can be backed up in one pass, on any operating system. To get the most out of rsnapshot on non-Linux platforms, <fo:inline font-style="italic">link_dest</fo:inline> should be enabled. Be advised, however, that if a remote host is unavailable during a backup, rsnapshot will take an extra step and roll back the files from the previous backup. Using GNU cp, this would not be necessary.</fo:block></fo:block><fo:block id="interval"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:block font-size="14.4pt">interval</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">rsnapshot has no idea how often you want to take snapshots. Everyone's backup scheme may be different. In order to specify how much data to save, you need to tell rsnapshot which “intervals” to keep, and how many of each. An interval, in the context of the rsnapshot config file, is a unit of time measurement. These can actually be named anything (as long as it's alphanumeric, and not a reserved word), but by convention we will call ours <fo:inline font-style="italic">hourly</fo:inline> and <fo:inline font-style="italic">daily</fo:inline>. In this example, we want to take a snapshot every four hours, or six times a day (these are the <fo:inline font-style="italic">hourly</fo:inline> intervals). We also want to keep a second set, which are taken once a day, and stored for a week (or seven days). This happens to be the default, so as you can see the config file reads:</fo:block><fo:block id="id2534705" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">interval    hourly  6
interval    daily   7</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It also has some other entries, but you can either ignore them or comment them out for now.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Please note that the <fo:inline font-style="italic">hourly</fo:inline> interval is specified first. This is very important. The first <fo:inline font-style="italic">interval</fo:inline> line is assumed to be the smallest unit of time, with each additional line getting successively larger. Thus, if you add a <fo:inline font-style="italic">yearly</fo:inline> interval, it should go at the bottom, and if you add a <fo:inline font-style="italic">minutes</fo:inline> interval, it should go before hourly. It's also worth noting that the snapshots get “pulled up” from the smallest interval to the largest. In this example, the daily snapshots get pulled from the oldest hourly snapshot, not directly from the main filesystem.</fo:block></fo:block><fo:block id="backup"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:block font-size="14.4pt">backup</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Please note that the destination paths specified here are based on the assumption that the <fo:inline font-style="italic">--relative</fo:inline> flag is being passed to <fo:inline font-family="monospace">rsync</fo:inline> via the <fo:inline font-style="italic">rsync_long_args</fo:inline> parameter. If you are installing for the first time, this is the default setting. If you upgraded from a previous version, please read the <fo:inline font-family="monospace">INSTALL</fo:inline> file that came with the source distribution for more information.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This is the section where you tell rsnapshot what files you actually want to back up. You put a “backup” parameter first, followed by the full path to the directory or network path you're backing up. The third column is the relative path you want to back up to inside the snapshot root. Let's look at an example:</fo:block><fo:block id="id2534796" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">backup      /etc/      localhost/</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In this example, <fo:inline font-style="italic">backup</fo:inline> tells us it's a backup point. <fo:inline font-family="monospace">/etc/</fo:inline> is the full path to the directory we want to take snapshots of, and <fo:inline font-family="monospace">localhost/</fo:inline> is a directory inside the <fo:inline font-style="italic">snapshot_root</fo:inline> we're going to put them in. Using the word <fo:inline font-style="italic">localhost</fo:inline> as the destination directory is just a convention. You might also choose to use the server's fully qualified domain name instead of <fo:inline font-style="italic">localhost</fo:inline>. If you are taking snapshots of several machines on one dedicated backup server, it's a good idea to use their various hostnames as directories to keep track of which files came from which server.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In addition to full paths on the local filesystem, you can also backup remote systems using <fo:inline font-family="monospace">rsync</fo:inline> over <fo:inline font-family="monospace">ssh</fo:inline>. If you have <fo:inline font-family="monospace">ssh</fo:inline> installed and enabled (via the <fo:inline font-style="italic">cmd_ssh</fo:inline> parameter), you can specify a path like:</fo:block><fo:block id="id2534873" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">backup      root@example.com:/etc/     example.com/</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This behaves fundamentally the same way, but you must take a few extra things into account.</fo:block><fo:list-block id="id2534884" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em" provisional-label-separation="0.2em" provisional-distance-between-starts="1.5em"><fo:list-item id="id2534886" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>The ssh daemon must be running on example.com</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2534892" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>You must have access to the account you specify the remote machine, in this case the root user on example.com.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2534898" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>You must have key-based logins enabled for the root user at example.com, without passphrases. If you wanted to perform backups as another user, you could specify the other user instead of root for the source (i.e. user@domain.com). Please note that allowing remote logins with no passphrase is a security risk that may or may not be acceptable in your situation. Make sure you guard access to the backup server very carefully! For more information on how to set this up, please consult the ssh man page, or a tutorial on using ssh public and private keys. You will find that the key based logins are better in many ways, not just for rsnapshot but for convenience and security in general. <fo:basic-link external-destination="url(http://www.jdmz.net/rsnapshot)">Troy Johnson</fo:basic-link><fo:inline hyphenate="false"> [http://www.jdmz.net/rsnapshot]</fo:inline>'s excellent tutorial on using nifty ssh features for secure snapshots which, in case his site ever suffers a mishap, is mirrored <fo:basic-link external-destination="url(http://www.rsnapshot.org/howto/using-rsnapshot-and-ssh.html)">here</fo:basic-link><fo:inline hyphenate="false"> [http://www.rsnapshot.org/howto/using-rsnapshot-and-ssh.html]</fo:inline> on this site.</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2534929" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()"><fo:block>•</fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>This backup occurs over the network, so it may be slower. Since this uses <fo:inline font-family="monospace">rsync</fo:inline>, this is most noticeable during the first backup. Depending on how much your data changes, subsequent backups should go much, much faster since <fo:inline font-style="italic">rsync</fo:inline> only sends the differences between files.</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block><fo:block id="backup_script"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:block font-size="14.4pt">backup_script</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">With this parameter, the second column is the full path to an executable backup script, and the third column is the local path you want to store it in (just like with the "backup" parameter). For example:</fo:block><fo:block id="id2534966" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">backup_script      /usr/local/bin/backup_pgsql.sh       localhost/postgres/</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In this example, rsnapshot will run the script <fo:inline font-family="monospace">/usr/local/bin/backup_pgsql.sh</fo:inline> in a temp directory, then sync the results into the <fo:inline font-family="monospace">localhost/postgres/</fo:inline> directory under the snapshot root. You can find the backup_pgsql.sh example script in the <fo:inline font-family="monospace">utils/</fo:inline> directory of the source distribution. Feel free to modify it for your system.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Your backup script simply needs to dump out the contents of whatever it does into it's current working directory. It can create as many files and/or directories as necessary, but it should not put its files in any pre-determined path. The reason for this is that rsnapshot creates a temp directory, changes to that directory, runs the backup script, and then syncs the contents of the temp directory to the local path you specified in the third column. A typical backup script would be one that archives the contents of a database. It might look like this:</fo:block><fo:block id="id2535016" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">#!/bin/sh

/usr/bin/mysqldump -uroot mydatabase &gt; mydatabase.sql
/bin/chmod 644 mydatabase.sql</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">There are several example scripts in the <fo:inline font-family="monospace">utils/</fo:inline> directory of the rsnapshot source distribution to give you more ideas.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Make sure the destination path you specify is unique. The backup script will completely overwrite anything in the destination path, so if you tried to specify the same destination twice, you would be left with only the files from the last script. Fortunately, rsnapshot will try to prevent you from doing this when it reads the config file.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Please remember that these backup scripts will be invoked as the user running rsnapshot. In our example, this is root. Make sure your backup scripts are owned by root, and not writable by anyone else. If you fail to do this, anyone with write access to these backup scripts will be able to put commands in them that will be run as the root user. If they are malicious, they could take over your server.</fo:block></fo:block></fo:block><fo:block id="testing_your_config_file"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Testing your config file</fo:marker><fo:block font-size="17.28pt">Testing your config file</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When you have made all your changes, you should verify that the config file is syntactically valid, and that all the supporting programs are where you think they are. To do this, run rsnapshot with the configtest argument:</fo:block><fo:block id="id2535078" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">rsnapshot configtest</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If all is well, it should say <fo:inline font-family="monospace">Syntax OK</fo:inline>. If there's a problem, it should tell you exactly what it is. Make sure your config file is using tabs and not spaces, etc.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The final step to test your configuration is to run rsnapshot in test mode. This will print out a verbose list of the things it will do, without actually doing them. To do a test run, run this command:</fo:block><fo:block id="id2535106" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">rsnapshot -t hourly</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This tells rsnapshot to simulate an "hourly" backup. It should print out the commands it will perform when it runs for real. Please note that the test output might be slightly different than the real execution, but only because the test doesn't actually do things that may be checked for later in the program. For example, if the program will create a directory and then later test to see if that directory exists, the test run might claim that it would create the directory twice, since it didn't actually get created during the test. This should be the only type of difference you will see while running a test.</fo:block></fo:block></fo:block><fo:block id="automation"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Automation</fo:marker><fo:block font-size="20.736pt">Automation</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now that you have your config file set up, it's time to set up rsnapshot to be run from cron. As the root user, edit root's crontab by typing:</fo:block><fo:block id="id2535148" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">crontab -e</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You could alternately keep a crontab file that you load in, but the concepts are the same. You want to enter the following information into root's crontab:</fo:block><fo:block id="id2535163" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">
0 */4 * * *       /usr/local/bin/rsnapshot hourly
30 23 * * *       /usr/local/bin/rsnapshot daily
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">It is usually a good idea to schedule the larger intervals to run a bit before the lower ones. For example, in the crontab above, notice that <fo:inline font-style="italic">daily</fo:inline> runs 30 minutes before <fo:inline font-style="italic">hourly</fo:inline>. This helps prevent race conditions where the <fo:inline font-style="italic">daily</fo:inline> would try to run before the <fo:inline font-style="italic">hourly</fo:inline> job had finished. This same strategy should be extended so that a <fo:inline font-style="italic">weekly</fo:inline> entry would run before the <fo:inline font-style="italic">daily</fo:inline> and so on.
</fo:block></fo:block><fo:block id="how_it_works"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">How it works</fo:marker><fo:block font-size="20.736pt">How it works</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">We have a snapshot root under which all backups are stored. By default, this is the directory <fo:inline font-family="monospace">/.snapshots/</fo:inline>. Within this directory, other directories are created for the various intervals that have been defined. In the beginning it will be empty, but once rsnapshot has been running for a week, it should look something like this:</fo:block><fo:block id="id2535232" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">
[root@localhost]# <fo:inline font-weight="bold">ls -l /.snapshots/</fo:inline>
drwxr-xr-x    7 root     root         4096 Dec 28 00:00 daily.0
drwxr-xr-x    7 root     root         4096 Dec 27 00:00 daily.1
drwxr-xr-x    7 root     root         4096 Dec 26 00:00 daily.2
drwxr-xr-x    7 root     root         4096 Dec 25 00:00 daily.3
drwxr-xr-x    7 root     root         4096 Dec 24 00:00 daily.4
drwxr-xr-x    7 root     root         4096 Dec 23 00:00 daily.5
drwxr-xr-x    7 root     root         4096 Dec 22 00:00 daily.6
drwxr-xr-x    7 root     root         4096 Dec 29 00:00 hourly.0
drwxr-xr-x    7 root     root         4096 Dec 28 20:00 hourly.1
drwxr-xr-x    7 root     root         4096 Dec 28 16:00 hourly.2
drwxr-xr-x    7 root     root         4096 Dec 28 12:00 hourly.3
drwxr-xr-x    7 root     root         4096 Dec 28 08:00 hourly.4
drwxr-xr-x    7 root     root         4096 Dec 28 04:00 hourly.5
</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Inside each of these directories is a “full” backup of that point in time. The destination directory paths you specified under the <fo:inline font-style="italic">backup</fo:inline> and <fo:inline font-style="italic">backup_script</fo:inline> parameters get stuck directly under these directories. In the example:</fo:block><fo:block id="id2535276" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">backup          /etc/           localhost/</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The <fo:inline font-family="monospace">/etc/</fo:inline> directory will initially get backed up into <fo:inline font-family="monospace">/.snapshots/hourly.0/localhost/etc/</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Each subsequent time rsnapshot is run with the <fo:inline font-style="italic">hourly</fo:inline> command, it will rotate the <fo:inline font-family="monospace">hourly.X</fo:inline> directories, and then “copy” the contents of the <fo:inline font-family="monospace">hourly.0</fo:inline> directory (using hard links) into <fo:inline font-family="monospace">hourly.1</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When <fo:inline font-weight="bold">rsnapshot daily</fo:inline> is run, it will rotate all the <fo:inline font-family="monospace">daily.X</fo:inline> directories, then copy the contents of <fo:inline font-family="monospace">hourly.5</fo:inline> into <fo:inline font-family="monospace">daily.0</fo:inline>.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:inline font-family="monospace">hourly.0</fo:inline> will always contain the most recent snapshot, and <fo:inline font-family="monospace">daily.6</fo:inline> will always contain a snapshot from a week ago. Unless the files change between snapshots, the “full” backups are really just multiple hard links to the same files. Thus, if your <fo:inline font-family="monospace">/etc/passwd</fo:inline> file doesn't change in a week, <fo:inline font-family="monospace">hourly.0/localhost/etc/passwd</fo:inline> and <fo:inline font-family="monospace">daily.6/localhost/etc/passwd</fo:inline> will literally be the same exact file. This is how rsnapshot can be so efficient on space. If the file changes at any point, the next backup will unlink the hard link in <fo:inline font-family="monospace">hourly.0</fo:inline>, and replace it with a brand new file. This will now take double the disk space it did before, but it is still considerably less than it would be to have full unique copies of this file 13 times over.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Remember that if you are using different intervals than the ones in this example, the first interval listed is the one that gets updates directly from the main filesystem. All subsequently listed intervals pull from the previous intervals. For example, if you had <fo:inline font-style="italic">weekly</fo:inline>, <fo:inline font-style="italic">monthly</fo:inline>, and <fo:inline font-style="italic">yearly</fo:inline> intervals defined (in that order), the weekly ones would get updated directly from the filesystem, the monthly ones would get updated from weekly, and the yearly ones would get updated from monthly.</fo:block></fo:block><fo:block id="restoring_backups"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Restoring backups</fo:marker><fo:block font-size="20.736pt">Restoring backups</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">When rsnapshot is first run, it will create the <fo:inline font-style="italic">snapshot_root</fo:inline> directory (<fo:inline font-family="monospace">/.snapshots/</fo:inline> by default). It assigns this directory the permissions 700, and for good reason. The snapshot root will probably contain files owned by all sorts of users on your system. If any of these files are writeable (and of course some of them will be), the users will still have write access to their files. Thus, if they can see the snapshots directly, they can modify them, and the integrity of the snapshots can not be guaranteed.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">For example, if a user had write permission to the backups and accidentally ran <fo:inline font-weight="bold">rm -rf /</fo:inline>, they would delete all their files in their home directory and all the files they owned in the backups!</fo:block><fo:block id="root_only"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">root only</fo:marker><fo:block font-size="17.28pt">root only</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The simplest, but least flexible solution, is to simply deny non-root users access to the snapshot root altogether. The root user will still have access of course, and as with all other aspects of system administration, must be trusted not to go messing with things too much. However, by simply denying access to everyone, the root user will be the only one who can pull backups. This may or may not be desirable, depending on your situation. For a small setup or a single-user machine, this may be all you need.</fo:block></fo:block><fo:block id="all_users"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">All users</fo:marker><fo:block font-size="17.28pt">All users</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If users need to be able to pull their own backups, you will need to do a little extra work up front (but probably less work in the long run). The best way to do this seems to be creating a container directory for the snapshot root with 700 permissions, giving the snapshot root directory 755 permissions, and mounting the snapshot root for the users read-only. This can be done over NFS and Samba, to name two possibilities. Let's explore how to do this using NFS on a single machine:</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Set the snapshot_root variable in <fo:inline font-family="monospace">/etc/rsnapshot.conf</fo:inline> equal to <fo:inline font-family="monospace">/.private/.snapshots/</fo:inline></fo:block><fo:block id="id2535572" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">snapshot_root       /.private/.snapshots/</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Create the container directory:</fo:block><fo:block id="id2535582" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">mkdir /.private/</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Create the real snapshot root:</fo:block><fo:block id="id2535595" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">mkdir /.private/.snapshots/</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Create the read-only snapshot root mount point:</fo:block><fo:block id="id2535609" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">mkdir /.snapshots/</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Set the proper permissions on these new directories:</fo:block><fo:block id="id2535622" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">chmod 0700 /.private/
chmod 0755 /.private/.snapshots/
chmod 0755 /.snapshots/</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In <fo:inline font-family="monospace">/etc/exports</fo:inline>, add <fo:inline font-family="monospace">/.private/.snapshots/</fo:inline> as a read only NFS export:</fo:block><fo:block id="id2535651" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">/.private/.snapshots/  127.0.0.1(ro,no_root_squash)</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">In <fo:inline font-family="monospace">/etc/fstab</fo:inline>, mount <fo:inline font-family="monospace">/.private/.snapshots/</fo:inline> read-only under <fo:inline font-family="monospace">/.snapshots/</fo:inline></fo:block><fo:block id="id2535682" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace">localhost:/.private/.snapshots/   /.snapshots/   nfs    ro   0 0</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You should now restart your NFS daemon.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now mount the read-only snapshot root:</fo:block><fo:block id="id2535697" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">mount /.snapshots/</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">To test this, go into the /.snapshots/ directory as root. It is set to read-only, so even root shouldn't be able to write to it. As root, try:</fo:block><fo:block id="id2535712" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">touch /.snapshots/testfile</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">This should fail, citing insufficient permissions. This is what you want. It means that your users won't be able to mess with the snapshots either.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Now, all your users have to do to recover old files is go into the /.snapshots directory, select the interval they want, and browse through the filesystem until they find the files they are looking for. They can't modify anything in here because NFS will prevent them, but they can copy anything that they had read permission for in the first place. All the regular filesystem permissions are still at work, but the read-only NFS mount prevents any writes from happening.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">Please note that some NFS configurations may prevent you from accessing files that are owned by root and set to only be readable by root. In this situation, you may wish to pull backups for root from the "real" snapshot root, and let non-privileged users pull from the read-only NFS mount.</fo:block></fo:block></fo:block><fo:block id="conclusion"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">Conclusion</fo:marker><fo:block font-size="20.736pt">Conclusion</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you followed the instructions in this document, you should now have rsnapshot installed and set up to perform automatic backups of your system. If it's not working, go back and trace your steps back to see if you can isolate the problem.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The amount of disk space taken up will be equal to one full backup, plus an additional copy of every file that is changed. There is also a slight disk space overhead with creating multiple hard links, but it's not very much. On my system, adding a second, completely identical 3 Gigabyte interval alongside the original one only added about 15 Megabytes.</fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">You can use the <fo:inline font-style="italic">du</fo:inline> option to rsnapshot to generate disk usage reports. To see the sum total of all space used, try:</fo:block><fo:block id="id2535786" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">rsnapshot du</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">If you were storing backups under <fo:inline font-family="monospace">localhost/home/</fo:inline> and wanted to see how much this subdirectory takes up throughout all your backups, try this instead:</fo:block><fo:block id="id2535809" white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve" text-align="start" wrap-option="no-wrap" space-before.minimum="0.8em" space-before.optimum="1em" space-before.maximum="1.2em" space-after.minimum="0.8em" space-after.optimum="1em" space-after.maximum="1.2em" hyphenate="false" font-family="monospace"><fo:inline font-weight="bold">rsnapshot du localhost/home/</fo:inline></fo:block><fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em">The latest version of this document and the rsnapshot program can always be found at <fo:basic-link external-destination="url(http://www.rsnapshot.org/)">http://www.rsnapshot.org/</fo:basic-link></fo:block></fo:block><fo:block id="more_resources"><fo:block><fo:block><fo:block keep-together="always" margin-left="0pt" font-family="sans-serif,Symbol,ZapfDingbats"><fo:block xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" keep-with-next.within-column="always"><fo:block font-family="sans-serif" font-weight="bold" keep-with-next.within-column="always" space-before.minimum="0.8em" space-before.optimum="1.0em" space-before.maximum="1.2em" start-indent="0pt"><fo:marker marker-class-name="section.head.marker">More resources</fo:marker><fo:block font-size="20.736pt">More resources</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" keep-with-next.within-column="always">Web sites</fo:block><fo:list-block id="id2535840" provisional-distance-between-starts="24em * 0.60+1em" provisional-label-separation="1em" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" space-after.optimum="1em" space-after.minimum="0.8em" space-after.maximum="1.2em"><fo:list-item id="id2535845" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Mike Rubel's original shell scripts, upon which this project is based</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
			<fo:basic-link external-destination="url(http://www.mikerubel.org/computers/rsync_snapshots/)">http://www.mikerubel.org/computers/rsync_snapshots/</fo:basic-link>
			</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2535864" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>Perl</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
			<fo:basic-link external-destination="url(http://www.perl.org/)">http://www.perl.org/</fo:basic-link>
			</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2535882" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>GNU cp and du (coreutils package)</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
			<fo:basic-link external-destination="url(http://www.gnu.org/software/coreutils/)">http://www.gnu.org/software/coreutils/</fo:basic-link>
			</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2535900" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>rsync</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
			<fo:basic-link external-destination="url(http://rsync.samba.org/)">http://rsync.samba.org/</fo:basic-link>
			</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2535917" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>OpenSSH</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
			<fo:basic-link external-destination="url(http://www.openssh.org/)">http://www.openssh.org/</fo:basic-link>
			</fo:block></fo:block></fo:list-item-body></fo:list-item><fo:list-item id="id2535934" space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em"><fo:list-item-label end-indent="label-end()" text-align="start"><fo:block><fo:inline>rsnapshot</fo:inline></fo:block></fo:list-item-label><fo:list-item-body start-indent="body-start()"><fo:block><fo:block>
			<fo:basic-link external-destination="url(http://www.rsnapshot.org/)">http://www.rsnapshot.org/</fo:basic-link>
			</fo:block></fo:block></fo:list-item-body></fo:list-item></fo:list-block></fo:block></fo:flow></fo:page-sequence></fo:root>
