fix
[BackupPC.git] / conf / config.pl
index abdcd32..d0b1a68 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.
 #
@@ -136,7 +136,13 @@ $Conf{MaxUserBackups} = 4;
 # This limit is to make sure BackupPC doesn't fall too far behind in
 # running BackupPC_link commands.
 #
-$Conf{MaxPendingCmds} = 10;
+$Conf{MaxPendingCmds} = 15;
+
+#
+# Nice level at which CmdQueue commands (eg: BackupPC_link and
+# BackupPC_nightly) are run at.
+#
+$Conf{CmdQueueNice} = 10;
 
 #
 # How many BackupPC_nightly processes to run in parallel.
@@ -288,6 +294,14 @@ $Conf{BackupPCUser} = '';
 #                with configure.pl to change InstallDir.
 #   CgiDir     - Apache CGI directory for BackupPC_Admin
 #
+# Note: it is STRONGLY recommended that you don't change the
+# values here.  These are set at installation time and are here
+# for reference and are used during upgrades.
+#
+# Instead of changing TopDir here it is recommended that you use
+# a symbolic link to the new location, or mount the new BackupPC
+# store at the existing $Conf{TopDir} setting.
+#
 $Conf{TopDir}      = '';
 $Conf{ConfDir}     = '';
 $Conf{LogDir}      = '';
@@ -703,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.
 #
@@ -1258,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!
@@ -1291,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.
@@ -1305,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!
@@ -1341,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'.
 #
@@ -1366,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.
@@ -1398,71 +1478,6 @@ $Conf{FtpTimeout} = 120;
 #
 $Conf{FtpFollowSymlinks} = 0;
 
-
-###########################################################################
-# BackupPCd Configuration
-# (can be overwritten in the per-PC log file)
-###########################################################################
-#
-# Share name to backup.  For $Conf{XferMethod} = "backuppcd" this should
-# be a file system path, eg '/' or '/home'.
-#
-# This can also be a list of multiple file system paths or modules.
-# (Can it??)
-#
-#     $Conf{BackupPCdShareName} = ['/', '/var', '/data', '/boot'];
-#
-$Conf{BackupPCdShareName} = '/';
-
-#
-# Path to backuppcd executable on the server
-#
-$Conf{BackupPCdPath} = '';
-
-#
-# Full command to run backuppcd on the server to backup a given
-# client machine.  The following variables are substituted at
-# run-time (TODO: update this list)
-#
-#        $host           host name being backed up
-#        $hostIP         host's IP address
-#        $shareName      share name to backup (ie: top-level directory path)
-#        $backuppcdPath  same as $Conf{BackupPCdPath}
-#        $sshPath        same as $Conf{SshPath}
-#
-# This setting only matters if $Conf{XferMethod} = 'backuppcd'.
-#
-# Arguments to backupcpd are:
-#
-#   - the host name to backup
-#   - the share name to backup
-#   - the directory where the pool is
-#   - the directory where the last run was (NOT DONE YET)
-#   - a boolean value indicating whether or not the pool is
-#      compressed or not
-#   - the directory where the new run should occur (currently it assumes ".")
-#
-$Conf{BackupPCdCmd} = '$bpcdPath $host $shareName $poolDir XXXX $poolCompress $topDir/pc/$client/new';
-
-#
-# Full command to run backuppcd on the server for restore to a
-# client machine.  The following variables are substituted at
-# run-time (TODO: update this list)
-#
-#        $host           host name being backed up
-#        $hostIP         host's IP address
-#        $shareName      share name to backup (ie: top-level directory path)
-#        $backuppcdPath  same as $Conf{BackupPCdPath}
-#        $sshPath        same as $Conf{SshPath}
-#
-# This setting only matters if $Conf{XferMethod} = 'backuppcd'.
-#
-# Note: all Cmds are executed directly without a shell, so the prog name
-# needs to be a full path and you can't include shell syntax like
-# redirection and pipes; put that in a script if you need it.
-#
-$Conf{BackupPCdRestoreCmd} = '$bpcdPath TODO';
-
 ###########################################################################
 # Archive Configuration
 # (can be overwritten in the per-PC log file)
@@ -1962,13 +1977,12 @@ $Conf{EMailOutlookBackupSubj} = undef;
 $Conf{EMailOutlookBackupMesg} = undef;
 
 #
-# Additional email headers.  If you change the charset
-# to utf8 then BackupPC_sendEmail will use utf8 for
-# the email body.
+# Additional email headers.  This sets to charset to
+# utf8.
 #
 $Conf{EMailHeaders} = <<EOF;
 MIME-Version: 1.0
-Content-Type: text/plain; charset="iso-8859-1"
+Content-Type: text/plain; charset="utf-8"
 EOF
 
 ###########################################################################
@@ -2110,7 +2124,7 @@ $Conf{CgiHeaders} = '<meta http-equiv="pragma" content="no-cache">';
 # used by configure.pl when you upgrade BackupPC.
 #
 # Example:
-#     $Conf{CgiImageDir} = '/usr/local/apache/htdocs/BackupPC';
+#     $Conf{CgiImageDir} = '/var/www/htdocs/BackupPC';
 #
 $Conf{CgiImageDir} = '';
 
@@ -2206,6 +2220,7 @@ $Conf{CgiUserConfigEdit} = {
         RsyncdAuthRequired        => 1,
         RsyncCsumCacheVerifyProb  => 1,
         RsyncArgs                 => 1,
+        RsyncArgsExtra            => 1,
         RsyncRestoreArgs          => 1,
         RsyncClientCmd            => 0,
         RsyncClientRestoreCmd     => 0,
@@ -2216,10 +2231,8 @@ $Conf{CgiUserConfigEdit} = {
         FtpBlockSize              => 1,
         FtpPort                   => 1,
         FtpTimeout                => 1,
-        BackupPCdPath             => 1,
-        BackupPCdShareName        => 1,
-        BackupPCdCmd              => 1,
-        BackupPCdRestoreCmd       => 1,
+        FtpFollowSymlinks         => 1,
+        FtpRestoreEnabled         => 1,
         ArchiveDest               => 1,
         ArchiveComp               => 1,
         ArchivePar                => 1,
@@ -2257,3 +2270,96 @@ $Conf{CgiUserConfigEdit} = {
         EMailOutlookBackupMesg    => 1,
         EMailHeaders              => 1,
 };
+
+
+# XXX XXX XXX XXX XXX XXX XXX
+# XXX support for search
+
+
+# add search database dsn
+#
+#$Conf{SearchDSN} = 'dbi:SQLite:dbname=$TopDir/search.db';
+$Conf{SearchDSN} = 'dbi:Pg:dbname=backuppc';
+$Conf{SearchUser} = 'dpavlin';
+#
+
+# if you want to use experimental Hyper Estraier support (which require
+# installation of Search::Estraier perl module from CPAN) select
+# path to index (relative to $TopDir) or node URI
+# use following line to disable Hyper Estraier and prevent upgrades
+# from overwriting it
+#$Conf{SearchModule} = 'BackupPC::Search::Estraier';
+#$Conf{HyperEstraierIndex} = 'http://localhost:1978/node/backuppc';
+
+# which search engine to use
+$Conf{SearchModule} = 'BackupPC::Search::KinoSearch';
+$Conf{KinoPath} = '/tmp/kinosearch';
+
+#
+# temp directory for storing gzip and iso files when createing iso images
+#
+$Conf{GzipTempDir} = "$Conf{TopDir}/temp";
+
+#
+# nameing schema for snapshots (.tar.gz will be added)
+# \h   - hostname
+# \s   - share
+# \n   - increment numer
+#
+$Conf{GzipSchema} = '\\h_\\s_\\n';
+#
+
+#
+# archive media size (in bytes)
+# default: 4.2Gb for DVD
+#
+#$Conf{MaxArchiveSize} = 4200 * 1024 * 1024;
+$Conf{MaxArchiveSize} = 4404019200;
+
+#
+# maximum size of one (uncompressed) file on archive medium (in bytes)
+# default: 2Gb - 2k for DVD
+#$Conf{MaxArchiveFileSize} = (2048 - 2) * 1024 * 1024;
+$Conf{MaxArchiveFileSize} = 2145386496;
+
+#
+# Temporary directory for ISO images (relative to install dir)
+#
+$Conf{ISOTempDir} = 'temp/iso';
+
+####
+# configuration data for burning
+####
+#$Conf{CDRecordBin} = 'cdrecord';
+#$Conf{CDRecordOpts} = 'dev=/dev/hdc blank=fast -dao -v -eject -dummy';
+
+#$Conf{CDRecordBin} = 'dvdrecord';
+#$Conf{CDRecordOpts} = 'dev=0,0,0 -dao -v -eject -dummy';
+
+# gzip level for creating tar.gz increments
+# default is -6, -1 is fast, -9 is slow
+#$Conf{GzipLevel} = '-6';
+$Conf{GzipLevel} = '-1';
+
+# number of archive copies to burn
+$Conf{BurnMultipleCopies} = 2;
+
+# Other command-line utilities used
+#$Conf{ejectBin} = 'eject';
+#$Conf{ejectOpts} = '/dev/cdrom';
+$Conf{ejectBin} = 'true';
+$Conf{ejectOpts} = ' ';
+
+
+# FIXME disable burning
+$Conf{ejectBin} = 'true';
+$Conf{ejectOpts} = ' ';
+$Conf{CDRecordBin} = 'cat';
+$Conf{CDRecordOpts} = '>/dev/null <';
+
+
+$Conf{mkisofsBin} = 'mkisofs';
+
+# temporary path used when recovering of increments
+# (you might put this into tmpfs if you have enough RAM)
+$Conf{IncrementTempDir} = '/tmp/increment-restore/';