diff --git a/Metadata/groups.xml b/Metadata/groups.xml index cd10e2d..93c5c33 100644 --- a/Metadata/groups.xml +++ b/Metadata/groups.xml @@ -35,23 +35,23 @@ - + - + - - - + + + - + @@ -395,7 +395,7 @@ - + @@ -407,7 +407,7 @@ - + @@ -553,6 +553,11 @@ + + + + + diff --git a/Python/etc/backuppc/config.pl b/Python/etc/backuppc/config.pl index 5fa6614..bb9602c 100644 --- a/Python/etc/backuppc/config.pl +++ b/Python/etc/backuppc/config.pl @@ -149,6 +149,12 @@ info["perms"] = 0600 @$Conf{MaxPendingCmds} = 10; @ @# +@# 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. @# @# Each night, at the first wakeup listed in $Conf{WakeupSchedule}, @@ -298,9 +304,17 @@ info["perms"] = 0600 @# 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} = '/var/lib/backuppc'; @$Conf{ConfDir} = '/etc/backuppc'; -@$Conf{LogDir} = ''; +@$Conf{LogDir} = '/var/lib/backuppc/log'; @$Conf{InstallDir} = '/usr/share/backuppc'; @$Conf{CgiDir} = '/usr/share/backuppc/cgi-bin'; @ @@ -713,6 +727,12 @@ info["perms"] = 0600 @# 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. @# @@ -902,6 +922,10 @@ info["perms"] = 0600 @# @$Conf{ClientCharsetLegacy} = 'iso-8859-1'; @ +@########################################################################### +@# Samba Configuration +@# (can be overwritten in the per-PC log file) +@########################################################################### @# @# Name of the host share that is backed up when using SMB. This can be a @# string or an array of strings if there are multiple shares per host. @@ -1001,6 +1025,10 @@ info["perms"] = 0600 @ . ' $I_option -U $userName -E -d 1' @ . ' -c tarmode\\ full -Tx -'; @ +@########################################################################### +@# Tar Configuration +@# (can be overwritten in the per-PC log file) +@########################################################################### @# @# Which host directories to backup when using tar transport. This can be a @# string or an array of strings if there are multiple directories to @@ -1144,6 +1172,10 @@ info["perms"] = 0600 @# @$Conf{TarClientPath} = '/bin/tar'; @ +@########################################################################### +@# Rsync/Rsyncd Configuration +@# (can be overwritten in the per-PC log file) +@########################################################################### @# @# Path to rsync executable on the client @# @@ -1262,16 +1294,6 @@ print "$Conf{RsyncdPasswd} = '%s';" % secrets.backuppc_RsyncdPasswd @# 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! @@ -1295,13 +1317,39 @@ print "$Conf{RsyncdPasswd} = '%s';" % secrets.backuppc_RsyncdPasswd @ # to enable checksum caching. @ # @ '--checksum-seed=32761', -@ -@ # -@ # Add additional arguments here -@ # -@ '--one-file-system', @]; @ +@# 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} = ['--one-file-system',]; +@ @# @# Arguments to rsync for restore. Do not edit the first set unless you @# have a thorough understanding of how File::RsyncP works. @@ -1310,6 +1358,18 @@ print "$Conf{RsyncdPasswd} = '%s';" % secrets.backuppc_RsyncdPasswd @# 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! @@ -1342,68 +1402,102 @@ print "$Conf{RsyncdPasswd} = '%s';" % secrets.backuppc_RsyncdPasswd @ '--one-file-system', @]; @ +@########################################################################### +@# FTP 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'. +@# 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. @# -@# This can also be a list of multiple file system paths or modules. -@# (Can it??) +@# 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. @# -@# $Conf{BackupPCdShareName} = ['/', '/var', '/data', '/boot']; +@# 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{BackupPCdShareName} = '/'; +@# $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'. +@# +@$Conf{FtpShareName} = ''; +@ +@# FTP user name. This is used to log into the server. +@# +@# This setting is used only if $Conf{XferMethod} = 'ftp'. +@$Conf{FtpUserName} = ''; @ @# -@# Path to backuppcd executable on the server +@# FTP user password. This is used to log into the server. @# -@$Conf{BackupPCdPath} = ''; +@# This setting is used only if $Conf{XferMethod} = 'ftp'. +@# +@$Conf{FtpPasswd} = ''; @ @# -@# 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) +@# 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. @# -@# $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 is used only if $Conf{XferMethod} = 'ftp'. @# -@# 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'; +@$Conf{FtpPassive} = 1; @ @# -@# 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) +@# Transfer block size. This sets the size of the amounts of data in +@# each frame. While undefined, this value takes the default value. @# -@# $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 is used only if $Conf{XferMethod} = 'ftp'. @# -@# 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'; +@$Conf{FtpBlockSize} = 10240; @ +@# +@# The port of the ftp server. If undefined, 21 is used. +@# +@# This setting is used only if $Conf{XferMethod} = 'ftp'. +@# +@$Conf{FtpPort} = 21; @ @# +@# Connection timeout for FTP. When undefined, the default is 120 seconds. +@# +@# This setting is used only if $Conf{XferMethod} = 'ftp'. +@# +@$Conf{FtpTimeout} = 120; +@ +@# Behaviour when BackupPC encounters symlinks on the FTP share. +@# +@# Symlinks cannot be restored via FTP, so the desired behaviour will +@# be different depending on the setup of the share. The default for +@# this behavor is 1. Directory shares with more complicated directory +@# structures should consider other protocols. +@# +@$Conf{FtpFollowSymlinks} = 0; +@ +@########################################################################### +@# Archive Configuration +@# (can be overwritten in the per-PC log file) +@########################################################################### +@# +@# @# Archive Destination @# @# The Destination of the archive @@ -1818,7 +1912,7 @@ print "$Conf{RsyncdPasswd} = '%s';" % secrets.backuppc_RsyncdPasswd @# @# With this setting user email will be set to 'user@mydomain.com'. @# -@$Conf{EMailUserDestDomain} = '@crans.org'; +@$Conf{EMailUserDestDomain} = 'backuppc@crans.org'; @ @# @# This subject and message is sent to a user if their PC has never been @@ -1898,13 +1992,12 @@ print "$Conf{RsyncdPasswd} = '%s';" % secrets.backuppc_RsyncdPasswd @$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} = < 1, @ RsyncCsumCacheVerifyProb => 1, @ RsyncArgs => 1, +@ RsyncArgsExtra => 1, @ RsyncRestoreArgs => 1, @ RsyncClientCmd => 0, @ RsyncClientRestoreCmd => 0, @ RsyncClientPath => 0, +@ FtpShareName => 1, +@ FtpUserName => 1, +@ FtpPasswd => 1, +@ FtpBlockSize => 1, +@ FtpPort => 1, +@ FtpTimeout => 1, +@ FtpFollowSymlinks => 1, +@ FtpRestoreEnabled => 1, @ ArchiveDest => 1, @ ArchiveComp => 1, @ ArchivePar => 1,