# INSTALLATION

rsnapshot is a filesystem snapshot utility. It uses rsync to take
snapshots of local and remote filesystems for any number of machines,
and then rotates the snapshots according to your rsnapshot.conf.

rsnapshot comes with ABSOLUTELY NO WARRANTY.  This is free software,
and you are welcome to redistribute it under certain conditions.
See the GNU General Public Licence for details.

## QUICK START

If you are installing for the first time (and just want the defaults):

*   Run these commands for a quick installation from source code:
    (skip these commands if you have installed rpm or debian package)

        $ ./autogen.sh # Generates the configure script.
        $ ./configure --sysconfdir=/etc
        $ sudo make install
        $ sudo cp /etc/rsnapshot.conf.default /etc/rsnapshot.conf

*   Open up /etc/rsnapshot.conf with a text editor, and modify it for your system.

*   Make sure the config file syntax is valid (remember, tabs, not spaces):

        $ /usr/local/bin/rsnapshot configtest

The rsnapshot HOWTO is recommended reading for first time setups. It will
walk you through this process in great detail. The rsnapshot HOWTO can be
found online at http://www.rsnapshot.org/

## UPGRADING

If you are upgrading from a previous installation of rsnapshot 1.1.x,
please read the file: `docs/Upgrading_from_1.1`

There are no special instructions for upgrading from rsnapshot 1.2.x to
1.3.x, since both use `config_version 1.2`.

If you are not sure whether you need to do anything to upgrade your
old rsnapshot.conf, you can run

    $ make upgrade
or

    $ rsnapshot upgrade-config-file

or

    $ rsnapshot -c /etc/rsnapshot.conf upgrade-config-file

## ADDITIONAL OPTIONS

If you require more precise control over the locations of files:

You can pass the following options to ./configure for more control
over where various parts of rsnapshot are installed. The example
values shown also happen to be the defaults.

*   --prefix=/usr/local

    This will install everything under /usr/local

*   --sysconfdir=/usr/local/etc

    This will install the example config file
    (rsnapshot.conf.default) under /usr/local/etc. This will also be
    the default directory where rsnapshot looks for its config file.
    It is recommended that you copy rsnapshot.conf.default and use it
    as a basis for the actual config file (rsnapshot.conf).

*   --bindir=/usr/local/bin

    This will install the rsnapshot program under /usr/local/bin

*   --mandir=/usr/local/man

    This will install the man page under /usr/local/man

*   --with-perl=/usr/bin/perl

    Specify your preferred path to perl. If you don't specify
    this, the build process will detect the first version of perl
    it finds in your path.

*   --with-rsync=/usr/bin/rsync

    Specify your preferred path to rsync. If you don't specify
    this, the build process will detect the first version of rsync
    it finds in your path. You can always change this later by
    editing the config file (rsnapshot.conf).

*   --with-cp=/bin/cp

    Specify the path to GNU cp. The traditional UNIX cp command
    is not sufficient. If you don't specify this, the build process
    will detect the first version of cp it finds in your path.
    If you don't have the GNU version of cp, leave this commented
    out in the config file (rsnapshot.conf).

*   --with-rm=/bin/rm

    Specify the path to the rm command. If you don't specify this,
    the build process will detect the first version of rm it finds
    in your path.

*   --with-ssh=/usr/bin/ssh

    Specify your preferred path to ssh. If you don't specify this,
    the build process will detect the first version of ssh it
    finds in your path. SSH is an optional feature, so it is OK if
    it isn't on your system. Either way, if you want to use ssh,
    you need to specifically enable this feature by uncommenting
    the "cmd_ssh" parameter in the config file (rsnapshot.conf).

*   --with-logger=/usr/bin/logger

    Specify your preferred path to logger. If you don't specify
    this, the build process will detect the first version of
    logger it finds in your path. If you want syslog support,
    make sure this is enabled in the config file. Syslog support
    is optional, so if you don't have it or comment it out it's OK.

*   --with-du=/usr/bin/du

    Specify your preferred path to du. If you don't specify
    this, the build process will detect the first version of
    du it finds in your path. The "du" command only gets used
    when rsnapshot is called with the "du" argument to calculate
    the amount of disk space used. This is optional, so if you
    don't have it or comment it out it's OK.
