X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=conf%2Fconfig.pl;h=58991e158df65a3d7fcc112ba093d1f447532dde;hb=8f5625f9cdf47f8e04be654c4954838b2df3e26d;hp=0f73ec69f67d8a8879964f8913fdeefd68d21de8;hpb=9175f9157f0d54b50ebf11d2036c20f50ffc6d9d;p=BackupPC.git diff --git a/conf/config.pl b/conf/config.pl index 0f73ec6..58991e1 100644 --- a/conf/config.pl +++ b/conf/config.pl @@ -108,6 +108,13 @@ $Conf{UmaskMode} = 027; # # The default value is every hour except midnight. # +# The first entry of $Conf{WakeupSchedule} is when BackupPC_nightly +# is run. No other backups can run while BackupPC_nightly is +# running. You might want to re-arrange the entries in +# $Conf{WakeupSchedule} (they don't have to be ascending) so that +# the first entry is when you want BackupPC_nightly to run +# (eg: when you don't expect a lot of regular backups to run). +# $Conf{WakeupSchedule} = [1..23]; # @@ -153,13 +160,23 @@ $Conf{MaxOldLogFiles} = 14; $Conf{DfPath} = '/bin/df'; # -# Command to run df. Several variables are substituted at run-time: +# Command to run df. The following variables are substituted at run-time: # # $dfPath path to df ($Conf{DfPath}) # $topDir top-level BackupPC data directory # $Conf{DfCmd} = '$dfPath $topDir'; +# +# Full path to various commands for archiving +# + +$Conf{SplitPath} = '/usr/bin/split'; +$Conf{ParPath} = '/usr/bin/par'; +$Conf{CatPath} = '/bin/cat'; +$Conf{GzipPath} = '/bin/gzip'; +$Conf{Bzip2Path} = '/usr/bin/bzip2'; + # # Maximum threshold for disk utilization on the __TOPDIR__ filesystem. # If the output from $Conf{DfPath} reports a percentage larger than @@ -180,6 +197,8 @@ $Conf{TrashCleanSleepSec} = 300; # # List of DHCP address ranges we search looking for PCs to backup. # This is an array of hashes for each class C address range. +# This is only needed if hosts in the conf/hosts file have the +# dhcp flag set. # # Examples: # # to specify 192.10.10.20 to 192.10.10.250 as the DHCP address pool @@ -229,7 +248,7 @@ $Conf{BackupPCUserVerify} = 1; # # Maximum number of hardlinks supported by the $TopDir file system # that BackupPC uses. Most linux or unix file systems should support -# at least 32000 hardlinks per file, or 64K in other cases. If a pool +# at least 32000 hardlinks per file, or 64000 in other cases. If a pool # file already has this number of hardlinks, a new pool file is created # so that new hardlinks can be accommodated. This limit will only # be hit if an identical file appears at least this number of times @@ -261,7 +280,7 @@ $Conf{SmbShareName} = 'C$'; $Conf{SmbShareUserName} = ''; # -# Smbclient share password. This is passed to smbclient via the PASSWD +# Smbclient share password. This is passed to smbclient via its PASSWD # environment variable. There are several ways you can tell BackupPC # the smb share password. In each case you should be very careful about # security. If you put the password here, make sure that this file is @@ -291,6 +310,14 @@ $Conf{SmbSharePasswd} = ''; # use this option instead of $Conf{TarShareName} since a new tar is # run for each entry in $Conf{TarShareName}. # +# On the other hand, if you add --one-file-system to $Conf{TarClientCmd} +# you can backup each file system separately, which makes restoring one +# bad file system easier. In this case you would list all of the mount +# points here, since you can't get the same result with +# $Conf{BackupFilesOnly}: +# +# $Conf{TarShareName} = ['/', '/var', '/data', '/boot']; +# # This setting only matters if $Conf{XferMethod} = 'tar'. # $Conf{TarShareName} = '/'; @@ -305,6 +332,18 @@ $Conf{TarShareName} = '/'; # time taken for the backup, plus the granularity of $Conf{WakeupSchedule} # will make the actual backup interval a bit longer. # +# There are two special values for $Conf{FullPeriod}: +# +# -1 Don't do any regular backups on this machine. Manually +# requested backups (via the CGI interface) will still occur. +# +# -2 Don't do any backups on this machine. Manually requested +# backups (via the CGI interface) will be ignored. +# +# These special settings are useful for a client that is no longer +# being backed up (eg: a retired machine), but you wish to keep the +# last backups available for browsing or restoring to other machines. +# $Conf{FullPeriod} = 6.97; # @@ -325,8 +364,74 @@ $Conf{IncrPeriod} = 0.97; # extra old backups will be removed. # # If filling of incremental dumps is off the oldest backup always -# has to be a full (ie: filled) dump. This might mean an extra full -# dump is kept until the second oldest (incremental) dump expires. +# has to be a full (ie: filled) dump. This might mean one or two +# extra full dumps are kept until the oldest incremental backups expire. +# +# Exponential backup expiry is also supported. This allows you to specify: +# +# - num fulls to keep at intervals of 1 * $Conf{FullPeriod}, followed by +# - num fulls to keep at intervals of 2 * $Conf{FullPeriod}, +# - num fulls to keep at intervals of 4 * $Conf{FullPeriod}, +# - num fulls to keep at intervals of 8 * $Conf{FullPeriod}, +# - num fulls to keep at intervals of 16 * $Conf{FullPeriod}, +# +# and so on. This works by deleting every other full as each expiry +# boundary is crossed. +# +# Exponential expiry is specified using an array for $Conf{FullKeepCnt}: +# +# $Conf{FullKeepCnt} = [4, 2, 3]; +# +# Entry #n specifies how many fulls to keep at an interval of +# 2^n * $Conf{FullPeriod} (ie: 1, 2, 4, 8, 16, 32, ...). +# +# The example above specifies keeping 4 of the most recent full backups +# (1 week interval) two full backups at 2 week intervals, and 3 full +# backups at 4 week intervals, eg: +# +# full 0 19 weeks old \ +# full 1 15 weeks old >--- 3 backups at 4 * $Conf{FullPeriod} +# full 2 11 weeks old / +# full 3 7 weeks old \____ 2 backups at 2 * $Conf{FullPeriod} +# full 4 5 weeks old / +# full 5 3 weeks old \ +# full 6 2 weeks old \___ 4 backups at 1 * $Conf{FullPeriod} +# full 7 1 week old / +# full 8 current / +# +# On a given week the spacing might be less than shown as each backup +# ages through each expiry period. For example, one week later, a +# new full is completed and the oldest is deleted, giving: +# +# full 0 16 weeks old \ +# full 1 12 weeks old >--- 3 backups at 4 * $Conf{FullPeriod} +# full 2 8 weeks old / +# full 3 6 weeks old \____ 2 backups at 2 * $Conf{FullPeriod} +# full 4 4 weeks old / +# full 5 3 weeks old \ +# full 6 2 weeks old \___ 4 backups at 1 * $Conf{FullPeriod} +# full 7 1 week old / +# full 8 current / +# +# You can specify 0 as a count (except in the first entry), and the +# array can be as long as you wish. For example: +# +# $Conf{FullKeepCnt} = [4, 0, 4, 0, 0, 2]; +# +# This will keep 10 full dumps, 4 most recent at 1 * $Conf{FullPeriod}, +# followed by 4 at an interval of 4 * $Conf{FullPeriod} (approx 1 month +# apart), and then 2 at an interval of 32 * $Conf{FullPeriod} (approx +# 7-8 months apart). +# +# Note that you will have to increase $Conf{FullAgeMax} if you want +# very old full backups to be kept. Full backups are removed according +# to both $Conf{FullKeepCnt} and $Conf{FullAgeMax}. +# +# Note also that these two settings are equivalent and both keep just +# the four most recent full dumps: +# +# $Conf{FullKeepCnt} = 4; +# $Conf{FullKeepCnt} = [4]; # $Conf{FullKeepCnt} = 1; @@ -336,7 +441,7 @@ $Conf{FullKeepCnt} = 1; # they are. # $Conf{FullKeepCntMin} = 1; -$Conf{FullAgeMax} = 60; +$Conf{FullAgeMax} = 90; # # Number of incremental backups to keep. Must be >= 1. @@ -396,6 +501,13 @@ $Conf{IncrFill} = 0; # $Conf{RestoreInfoKeepCnt} = 10; +# +# Number of archive logs to keep. BackupPC remembers information +# about each archive request. This number per archive client will +# be kept around before the oldest ones are pruned. +# +$Conf{ArchiveInfoKeepCnt} = 10; + # # List of directories or files to backup. If this is defined, only these # directories or files will be backed up. @@ -419,7 +531,7 @@ $Conf{RestoreInfoKeepCnt} = 10; # $Conf{BackupFilesOnly} = { # 'c' => ['/myFiles', '/important'], # these are for 'c' share # 'd' => ['/moreFiles', '/archive'], # these are for 'd' share -# } +# }; # $Conf{BackupFilesOnly} = undef; @@ -444,9 +556,16 @@ $Conf{BackupFilesOnly} = undef; # For tar, if the exclude file contains a "/" it is assumed to be anchored # at the start of the string. Since all the tar paths start with "./", # BackupPC prepends a "." if the exclude file starts with a "/". Note -# that GNU tar version >= 1.3.7 is required for the exclude option to -# work correctly. For linux or unix machines it is recommended to add -# "/proc" to $Conf{BackupFilesExclude}. +# that GNU tar version >= 1.13.7 is required for the exclude option to +# work correctly. For linux or unix machines you should add +# "/proc" to $Conf{BackupFilesExclude} unless you have specified +# --one-file-system in $Conf{TarClientCmd} or --one-file-system in +# $Conf{RsyncArgs}. Also, for tar, do not use a trailing "/" in +# the directory name: a trailing "/" causes the name to not match +# and the directory will not be excluded. +# +# Users report that for smbclient you should specify a directory +# followed by "/*", eg: "/proc/*", instead of just "/proc". # # Examples: # $Conf{BackupFilesExclude} = '/temp'; @@ -455,7 +574,7 @@ $Conf{BackupFilesOnly} = undef; # $Conf{BackupFilesExclude} = { # 'c' => ['/temp', '/winnt/tmp'], # these are for 'c' share # 'd' => ['/junk', '/dont_back_this_up'], # these are for 'd' share -# } +# }; # $Conf{BackupFilesExclude} = undef; @@ -465,8 +584,7 @@ $Conf{BackupFilesExclude} = undef; # each PC a count of consecutive good pings is maintained. Once a PC has # at least $Conf{BlackoutGoodCnt} consecutive good pings it is subject # to "blackout" and not backed up during hours and days specified by -# $Conf{BlackoutWeekDays}, $Conf{BlackoutHourBegin} and -# $Conf{BlackoutHourEnd}. +# $Conf{BlackoutPeriods}. # # To allow for periodic rebooting of a PC or other brief periods when a # PC is not on the network, a number of consecutive bad pings is allowed @@ -492,13 +610,60 @@ $Conf{BlackoutBadPingLimit} = 3; $Conf{BlackoutGoodCnt} = 7; # -# The default settings specify the blackout period from 7:00am to -# 7:30pm local time on Mon-Fri. For $Conf{BlackoutWeekDays}, -# 0 is Sunday, 1 is Monday etc. +# One or more blackout periods can be specified. If a client is +# subject to blackout then no regular (non-manual) backups will +# be started during any of these periods. hourBegin and hourEnd +# specify hours fro midnight and weekDays is a list of days of +# the week where 0 is Sunday, 1 is Monday etc. +# +# For example: +# +# $Conf{BlackoutPeriods} = [ +# { +# hourBegin => 7.0, +# hourEnd => 19.5, +# weekDays => [1, 2, 3, 4, 5], +# }, +# ]; +# +# specifies one blackout period from 7:00am to 7:30pm local time +# on Mon-Fri. +# +# The blackout period can also span midnight by setting +# hourBegin > hourEnd, eg: +# +# $Conf{BlackoutPeriods} = [ +# { +# hourBegin => 7.0, +# hourEnd => 19.5, +# weekDays => [1, 2, 3, 4, 5], +# }, +# { +# hourBegin => 23, +# hourEnd => 5, +# weekDays => [5, 6], +# }, +# ]; +# +# This specifies one blackout period from 7:00am to 7:30pm local time +# on Mon-Fri, and a second period from 11pm to 5am on Friday and +# Saturday night. +# +$Conf{BlackoutPeriods} = [ + { + hourBegin => 7.0, + hourEnd => 19.5, + weekDays => [1, 2, 3, 4, 5], + }, +]; + +# +# A backup of a share that has zero files is considered fatal. This is +# used to catch miscellaneous Xfer errors that result in no files being +# backed up. If you have shares that might be empty (and therefore an +# empty backup is valid) you should set this flag to 0. # -$Conf{BlackoutHourBegin} = 7.0; -$Conf{BlackoutHourEnd} = 19.5; -$Conf{BlackoutWeekDays} = [1, 2, 3, 4, 5]; +$Conf{BackupZeroFilesIsFatal} = 1; ########################################################################### # General per-PC configuration settings @@ -511,24 +676,33 @@ $Conf{BlackoutWeekDays} = [1, 2, 3, 4, 5]; # # The valid values are: # -# - 'smb': backup and restore via smbclient and the SMB protocol. -# Best choice for WinXX. +# - 'smb': backup and restore via smbclient and the SMB protocol. +# Easiest choice for WinXX. # -# - 'rsync': backup and restore via rsync (via rsh or ssh). -# Best choice for linux/unix. Can also work on WinXX. +# - 'rsync': backup and restore via rsync (via rsh or ssh). +# Best choice for linux/unix. Good choice also for WinXX. # -# - 'rsyncd': backup and restre via rsync daemon on the client. -# Best choice for linux/unix if you have rsyncd running on -# the client. Can also work on WinXX. +# - 'rsyncd': backup and restre via rsync daemon on the client. +# Best choice for linux/unix if you have rsyncd running on +# the client. Good choice also for WinXX. # # - 'tar': backup and restore via tar, tar over ssh, rsh or nfs. # Good choice for linux/unix. # -# A future version should support 'rsync' as a transport method for -# more efficient backup of linux/unix machines (and perhaps WinXX??). +# - 'archive': host is a special archive host. Backups are not done. +# An archive host is used to archive other host's backups +# to permanent media, such as tape, CDR or DVD. +# # $Conf{XferMethod} = 'smb'; +# +# Level of verbosity in Xfer log files. 0 means be quiet, 1 will give +# will give one line per file, 2 will also show skipped files on +# incrementals, higher values give more output. +# +$Conf{XferLogLevel} = 1; + # # Full path for smbclient. Security caution: normal users should not # allowed to write to this file or directory. @@ -545,7 +719,7 @@ $Conf{SmbClientPath} = '/usr/bin/smbclient'; # Commands to run smbclient for a full dump, incremental dump or a restore. # This setting only matters if $Conf{XferMethod} = 'smb'. # -# Several variables are substituted at run-time: +# The following variables are substituted at run-time: # # $smbClientPath same as $Conf{SmbClientPath} # $host host to backup/restore @@ -557,6 +731,10 @@ $Conf{SmbClientPath} = '/usr/bin/smbclient'; # $X_option exclude option (if $fileList is an exclude list) # $timeStampFile start time for incremental dump # +# If your smb share is read-only then direct restores will fail. +# You should set $Conf{SmbClientRestoreCmd} to undef and the +# corresponding CGI restore option will be removed. +# $Conf{SmbClientFullCmd} = '$smbClientPath \\\\$host\\$shareName' . ' $I_option -U $userName -E -N -d 1' . ' -c tarmode\\ full -Tc$X_option - $fileList'; @@ -588,8 +766,7 @@ $Conf{SmbClientRestoreCmd} = '$smbClientPath \\\\$host\\$shareName' # are sufficient to read all the files you want to backup. Also, you # will probably want to add "/proc" to $Conf{BackupFilesExclude}. # -# Several variables are substituted at run-time. The following variables -# are substituted at run-time: +# The following variables are substituted at run-time: # # $host host name # $hostIP host's IP address @@ -605,7 +782,7 @@ $Conf{SmbClientRestoreCmd} = '$smbClientPath \\\\$host\\$shareName' # # This setting only matters if $Conf{XferMethod} = 'tar'. # -$Conf{TarClientCmd} = '$sshPath -q -n -l root $host' +$Conf{TarClientCmd} = '$sshPath -q -x -n -l root $host' . ' $tarPath -c -v -f - -C $shareName+' . ' --totals'; @@ -613,6 +790,9 @@ $Conf{TarClientCmd} = '$sshPath -q -n -l root $host' # Extra tar arguments for full backups. Several variables are substituted at # run-time. See $Conf{TarClientCmd} for the list of variable substitutions. # +# If you are running tar locally (ie: without rsh or ssh) then remove the +# "+" so that the argument is no longer shell escaped. +# # This setting only matters if $Conf{XferMethod} = 'tar'. # $Conf{TarFullArgs} = '$fileList+'; @@ -639,6 +819,9 @@ $Conf{TarFullArgs} = '$fileList+'; # attribute change, meaning the file will always be included # in each new incremental dump. # +# If you are running tar locally (ie: without rsh or ssh) then remove the +# "+" so that the argument is no longer shell escaped. +# # This setting only matters if $Conf{XferMethod} = 'tar'. # $Conf{TarIncrArgs} = '--newer=$incrDate+ $fileList+'; @@ -652,7 +835,11 @@ $Conf{TarIncrArgs} = '--newer=$incrDate+ $fileList+'; # # This setting only matters if $Conf{XferMethod} = "tar". # -$Conf{TarClientRestoreCmd} = '$sshPath -q -l root $host' +# If you want to disable direct restores using tar, you should set +# $Conf{TarClientRestoreCmd} to undef and the corresponding CGI +# restore option will be removed. +# +$Conf{TarClientRestoreCmd} = '$sshPath -q -x -l root $host' . ' $tarPath -x -p --numeric-owner --same-owner' . ' -v -f - -C $shareName+'; @@ -684,7 +871,7 @@ $Conf{RsyncClientPath} = '/bin/rsync'; # # This setting only matters if $Conf{XferMethod} = 'rsync'. # -$Conf{RsyncClientCmd} = '$sshPath -l root $host $rsyncPath $argList'; +$Conf{RsyncClientCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+'; # # Full command to run rsync for restore on the client. The following @@ -701,13 +888,22 @@ $Conf{RsyncClientCmd} = '$sshPath -l root $host $rsyncPath $argList'; # # This setting only matters if $Conf{XferMethod} = 'rsync'. # -$Conf{RsyncClientRestoreCmd} = '$sshPath -l root $host $rsyncPath $argList'; +$Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+'; # # Share name to backup. For $Conf{XferMethod} = "rsync" this should -# be a directory name, eg '/' or '/home'. For $Conf{XferMethod} = "rsyncd" -# this should be the name of the module to backup (ie: the name from -# /etc/rsynd.conf). +# be a file system path, eg '/' or '/home'. +# +# For $Conf{XferMethod} = "rsyncd" this should be the name of the module +# to backup (ie: the name from /etc/rsynd.conf). +# +# This can also be a list of multiple file system paths or modules. +# For example, by adding --one-file-system to $Conf{RsyncArgs} you +# can backup each file system separately, which makes restoring one +# bad file system easier. In this case you would list all of the mount +# points: +# +# $Conf{RsyncShareName} = ['/', '/var', '/data', '/boot']; # $Conf{RsyncShareName} = '/'; @@ -767,6 +963,14 @@ $Conf{RsyncArgs} = [ '--times', '--block-size=2048', '--recursive', + + # + # If you are using a patched client rsync that supports the + # --fixed-csumseed option (see http://backuppc.sourceforge.net), + # then uncomment this to enabled rsync checksum cachcing + # + #'--fixed-csumseed', + # # Add additional arguments here # @@ -776,35 +980,102 @@ $Conf{RsyncArgs} = [ # Arguments to rsync for restore. Do not edit the first set unless you # have a thorough understanding of how File::RsyncP works. # +# If you want to disable direct restores using rsync (eg: is the module +# is read-only), you should set $Conf{RsyncRestoreArgs} to undef and +# the corresponding CGI restore option will be removed. # $Conf{RsyncRestoreArgs} = [ # # Do not edit these! # - "--numeric-ids", - "--perms", - "--owner", - "--group", - "--devices", - "--links", - "--times", - "--block-size=2048", - "--relative", - "--ignore-times", - "--recursive", + '--numeric-ids', + '--perms', + '--owner', + '--group', + '--devices', + '--links', + '--times', + '--block-size=2048', + '--relative', + '--ignore-times', + '--recursive', + + # + # If you are using a patched client rsync that supports the + # --fixed-csumseed option (see http://backuppc.sourceforge.net), + # then uncomment this to enabled rsync checksum cachcing + # + #'--fixed-csumseed', + # # Add additional arguments here # ]; # -# Amount of verbosity in Rsync Xfer log files. 0 means be quiet, -# 1 will give will give one line per file, 2 will also show skipped -# files on incrementals, higher values give more output. 10 will -# include byte dumps of all data read/written, which will make the -# log files huge. +# Archive Destination +# +# The Destination of the archive +# e.g. /tmp for file archive or /dev/nst0 for device archive +# +$Conf{ArchiveDest} = '/tmp'; + +# +# Archive Compression type +# +# The valid values are: +# +# - 'none': No Compression +# +# - 'gzip': Medium Compression. Recommended. +# +# - 'bzip2': High Compression but takes longer. +# +$Conf{ArchiveComp} = 'gzip'; + +# +# Archive Parity Files +# +# The number of Parity Files to generate. +# Uses the commandline par available from +# http://parchive.sourceforge.net +# +# Only useful for file dumps. +# +# Set to 0 to disable this feature. +# +$Conf{ArchivePar} = 0; + +# +# Archive Size Split +# +# Only for file archives. Splits the output into +# the specified size * 1,000,000. +# e.g. to split into 650,000,000 bytes, specify 650 below. +# +$Conf{ArchiveSplit} = 650; + +# +# Archive Command +# +# This is the command that is called to actually run the archive process +# for each host. The following variables are substituted at run-time: # -$Conf{RsyncLogLevel} = 1; +# $Installdir The installation directory of BackupPC +# $tarCreatePath The path to BackupPC_tarCreate +# $splitpath The path to the split program +# $parpath The path to the par program +# $host The host to archive +# $backupnumber The backup number of the host to archive +# $compression The path to the compression program +# $compext The extension assigned to the compression type +# $splitsize The number of bytes to split archives into +# $archiveloc The location to put the archive +# $parfile The number of par files to create +# +$Conf{ArchiveClientCmd} = '$Installdir/bin/BackupPC_archiveHost' + . ' $tarCreatePath $splitpath $parpath $host $backupnumber' + . ' $compression $compext $splitsize $archiveloc $parfile *'; # # Full path for ssh. Security caution: normal users should not @@ -823,16 +1094,19 @@ $Conf{NmbLookupPath} = '/usr/bin/nmblookup'; # # NmbLookup command. Given an IP address, does an nmblookup on that -# IP address. Several variables are substituted at run-time: +# IP address. The following variables are substituted at run-time: # # $nmbLookupPath path to nmblookup ($Conf{NmbLookupPath}) -# $host host name +# $host IP address +# +# This command is only used for DHCP hosts: given an IP address, this +# command should try to find its NetBios name. # $Conf{NmbLookupCmd} = '$nmbLookupPath -A $host'; # # NmbLookup command. Given a netbios name, finds that host by doing -# a NetBios multicast. Several variables are substituted at run-time: +# a NetBios lookup. Several variables are substituted at run-time: # # $nmbLookupPath path to nmblookup ($Conf{NmbLookupPath}) # $host NetBios name @@ -844,6 +1118,17 @@ $Conf{NmbLookupCmd} = '$nmbLookupPath -A $host'; # # $Conf{NmbLookupFindHostCmd} = '$nmbLookupPath -B 192.168.1.255 $host'; # +# If you use a WINS server and your machines don't respond to +# multicast NetBios requests you can use this (replace 1.2.3.4 +# with the IP address of your WINS server): +# +# $Conf{NmbLookupFindHostCmd} = '$nmbLookupPath -R -U 1.2.3.4 $host'; +# +# This is preferred over multicast since it minimizes network traffic. +# +# Experiment manually for your site to see what form of nmblookup command +# works. +# $Conf{NmbLookupFindHostCmd} = '$nmbLookupPath $host'; # @@ -868,13 +1153,36 @@ $Conf{FixedIPNetBiosNameCheck} = 0; $Conf{PingPath} = '/bin/ping'; # -# Ping command. Several variables are substituted at run-time: +# Ping command. The following variables are substituted at run-time: # # $pingPath path to ping ($Conf{PingPath}) # $host host name # +# Wade Brown reports that on solaris 2.6 and 2.7 ping -s returns the wrong +# exit status (0 even on failure). Replace with "ping $host 1", which +# gets the correct exit status but we don't get the round-trip time. +# $Conf{PingCmd} = '$pingPath -c 1 $host'; +# +# Path to init.d script and command to use that script to start the +# server from the CGI interface. The following variables are substituted +# at run-time: +# +# $sshPath path to ssh ($Conf{SshPath}) +# $serverHost same as $Conf{ServerHost} +# $serverInitdPath path to init.d script ($Conf{ServerInitdPath}) +# +# Example: +# +# $Conf{ServerInitdPath} = '/etc/init.d/backuppc'; +# $Conf{ServerInitdStartCmd} = '$sshPath -q -x -l root $serverHost' +# . ' $serverInitdPath start' +# . ' < /dev/null >& /dev/null'; +# +$Conf{ServerInitdPath} = ''; +$Conf{ServerInitdStartCmd} = ''; + # # Compression level to use on files. 0 means no compression. Compression # levels can be from 1 (least cpu time, slightly worse compression) to @@ -953,22 +1261,87 @@ $Conf{MaxOldPerPCLogFiles} = 12; # shut down and restart a database server, or to dump a database # to files for backup. Example: # -# $Conf{DumpPreUserCmd} = '$sshPath -l root $host /usr/bin/dumpMysql'; -# -# Various variable substitutions are available; see BackupPC_dump -# or BackupPC_restore for the details. +# $Conf{DumpPreUserCmd} = '$sshPath -q -x -l root $host /usr/bin/dumpMysql'; +# +# The following variable substitutions are made at run time for +# $Conf{DumpPreUserCmd} and $Conf{DumpPostUserCmd}: +# +# $type type of dump (incr or full) +# $xferOK 1 if the dump succeeded, 0 if it didn't +# $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 +# $user user name from the hosts file +# $moreUsers list of additional users from the hosts file +# $share the first share name +# $shares list of all the share names +# $XferMethod value of $Conf{XferMethod} (eg: tar, rsync, smb) +# $sshPath value of $Conf{SshPath}, +# +# The following variable substitutions are made at run time for +# $Conf{RestorePreUserCmd} and $Conf{RestorePostUserCmd}: +# +# $client client name being backed up +# $xferOK 1 if the restore succeeded, 0 if it didn't +# $host host name (could be different from client name if +# $Conf{ClientNameAlias} is set) +# $hostIP IP address of host +# $user user name from the hosts file +# $moreUsers list of additional users from the hosts file +# $share the first share name +# $XferMethod value of $Conf{XferMethod} (eg: tar, rsync, smb) +# $sshPath value of $Conf{SshPath}, +# $type set to "restore" +# $bkupSrcHost host name of the restore source +# $bkupSrcShare share name of the restore source +# $bkupSrcNum backup number of the restore source +# $pathHdrSrc common starting path of restore source +# $pathHdrDest common starting path of destination +# $fileList list of files being restored +# +# The following variable substitutions are made at run time for +# $Conf{ArchivePreUserCmd} and $Conf{ArchivePostUserCmd}: +# +# $client client name being backed up +# $xferOK 1 if the archive succeeded, 0 if it didn't +# $host Name of the archive host +# $user user name from the hosts file +# $share the first share name +# $XferMethod value of $Conf{XferMethod} (eg: tar, rsync, smb) +# $HostList list of hosts being archived +# $BackupList list of backup numbers for the hosts being archived +# $archiveloc location where the archive is sent to +# $parfile number of par files being generated +# $compression compression program being used (eg: cat, gzip, bzip2) +# $compext extension used for compression type (eg: raw, gz, bz2) +# $splitsize size of the files that the archive creates +# $sshPath value of $Conf{SshPath}, +# $type set to "archive" # $Conf{DumpPreUserCmd} = undef; $Conf{DumpPostUserCmd} = undef; $Conf{RestorePreUserCmd} = undef; $Conf{RestorePostUserCmd} = undef; +$Conf{ArchivePreUserCmd} = undef; +$Conf{ArchivePostUserCmd} = undef; # # Override the client's host name. This allows multiple clients -# to all refer to the same physical hosts. This should only be -# set in the per-PC config file. +# to all refer to the same physical host. This should only be +# set in the per-PC config file and is only used by BackupPC at +# the last moment prior to generating the command used to backup +# that machine (ie: the value of $Conf{ClientNameAlias} is invisible +# everywhere else in BackupPC). The setting can be a host name or +# IP address, eg: +# +# $Conf{ClientNameAlias} = 'realHostName'; +# $Conf{ClientNameAlias} = '192.1.1.15'; # -# Note: this setting doesn't work for DHCP hosts. +# will cause the relevant smb/tar/rsync backup/restore commands to be +# directed to realHostName, not the client name. +# +# Note: this setting doesn't work for hosts with DHCP set to 1. # $Conf{ClientNameAlias} = undef; @@ -1141,9 +1514,11 @@ $Conf{CgiURL} = undef; # # Language to use. See lib/BackupPC/Lang for the list of supported -# languages, which includes English (en) and French (fr). Currently -# this applies mainly to the CGI interface, but over time it might -# also include log files and other text output. +# languages, which include English (en), French (fr), Spanish (es), +# German (de), and Italian (it). +# +# Currently the Language setting applies to the CGI interface and email +# messages sent to users. Log files and other text are still in English. # $Conf{Language} = 'en'; @@ -1179,33 +1554,25 @@ $Conf{CgiDateFormatMMDD} = 1; # # If set, the complete list of hosts appears in the left navigation -# bar for administrators. Otherwise, just the hosts for which the -# user is listed in the host file (as either the user or in moreUsers) +# bar pull-down for administrators. Otherwise, just the hosts for which +# the user is listed in the host file (as either the user or in moreUsers) # are displayed. # -$Conf{CgiNavBarAdminAllHosts} = 0; +$Conf{CgiNavBarAdminAllHosts} = 1; # -# Header font and size for CGI interface +# Hilight colors based on status that are used in the PC summary page. # -$Conf{CgiHeaderFontType} = 'arial'; -$Conf{CgiHeaderFontSize} = '3'; +$Conf{CgiStatusHilightColor} = { + Reason_backup_failed => '#ffcccc', + Reason_backup_done => '#ccffcc', + Reason_no_ping => '#ffff99', + Reason_backup_canceled_by_user => '#ff9900', + Status_backup_in_progress => '#66cc99', +}; # -# Color scheme for CGI interface. Default values give a very light blue -# for the background navigation color, green for the header background, -# and white for the body background. (You call tell I should stick to -# programming and not graphical design.) -# -$Conf{CgiNavBarBgColor} = '#ddeeee'; -$Conf{CgiHeaderBgColor} = '#99cc33'; -$Conf{CgiBodyBgColor} = '#ffffff'; - -# -# Additional CGI header text. For example, if you wanted each CGI page -# to auto refresh every 900 seconds, you could add this text: -# -# +# Additional CGI header text. # $Conf{CgiHeaders} = ''; @@ -1239,3 +1606,10 @@ $Conf{CgiExt2ContentType} = { }; # $Conf{CgiImageDirURL} = '/BackupPC'; # $Conf{CgiImageDirURL} = ''; + +# +# CSS stylesheet for the CGI interface. It is stored in the +# $Conf{CgiImageDir} directory and accessed via the +# $Conf{CgiImageDirURL} URL. +# +$Conf{CgiCSSFile} = 'BackupPC_stnd.css';