X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=conf%2Fconfig.pl;h=0f73ec69f67d8a8879964f8913fdeefd68d21de8;hp=1c0e20d0d0dbf44ec2574edfafb8a6a707df8f41;hb=9175f9157f0d54b50ebf11d2036c20f50ffc6d9d;hpb=8dd0835329cae290ef49a6bc4ab1686d3ddded52 diff --git a/conf/config.pl b/conf/config.pl index 1c0e20d..0f73ec6 100644 --- a/conf/config.pl +++ b/conf/config.pl @@ -29,7 +29,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2001 Craig Barratt +# Copyright (C) 2001-2003 Craig Barratt # # See http://backuppc.sourceforge.net. # @@ -152,6 +152,14 @@ $Conf{MaxOldLogFiles} = 14; # $Conf{DfPath} = '/bin/df'; +# +# Command to run df. Several variables are substituted at run-time: +# +# $dfPath path to df ($Conf{DfPath}) +# $topDir top-level BackupPC data directory +# +$Conf{DfCmd} = '$dfPath $topDir'; + # # Maximum threshold for disk utilization on the __TOPDIR__ filesystem. # If the output from $Conf{DfPath} reports a percentage larger than @@ -218,6 +226,17 @@ $Conf{InstallDir} = ''; # $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 +# 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 +# across all the backups. +# +$Conf{HardLinkMax} = 31999; + ########################################################################### # What to backup and when to do it # (can be overridden in the per-PC config.pl) @@ -492,10 +511,18 @@ $Conf{BlackoutWeekDays} = [1, 2, 3, 4, 5]; # # The valid values are: # -# - 'smb': use smbclient and the SMB protocol. Only choice for WinXX. +# - 'smb': backup and restore via smbclient and the SMB protocol. +# Best choice for WinXX. # -# - 'tar': use tar, tar over ssh, rsh or nfs. Best choice for -# linux/unix. +# - 'rsync': backup and restore via rsync (via rsh or ssh). +# Best choice for linux/unix. 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. Can also work on 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??). @@ -515,17 +542,32 @@ $Conf{XferMethod} = 'smb'; $Conf{SmbClientPath} = '/usr/bin/smbclient'; # -# Additional optional arguments to smbclient. +# Commands to run smbclient for a full dump, incremental dump or a restore. +# This setting only matters if $Conf{XferMethod} = 'smb'. # -# Some users have reported that the -b option can be used to improve -# performance of smbclient. The default value is 4096, and if you -# find smbclient has low throughput you might try a value of 2048, eg: +# Several variables are substituted at run-time: # -# $Conf{SmbClientArgs} = '-b 2048'; +# $smbClientPath same as $Conf{SmbClientPath} +# $host host to backup/restore +# $hostIP host IP address +# $shareName share name +# $userName user name +# $fileList list of files to backup (based on exclude/include) +# $I_option optional -I option to smbclient +# $X_option exclude option (if $fileList is an exclude list) +# $timeStampFile start time for incremental dump # -# This setting only matters if $Conf{XferMethod} = 'smb'. -# -$Conf{SmbClientArgs} = ''; +$Conf{SmbClientFullCmd} = '$smbClientPath \\\\$host\\$shareName' + . ' $I_option -U $userName -E -N -d 1' + . ' -c tarmode\\ full -Tc$X_option - $fileList'; + +$Conf{SmbClientIncrCmd} = '$smbClientPath \\\\$host\\$shareName' + . ' $I_option -U $userName -E -N -d 1' + . ' -c tarmode\\ full -TcN$X_option $timeStampFile - $fileList'; + +$Conf{SmbClientRestoreCmd} = '$smbClientPath \\\\$host\\$shareName' + . ' $I_option -U $userName -E -N -d 1' + . ' -c tarmode\\ full -Tx -'; # # Full command to run tar on the client. GNU tar is required. You will @@ -622,6 +664,148 @@ $Conf{TarClientRestoreCmd} = '$sshPath -q -l root $host' # $Conf{TarClientPath} = '/bin/tar'; +# +# Path to rsync executable on the client +# +$Conf{RsyncClientPath} = '/bin/rsync'; + +# +# Full command to run rsync on the client machine. The following variables +# are substituted at run-time: +# +# $host host name being backed up +# $hostIP host's IP address +# $shareName share name to backup (ie: top-level directory path) +# $rsyncPath same as $Conf{RsyncClientPath} +# $sshPath same as $Conf{SshPath} +# $argList argument list, built from $Conf{RsyncArgs}, +# $shareName, $Conf{BackupFilesExclude} and +# $Conf{BackupFilesOnly} +# +# This setting only matters if $Conf{XferMethod} = 'rsync'. +# +$Conf{RsyncClientCmd} = '$sshPath -l root $host $rsyncPath $argList'; + +# +# Full command to run rsync for restore on the client. The following +# variables are substituted at run-time: +# +# $host host name being backed up +# $hostIP host's IP address +# $shareName share name to backup (ie: top-level directory path) +# $rsyncPath same as $Conf{RsyncClientPath} +# $sshPath same as $Conf{SshPath} +# $argList argument list, built from $Conf{RsyncArgs}, +# $shareName, $Conf{BackupFilesExclude} and +# $Conf{BackupFilesOnly} +# +# This setting only matters if $Conf{XferMethod} = 'rsync'. +# +$Conf{RsyncClientRestoreCmd} = '$sshPath -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). +# +$Conf{RsyncShareName} = '/'; + +# +# Rsync daemon port on the client, for $Conf{XferMethod} = "rsyncd". +# +$Conf{RsyncdClientPort} = 873; + +# +# Rsync daemon user name on client, for $Conf{XferMethod} = "rsyncd". +# The user name and password are stored on the client in whatever file +# the "secrets file" parameter in rsyncd.conf points to +# (eg: /etc/rsyncd.secrets). +# +$Conf{RsyncdUserName} = ''; + +# +# Rsync daemon user name on client, for $Conf{XferMethod} = "rsyncd". +# The user name and password are stored on the client in whatever file +# the "secrets file" parameter in rsyncd.conf points to +# (eg: /etc/rsyncd.secrets). +# +$Conf{RsyncdPasswd} = ''; + +# +# Whether authentication is mandatory when connecting to the client's +# rsyncd. By default this is on, ensuring that BackupPC will refuse to +# connect to an rsyncd on the client that is not password protected. +# Turn off at your own risk. +# +$Conf{RsyncdAuthRequired} = 1; + +# +# 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! + # + '--numeric-ids', + '--perms', + '--owner', + '--group', + '--devices', + '--links', + '--times', + '--block-size=2048', + '--recursive', + # + # Add additional arguments here + # +]; + +# +# Arguments to rsync for restore. Do not edit the first set unless you +# have a thorough understanding of how File::RsyncP works. +# +# +$Conf{RsyncRestoreArgs} = [ + # + # Do not edit these! + # + "--numeric-ids", + "--perms", + "--owner", + "--group", + "--devices", + "--links", + "--times", + "--block-size=2048", + "--relative", + "--ignore-times", + "--recursive", + # + # 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. +# +$Conf{RsyncLogLevel} = 1; + # # Full path for ssh. Security caution: normal users should not # allowed to write to this file or directory. @@ -637,6 +821,31 @@ $Conf{SshPath} = '/usr/bin/ssh'; # $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: +# +# $nmbLookupPath path to nmblookup ($Conf{NmbLookupPath}) +# $host host 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: +# +# $nmbLookupPath path to nmblookup ($Conf{NmbLookupPath}) +# $host NetBios name +# +# In some cases you might need to change the broadcast address, for +# example if nmblookup uses 192.168.255.255 by default and you find +# that doesn't work, try 192.168.1.255 (or your equivalent class C +# address) using the -B option: +# +# $Conf{NmbLookupFindHostCmd} = '$nmbLookupPath -B 192.168.1.255 $host'; +# +$Conf{NmbLookupFindHostCmd} = '$nmbLookupPath $host'; + # # For fixed IP address hosts, BackupPC_dump can also verify the netbios # name to ensure it matches the host name. An error is generated if @@ -659,9 +868,12 @@ $Conf{FixedIPNetBiosNameCheck} = 0; $Conf{PingPath} = '/bin/ping'; # -# Options for the ping command. +# Ping command. Several variables are substituted at run-time: # -$Conf{PingArgs} = '-c 1 $host'; +# $pingPath path to ping ($Conf{PingPath}) +# $host host name +# +$Conf{PingCmd} = '$pingPath -c 1 $host'; # # Compression level to use on files. 0 means no compression. Compression @@ -719,7 +931,7 @@ $Conf{PingMaxMsec} = 20; # Despite the name, this parameter sets the timeout for all transport # methods (tar, smb etc). # -$Conf{SmbClientTimeout} = 7200; +$Conf{ClientTimeout} = 7200; # # Maximum number of log files we keep around in each PC's directory @@ -734,6 +946,38 @@ $Conf{SmbClientTimeout} = 7200; # $Conf{MaxOldPerPCLogFiles} = 12; +# +# Optional commands to run before and after dumps and restores. +# Stdout from these commands will be written to the Xfer (or Restore) +# log file. One example of using these commands would be to +# 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} = undef; +$Conf{DumpPostUserCmd} = undef; +$Conf{RestorePreUserCmd} = undef; +$Conf{RestorePostUserCmd} = 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. +# +# Note: this setting doesn't work for DHCP hosts. +# +$Conf{ClientNameAlias} = undef; + +# +# Advanced option for asking BackupPC to load additional perl modules. +# Can be a list (array ref) of module names to load at startup. +# +$Conf{PerlModuleLoad} = undef; + ########################################################################### # Email reminders, status and messages # (can be overridden in the per-PC config.pl) @@ -770,38 +1014,36 @@ $Conf{EMailFromUserName} = ''; $Conf{EMailAdminUserName} = ''; # -# This message is sent to a user if their PC has never been backed up. -# If your mailer needs a fully-qualified To name, then change "$user" -# to "$user@mydomain.com" in the template, eg: +# Destination domain name for email sent to users. By default +# this is empty, meaning email is sent to plain, unqualified +# addresses. Otherwise, set it to the destintation domain, eg: # -# To: $user@mydomain.com +# $Cong{EMailUserDestDomain} = '@mydomain.com'; # -$Conf{EMailNoBackupEverMesg} = <<'EOF'; -To: $user -cc: -Subject: $subj - -Dear $userName, - -Your PC ($host) has never been successfully backed up by our -PC backup software. PC backups should occur automatically -when your PC is connected to the network. You should contact -computer support if: - - - Your PC has been regularly connected to the network, meaning - there is some configuration or setup problem preventing - backups from occurring. - - - You don't want your PC backed up and you want these email - messages to stop. - -Otherwise, please make sure your PC is connected to the network -next time you are in the office. +# With this setting user email will be set to 'user@mydomain.com'. +# +$Conf{EMailUserDestDomain} = ''; -Regards, -BackupPC Genie -http://backuppc.sourceforge.net -EOF +# +# This subject and message is sent to a user if their PC has never been +# backed up. +# +# These values are language-dependent. The default versions can be +# found in the language file (eg: lib/BackupPC/Lang/en.pm). If you +# need to change the message, copy it here and edit it, eg: +# +# $Conf{EMailNoBackupEverMesg} = <<'EOF'; +# To: $user$domain +# cc: +# Subject: $subj +# +# Dear $userName, +# +# This is a site-specific email message. +# EOF +# +$Conf{EMailNoBackupEverSubj} = undef; +$Conf{EMailNoBackupEverMesg} = undef; # # How old the most recent backup has to be before notifying user. @@ -811,40 +1053,25 @@ EOF $Conf{EMailNotifyOldBackupDays} = 7.0; # -# This message is sent to a user if their PC has not recently been -# backed up (ie: more than $Conf{EMailNotifyOldBackupDays} days ago). +# This subject and message is sent to a user if their PC has not recently +# been backed up (ie: more than $Conf{EMailNotifyOldBackupDays} days ago). # -# If your mailer needs a fully-qualified To name, then change "$user" -# to "$user@mydomain.com" in the template, eg: +# These values are language-dependent. The default versions can be +# found in the language file (eg: lib/BackupPC/Lang/en.pm). If you +# need to change the message, copy it here and edit it, eg: # -# To: $user@mydomain.com +# $Conf{EMailNoBackupRecentMesg} = <<'EOF'; +# To: $user$domain +# cc: +# Subject: $subj +# +# Dear $userName, +# +# This is a site-specific email message. +# EOF # -$Conf{EMailNoBackupRecentMesg} = <<'EOF'; -To: $user -cc: -Subject: $subj - -Dear $userName, - -Your PC ($host) has not been successfully backed up for $days days. -Your PC has been correctly backed up $numBackups times from $firstTime to $days days -ago. PC backups should occur automatically when your PC is connected -to the network. - -If your PC has been connected for more than a few hours to the -network during the last $days days you should contact IS to find -out why backups are not working. - -Otherwise, if you are out of the office, there's not much you can -do, other than manually copying especially critical files to other -media. You should be aware that any files you have created or -changed in the last $days days (including all new email and -attachments) cannot be restored if your PC disk crashes. - -Regards, -BackupPC Genie -http://backuppc.sourceforge.net -EOF +$Conf{EMailNoBackupRecentSubj} = undef; +$Conf{EMailNoBackupRecentMesg} = undef; # # How old the most recent backup of Outlook files has to be before @@ -853,43 +1080,26 @@ EOF $Conf{EMailNotifyOldOutlookDays} = 5.0; # -# This message is sent to a user if their Outlook files have not -# recently been backed up (ie: more than $Conf{EMailNotifyOldOutlookDays} +# This subject and message is sent to a user if their Outlook files have +# not recently been backed up (ie: more than $Conf{EMailNotifyOldOutlookDays} # days ago). # -# If your mailer needs a fully-qualified To name, then change "$user" -# to "$user@mydomain.com" in the template, eg: +# These values are language-dependent. The default versions can be +# found in the language file (eg: lib/BackupPC/Lang/en.pm). If you +# need to change the message, copy it here and edit it, eg: # -# To: $user@mydomain.com +# $Conf{EMailOutlookBackupMesg} = <<'EOF'; +# To: $user$domain +# cc: +# Subject: $subj +# +# Dear $userName, +# +# This is a site-specific email message. +# EOF # -$Conf{EMailOutlookBackupMesg} = <<'EOF'; -To: $user -cc: -Subject: $subj - -Dear $userName, - -The Outlook files on your PC have $howLong. -These files contain all your email, attachments, contact and calendar -information. Your PC has been correctly backed up $numBackups times from -$firstTime to $lastTime days ago. However, Outlook locks all its files when -it is running, preventing these files from being backed up. - -It is recommended you backup the Outlook files when you are connected -to the network by exiting Outlook and all other applications, and, -using just your browser, go to this link: - - http://myHost/cgi-bin/BackupPC_Admin?host=$host - -Select "Start Incr Backup" twice to start a new incremental backup. -You can select "Return to $host page" and then hit "reload" to check -the status of the backup. It should take just a few minutes to -complete. - -Regards, -BackupPC Genie -http://backuppc.sourceforge.net -EOF +$Conf{EMailOutlookBackupSubj} = undef; +$Conf{EMailOutlookBackupMesg} = undef; ########################################################################### # CGI user interface configuration settings @@ -924,6 +1134,11 @@ EOF $Conf{CgiAdminUserGroup} = ''; $Conf{CgiAdminUsers} = ''; +# +# URL of the BackupPC_Admin CGI script. Used for email messages. +# +$Conf{CgiURL} = undef; + # # Language to use. See lib/BackupPC/Lang for the list of supported # languages, which includes English (en) and French (fr). Currently @@ -978,11 +1193,13 @@ $Conf{CgiHeaderFontSize} = '3'; # # Color scheme for CGI interface. Default values give a very light blue -# for the background navigation color and green for the header background. -# (You call tell I'm a better programmer than graphical designer.) +# 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 @@ -1002,6 +1219,18 @@ $Conf{CgiHeaders} = ''; # $Conf{CgiImageDir} = ''; +# +# Additional mappings of file name extenions to Content-Type for +# individual file restore. See $Ext2ContentType in BackupPC_Admin +# for the default setting. You can add additional settings here, +# or override any default settings. Example: +# +# $Conf{CgiExt2ContentType} = { +# 'pl' => 'text/plain', +# }; +# +$Conf{CgiExt2ContentType} = { }; + # # URL (without the leading http://host) for BackupPC's image directory. # The CGI script uses this value to serve up image files.