* Changes in preparation for 3.2.0beta1...
[BackupPC.git] / conf / config.pl
index feed6bf..de759d6 100644 (file)
@@ -29,7 +29,7 @@
 #   Craig Barratt  <cbarratt@users.sourceforge.net>
 #
 # COPYRIGHT
-#   Copyright (C) 2001-2007  Craig Barratt
+#   Copyright (C) 2001-2009  Craig Barratt
 #
 #   See http://backuppc.sourceforge.net.
 #
@@ -717,6 +717,12 @@ $Conf{BackupFilesOnly} = undef;
 # Users report that for smbclient you should specify a directory
 # followed by "/*", eg: "/proc/*", instead of just "/proc".
 #
+# FTP servers are traversed recursively so excluding directories will
+# also exclude its contents.  You can use the wildcard characters "*"
+# and "?" to define files for inclusion and exclusion.  Both
+# attributes $Conf{BackupFilesOnly} and $Conf{BackupFilesExclude} can
+# be defined for the same share.
+#
 # If a hash is used, a special key "*" means it applies to all
 # shares that don't have a specific entry.
 #
@@ -1272,16 +1278,6 @@ $Conf{RsyncCsumCacheVerifyProb} = 0.01;
 # Arguments to rsync for backup.  Do not edit the first set unless you
 # have a thorough understanding of how File::RsyncP works.
 #
-# Examples of additional arguments that should work are --exclude/--include,
-# eg:
-#
-#     $Conf{RsyncArgs} = [
-#           # original arguments here
-#           '-v',
-#           '--exclude', '/proc',
-#           '--exclude', '*.tmp',
-#     ];
-#
 $Conf{RsyncArgs} = [
            #
            # Do not edit these!
@@ -1305,12 +1301,40 @@ $Conf{RsyncArgs} = [
             # to enable checksum caching.
            #
            #'--checksum-seed=32761',
-
-           #
-           # Add additional arguments here
-           #
 ];
 
+#
+# Additional arguments added to RsyncArgs.  This can be used in
+# conbination with $Conf{RsyncArgs} to allow customization of
+# the rsync arguments on a part-client basis.  The standard
+# arguments go in $Conf{RsyncArgs} and $Conf{RsyncArgsExtra}
+# can be set on a per-client basis.
+#
+# Examples of additional arguments that should work are --exclude/--include,
+# eg:
+#
+#     $Conf{RsyncArgsExtra} = [
+#           '--exclude', '/proc',
+#           '--exclude', '*.tmp',
+#     ];
+#
+# Both $Conf{RsyncArgs} and $Conf{RsyncArgsExtra} are subject
+# to the following variable substitutions:
+#
+#        $client       client name being backed up
+#        $host         host name (could be different from client name if
+#                                 $Conf{ClientNameAlias} is set)
+#        $hostIP       IP address of host
+#        $confDir      configuration directory path
+#
+# This allows settings of the form:
+#
+#     $Conf{RsyncArgsExtra} = [
+#             '--exclude-from=$confDir/pc/$host.exclude',
+#     ];
+#
+$Conf{RsyncArgsExtra} = [];
+
 #
 # Arguments to rsync for restore.  Do not edit the first set unless you
 # have a thorough understanding of how File::RsyncP works.
@@ -1319,6 +1343,17 @@ $Conf{RsyncArgs} = [
 # is read-only), you should set $Conf{RsyncRestoreArgs} to undef and
 # the corresponding CGI restore option will be removed.
 #
+# $Conf{RsyncRestoreArgs} is subject to the following variable
+# substitutions:
+#
+#        $client       client name being backed up
+#        $host         host name (could be different from client name if
+#                                 $Conf{ClientNameAlias} is set)
+#        $hostIP       IP address of host
+#        $confDir      configuration directory path
+#
+# Note: $Conf{RsyncArgsExtra} doesn't apply to $Conf{RsyncRestoreArgs}.
+#
 $Conf{RsyncRestoreArgs} = [
            #
            # Do not edit these!
@@ -1355,12 +1390,33 @@ $Conf{RsyncRestoreArgs} = [
 # (can be overwritten in the per-PC log file)
 ##########################################################################
 #
-# Name of the host share that is backed up when using FTP.  This can be a
+# Which host directories to backup when using FTP.  This can be a
 # string or an array of strings if there are multiple shares per host.
-# Examples:
 #
-#   $Conf{FtpShareName} = 'c';          # backup 'c' share
-#   $Conf{FtpShareName} = ['c', 'd'];   # backup 'c' and 'd' shares
+# This value must be specified in one of two ways: either as a
+# subdirectory of the 'share root' on the server, or as the absolute
+# path of the directory.
+#
+# In the following example, if the directory /home/username is the
+# root share of the ftp server with the given username, the following
+# two values will back up the same directory:
+#
+#    $Conf{FtpShareName} = 'www';                # www directory
+#    $Conf{FtpShareName} = '/home/username/www'; # same directory
+#
+# Path resolution is not supported; i.e.; you may not have an ftp
+# share path defined as '../otheruser' or '~/games'.
+#
+#  Multiple shares may also be specified, as with other protocols:
+#
+#    $Conf{FtpShareName} = [ 'www',
+#                            'bin',
+#                            'config' ];
+#
+# Note also that you can also use $Conf{BackupFilesOnly} to specify
+# a specific list of directories to backup.  It's more efficient to
+# use this option instead of $Conf{FtpShareName} since a new tar is
+# run for each entry in $Conf{FtpShareName}.
 #
 # This setting only matters if $Conf{XferMethod} = 'ftp'.
 #
@@ -1380,6 +1436,16 @@ $Conf{FtpUserName} = '';
 #
 $Conf{FtpPasswd} = '';
 
+#
+# Whether passive mode is used.  The correct setting depends upon
+# whether local or remote ports are accessible from the other machine,
+# which is affected by any firewall or routers between the FTP server
+# on the client and the BackupPC server.
+#
+# This setting is used only if $Conf{XferMethod} = 'ftp'.
+#
+$Conf{FtpPassive} = 1;
+
 #
 # Transfer block size. This sets the size of the amounts of data in
 # each frame. While undefined, this value takes the default value.
@@ -2154,6 +2220,7 @@ $Conf{CgiUserConfigEdit} = {
         RsyncdAuthRequired        => 1,
         RsyncCsumCacheVerifyProb  => 1,
         RsyncArgs                 => 1,
+        RsyncArgsExtra            => 1,
         RsyncRestoreArgs          => 1,
         RsyncClientCmd            => 0,
         RsyncClientRestoreCmd     => 0,
@@ -2164,6 +2231,8 @@ $Conf{CgiUserConfigEdit} = {
         FtpBlockSize              => 1,
         FtpPort                   => 1,
         FtpTimeout                => 1,
+        FtpFollowSymlinks         => 1,
+        FtpRestoreEnabled         => 1,
         ArchiveDest               => 1,
         ArchiveComp               => 1,
         ArchivePar                => 1,