X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=conf%2Fconfig.pl;h=6d8125544b26574e6ceb372d222d62ad6378b968;hp=313ef51b2019ab27b31680818e323d0660f2c3c2;hb=bd5c45421b5719f1f2419ddab7df55567b0ce0fc;hpb=e9453b7611be63303572ae443d5fb56b73364678 diff --git a/conf/config.pl b/conf/config.pl index 313ef51..6d81255 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 @@ -492,10 +500,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. +# +# - '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': use tar, tar over ssh, rsh or nfs. Best choice for -# linux/unix. +# - '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 +531,32 @@ $Conf{XferMethod} = 'smb'; $Conf{SmbClientPath} = '/usr/bin/smbclient'; # -# Additional optional arguments to smbclient. -# -# 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: +# Commands to run smbclient for a full dump, incremental dump or a restore. +# This setting only matters if $Conf{XferMethod} = 'smb'. # -# $Conf{SmbClientArgs} = '-b 2048'; +# Several variables are substituted at run-time: # -# This setting only matters if $Conf{XferMethod} = 'smb'. +# $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 # -$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 @@ -628,14 +659,38 @@ $Conf{TarClientPath} = '/bin/tar'; $Conf{RsyncClientPath} = '/bin/rsync'; # -# Full command to run rsync on the client machine +# Full command to run rsync on the client machine. The following variables +# are substituted at run-time: # -$Conf{RsyncClientCmd} = '$sshPath -q -l root $host $rsyncPath $argList'; +# $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. +# 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} # -## $Conf{RsyncClientRestoreCmd} = ''; +# 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 @@ -651,9 +706,42 @@ $Conf{RsyncShareName} = '/'; $Conf{RsyncdClientPort} = 873; # -# Key arguments to rsync server. Do not edit these unless you -# have a very thorough understanding of how File::RsyncP works. -# Really, do not edit these. See $Conf{RsyncClientArgs} instead. +# 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} = [ # @@ -665,32 +753,48 @@ $Conf{RsyncArgs} = [ '--group', '--devices', '--links', + '--times', '--block-size=2048', - '--relative', '--recursive', + # + # Add additional arguments here + # ]; # -# Additional Rsync arguments that are given to the remote (client) -# rsync. Unfortunately you need a pretty good understanding of -# File::RsyncP to know which arguments will work; not all will. -# Examples that should work are --exclude/--include, eg: +# Arguments to rsync for restore. Do not edit the first set unless you +# have a thorough understanding of how File::RsyncP works. # -# $Conf{RsyncClientArgs} = [ -# '--exclude', '*.tmp', -# ]; # -$Conf{RsyncClientArgs} = [ +$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 some general information, 2 will give one line per file, -# 3 will include skipped files, higher values give more output. -# 10 will include byte dumps of all data read/written, which will -# make the log files huge. +# 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} = 2; +$Conf{RsyncLogLevel} = 1; + # # Full path for ssh. Security caution: normal users should not # allowed to write to this file or directory. @@ -706,6 +810,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 @@ -728,9 +857,12 @@ $Conf{FixedIPNetBiosNameCheck} = 0; $Conf{PingPath} = '/bin/ping'; # -# Options for the ping command. +# Ping command. Several variables are substituted at run-time: +# +# $pingPath path to ping ($Conf{PingPath}) +# $host host name # -$Conf{PingArgs} = '-c 1 $host'; +$Conf{PingCmd} = '$pingPath -c 1 $host'; # # Compression level to use on files. 0 means no compression. Compression @@ -788,7 +920,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 @@ -803,6 +935,36 @@ $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. +# +$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) @@ -839,38 +1001,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. @@ -880,40 +1040,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 @@ -922,43 +1067,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 @@ -993,6 +1121,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