* The CSS definition has been removed from the config.pl file and
[BackupPC.git] / doc-src / BackupPC.pod
index 122ee2a..96e6c1f 100644 (file)
@@ -41,7 +41,7 @@ cancel backups and browse and restore files from backups.
 =item *
 
 The http/cgi user interface has internationalization (i18n) support,
-currently providing English, French, German and Spanish.
+currently providing English, French, German, Spanish and Italian.
 
 =item *
 
@@ -96,10 +96,13 @@ BackupPC is Open Source software hosted by SourceForge.
 
 =item Full Backup
 
-A full backup is a complete backup of a share. BackupPC can be configured to
-do a full backup at a regular interval (often weekly). BackupPC can also
-be configured to keep a certain number of full backups, and to keep
-a smaller number of very old full backups.
+A full backup is a complete backup of a share. BackupPC can be
+configured to do a full backup at a regular interval (typically
+weekly).  BackupPC can be configured to keep a certain number
+of full backups.  Exponential expiry is also supported, allowing
+full backups with various vintages to be kept (for example, a
+settable number of most recent weekly fulls, plus a settable
+number of older fulls that are 2, 4, 8, or 16 weeks apart).
 
 =item Incremental Backup
 
@@ -121,6 +124,23 @@ BackupPC's CGI interface "fills-in" incremental backups based on the
 last full backup, giving every backup a "full" appearance.  This makes
 browsing and restoring backups easier.
 
+=item Partial Backup
+
+When a full backup fails or is canceled, and some files have already
+been backed up, BackupPC keeps a partial backup containing just the
+files that were backed up successfully.  The partial backup is removed
+when the next successful backup completes, or if another full backup
+fails resulting in a newer partial backup.  A failed full backup
+that has not backed up any files, or any failed incremental backup,
+is removed; no partial backup is saved in these cases.
+
+The partial backup may be browsed or used to restore files just like
+a successful full or incremental backup.
+
+With the rsync transfer method the partial backup is used to resume
+the next full backup, avoiding the need to retransfer the file data
+already in the partial backup.
+
 =item Identical Files
 
 BackupPC pools identical files using hardlinks.  By "identical
@@ -141,9 +161,7 @@ full support for special file types and unix attributes in v1.4.0
 likely means an exact image of a linux/unix file system can be made.
 
 BackupPC saves backups onto disk. Because of pooling you can relatively
-economically keep several weeks of old backups. But BackupPC does not
-provide permanent storage to tape. Other Open Source applications can do
-this by backing up BackupPC's pool directories to tape.
+economically keep several weeks of old backups.
 
 At some sites the disk-based backup will be adequate, without a
 secondary tape backup. This system is robust to any single failure: if a
@@ -153,8 +171,8 @@ fresh file system, and create new backups from the clients. The chance
 of the server disk failing can be made very small by spending more money
 on increasingly better RAID systems.
 
-At other sites a secondary tape backup will be required. This tape
-backup can be done perhaps weekly from the BackupPC pool file system.
+At other sites a secondary tape backup or cd/dvd will be required. This
+backup can be done perhaps weekly using the archive function of BackupPC.
 
 =back
 
@@ -230,7 +248,9 @@ BackupPC server data to tape.
 Various programs and scripts use rsync to provide hardlinked backups.
 See, for example, Mike Rubel's site (L<http://www.mikerubel.org>),
 J. W. Schultz's dirvish (L<http://www.pegasys.ws/dirvish>),
+Ben Escoto's rdiff-backup (L<http://rdiff-backup.stanford.edu>),
 and John Bowman's rlbackup (L<http://www.math.ualberta.ca/imaging/rlbackup>).
+
 BackupPC provides many additional features, such as compressed storage,
 hardlinking any matching files (rather than just files with the same name),
 and storing special files without root privileges.  But these other scripts
@@ -251,12 +271,6 @@ Adding hardlink support to rsync.
 
 =item *
 
-Adding block and file checksum caching to rsync.  This will significantly
-increase performance since the server doesn't have to read each file
-(twice) to compute the block and file checksums.
-
-=item *
-
 Adding a trip wire feature for notification when files below certain
 directories change.  For example, if you are backing up a DMZ machine,
 you could request that you get sent email if any files below /bin,
@@ -278,29 +292,6 @@ be specified (eg: MySQL, ascii text etc).
 
 =item *
 
-Disconnect the notion of a physical host and a backup client.
-Currently there is a one-to-one match between physical hosts
-and backup clients.  Instead, the current notion of a host
-should be replaced by a backup client.  Each backup client
-corresponds to a physical host.  A physical host could have
-several backup clients.  This is useful for backing up
-different types of data, or backing up different portions
-of a machine with different frequencies or settings.
-
-(Note: this has already been implemented in 2.0.0.)
-
-=item *
-
-Resuming incomplete full backups.  Useful if a machine
-(eg: laptop) is disconnected from the network during a backup,
-or if the user manually stops a backup.  This would be supported
-initially for rsync.  The partial dump would be kept, and be
-browsable.  When the next dump starts, an incremental against
-the partial dump would be done to make sure it was up to date,
-and then the rest of the full dump would be done.
-
-=item *
-
 Replacing smbclient with the perl module FileSys::SmbClient.  This
 gives much more direct control of the smb transfer, allowing
 incrementals to depend on any attribute change (eg: exist, mtime,
@@ -328,14 +319,6 @@ the last, giving a continuous chain of differential dumps.
 
 =item *
 
-Add a backup browsing feature that shows backup history by file.
-So rather than a single directory view, it would be a table showing
-the files (down) and the backups (across).  The internal hardlinks
-encode which files are identical across backups.  You could immediately
-see which files changed on which backups.
-
-=item *
-
 More speculative: Storing binary file deltas (in fact, reverse deltas)
 for files that have the same name as a previous backup, but that aren't
 already in the pool. This will save storage for things like mailbox
@@ -446,12 +429,13 @@ As of June 2003 the latest version is 1.13.25.
 =item *
 
 If you are using rsync to backup linux/unix machines you should have
-version 2.5.5 on each client machine.  See L<http://rsync.samba.org>.
-Use "rsync --version" to check your version.
+version 2.5.5 or higher on each client machine.  See
+L<http://rsync.samba.org>. Use "rsync --version" to check your
+version.
 
 For BackupPC to use Rsync you will also need to install the perl
 File::RsyncP module, which is available from
-L<http://perlrsync.sourceforge.net>.  Version 0.41 or later is required.
+L<http://perlrsync.sourceforge.net>.  Version 0.44 or later is required.
 
 =item *
 
@@ -503,6 +487,15 @@ more troublesome, since it keeps this file locked all the time, so it
 cannot be read by smbclient whenever Outlook is running.  See the
 L<Limitations|limitations> section for more discussion of this problem.
 
+In addition to total disk space, you shold make sure you have
+plenty of inodes on your BackupPC data partition. Some users have
+reported running out of inodes on their BackupPC data partition.
+So even if you have plenty of disk space, BackupPC will report
+failures when the inodes are exhausted.  This is a particular
+problem with ext2/ext3 file systems that have a fixed number of
+inodes when the file system is built.  Use "df -i" to see your
+inode usage.
+
 =head2 Step 1: Getting BackupPC
 
 Download the latest version from L<http://backuppc.sourceforge.net>.
@@ -531,7 +524,7 @@ You can run "perldoc Archive::Zip" to see if this module is installed.
 To use rsync and rsyncd with BackupPC you will need to install File::RsyncP.
 You can run "perldoc File::RsyncP" to see if this module is installed.
 File::RsyncP is available from L<http://perlrsync.sourceforge.net>.
-Version 0.41 or later is required.
+Version 0.44 or later is required.
 
 =back
 
@@ -724,7 +717,7 @@ DHCP addresses to search is specified in $Conf{DHCPAddressRanges}.
 
 Note also that the $Conf{ClientNameAlias} feature does not work for
 clients with DHCP set to 1.
-    
+
 =item User name
 
 This should be the unix login/email name of the user who "owns" or uses
@@ -754,9 +747,9 @@ Here's a simple example of a hosts file:
 
 =head2 Step 5: Client Setup
 
-Two methods for getting backup data from a client are
-supported: smb and tar. Smb is the preferred method for WinXX clients
-and tar is preferred method for linux/unix clients.
+Two methods for getting backup data from a client are supported: smb and
+tar. Smb is the preferred method for WinXX clients and tar is preferred
+method for linux/unix clients.
 
 The transfer method is set using the $Conf{XferMethod} configuration
 setting. If you have a mixed environment (ie: you will use smb for some
@@ -779,11 +772,19 @@ The preferred setup for WinXX clients is to set $Conf{XferMethod} to "smb".
 prepared to run rsync/cygwin on your WinXX client.  More information
 about this will be provided via the FAQ.)
 
-You need to create shares for the data you want to backup.
-Open "My Computer", right click on the drive (eg: C), and
-select "Sharing..." (or select "Properties" and select the
-"Sharing" tab).  In this dialog box you can enable sharing,
-select the share name and permissions.
+If you want to use rsyncd for WinXX clients you can find a pre-packaged
+zip file on L<http://backuppc.sourceforge.net>. The package is called
+cygwin-rsync. It contains rsync.exe, template setup files and the
+minimal set of cygwin libraries for everything to run.  The README file
+contains instructions for running rsync as a service, so it starts
+automatically everytime you boot your machine.
+
+Otherwise, to use SMB, you need to create shares for the data you want
+to backup. Open "My Computer", right click on the drive (eg: C), and
+select "Sharing..." (or select "Properties" and select the "Sharing"
+tab). In this dialog box you can enable sharing, select the share name
+and permissions.  Many machines will be configured by default to share
+the entire C drive as C$ using the administrator password.
 
 If this machine uses DHCP you will also need to make sure the
 NetBios name is set.  Go to Control Panel|System|Network Identification
@@ -799,13 +800,19 @@ and then set $Conf{XferMethod} to "tar" (use tar on the network
 mounted file system).
 
 Also, to make sure that file names with 8-bit characters are correctly
-transferred by smbclient you should add this to samba's smb.conf file:
+transferred by smbclient you should add this to samba's smb.conf file
+for samba 2.x:
 
     [global]
        # Accept the windows charset
        client code page = 850
        character set = ISO8859-1
 
+For samba 3.x this should instead be:
+
+    [global]
+       unix charset = ISO8859-1
+
 This setting should work for western europe.  
 See L<http://www.oreilly.com/catalog/samba/chapter/book/ch08_03.html>
 for more information about settings for other languages.
@@ -847,7 +854,7 @@ is recommended.  Rsync is run on the remote client via rsh or ssh.
 
 The relevant configuration settings are $Conf{RsyncClientPath},
 $Conf{RsyncClientCmd}, $Conf{RsyncClientRestoreCmd}, $Conf{RsyncShareName},
-$Conf{RsyncArgs}, $Conf{RsyncRestoreArgs} and $Conf{RsyncLogLevel}.
+$Conf{RsyncArgs}, and $Conf{RsyncRestoreArgs}.
 
 =item rsyncd
 
@@ -857,10 +864,14 @@ the client machine and BackupPC connects directly to it.
 
 The relevant configuration settings are $Conf{RsyncdClientPort},
 $Conf{RsyncdUserName}, $Conf{RsyncdPasswd}, $Conf{RsyncdAuthRequired},
-$Conf{RsyncShareName}, $Conf{RsyncArgs}, $Conf{RsyncRestoreArgs}
-and $Conf{RsyncLogLevel}.  In the case of rsyncd, $Conf{RsyncShareName}
-is the name of an rsync module (ie: the thing in square brackets in
-rsyncd's conf file -- see rsyncd.conf), not a file system path.
+$Conf{RsyncShareName}, $Conf{RsyncArgs}, and $Conf{RsyncRestoreArgs}.
+$Conf{RsyncShareName} is the name of an rsync module (ie: the thing
+in square brackets in rsyncd's conf file -- see rsyncd.conf), not a
+file system path.
+
+Be aware that rsyncd will remove the leading '/' from path names in
+symbolic links if you specify "use chroot = no" in the rsynd.conf file.
+See the rsyncd.conf manual page for more information.
 
 =back
 
@@ -896,6 +907,10 @@ for a password. There are two common versions of ssh: v1 and v2. Here
 are some instructions for one way to setup ssh.  (Check which version
 of SSH you have by typing "ssh" or "man ssh".)
 
+=item Mac OS X
+
+In general this should be similar to Linux/Unix machines.
+
 =over 4
 
 =item OpenSSH Instructions
@@ -1028,9 +1043,9 @@ Copy BackupPC's public key (BackupPC_id_rsa_1024_a.pub) to the
 =item Fix permissions
 
 You will probably need to make sure that all the files
-in /.ssh2 have no group or other read/write permission:
+in ~/.ssh2 have no group or other read/write permission:
 
-    chmod -R go-rwx /.ssh2
+    chmod -R go-rwx ~/.ssh2
 
 You should do the same thing for the BackupPC user on the server.
 
@@ -1076,7 +1091,7 @@ Next, force protocol version 1 by adding:
 
 to BackupPC's ~/.ssh/config on the server.
 
-Next, run "chmod -R go-rwx ~/.ssh" on the server and "chmod -R go-rwx /.ssh"
+Next, run "chmod -R go-rwx ~/.ssh" on the server and "chmod -R go-rwx ~/.ssh"
 on the client.
 
 Finally, test using:
@@ -1262,12 +1277,12 @@ to Apache's 1.x httpd.conf file:
     </IfModule>
 
 Apache 2.0.44 with Perl 5.8.0 on RedHat 7.1, Don Silvia reports that
-this works:
+this works (with tweaks from Michael Tuzi):
 
     LoadModule perl_module modules/mod_perl.so
     PerlModule Apache2
 
-    <Location /path/to/cgi/>
+    <Directory /path/to/cgi/>
        SetHandler perl-script
        PerlResponseHandler ModPerl::Registry
        PerlOptions +ParseHeaders
@@ -1280,7 +1295,7 @@ this works:
        AuthType Basic
        AuthUserFile /path/to/user_file
        Require valid-user
-    </Location>
+    </Directory>
 
 There are other optimizations and options with mod_perl.  For
 example, you can tell mod_perl to preload various perl modules,
@@ -2023,6 +2038,56 @@ in a location different from their original location.
 
 Each of these programs reside in __INSTALLDIR__/bin.
 
+=head1 Archive functions
+
+BackupPC supports archiving to removable media. For users that require
+offsite backups, BackupPC can create archives that stream to tape
+devices, or create files of specified sizes to fit onto cd or dvd media.
+
+Each archive type is specified by a BackupPC host with its XferMethod
+set to 'archive'. This allows for multiple configurations at sites where
+there might be a combination of tape and cd/dvd backups being made.
+
+BackupPC provides a menu that allows one or more hosts to be archived.
+The most recent backup of each host is archived using BackupPC_tarCreate,
+and the output is optionally compressed and split into fixed-sized
+files (eg: 650MB).
+
+The archive for each host is done by default using
+__INSTALLDIR__/BackupPC_archiveHost.  This script can be copied
+and customized as needed.
+
+=head2 Configuring an Archive Host
+
+To create an Archive Host, add it to the hosts file just as any other host
+and call it a name that best describes the type of archive, e.g. ArchiveDLT
+
+To tell BackupPC that the Host is for Archives, create a config.pl file in 
+the Archive Hosts's pc directory, adding the following line:
+
+$Conf{XferMethod} = 'archive';
+
+To further customise the archive's parameters you can adding the changed
+parameters in the host's config.pl file. The parameters are explained in
+the config.pl file.  Parameters may be fixed or the user can be allowed 
+to change them (eg: output device).
+
+The per-host archive command is $Conf{ArchiveClientCmd}.  By default
+this invokes __INSTALLDIR__/BackupPC_archiveHost, which you can
+copy and customize as necessary.
+
+=head2 Starting an Archive
+
+In the web interface, click on the Archive Host you wish to use. You will see a
+list of previous archives and a summary on each. By clicking the "Start Archive"
+button you are presented with the list of hosts and the approximate backup size
+(note this is raw size, not projected compressed size) Select the hosts you wish
+to archive and press the "Archive Selected Hosts" button.
+
+The next screen allows you to adjust the parameters for this archive run.
+Press the "Start the Archive" to start archiving the selected hosts with the
+parameters displayed.
+
 =head1 BackupPC Design
 
 =head2 Some design issues
@@ -3108,7 +3173,7 @@ See L<http://backuppc.sourceforge.net>.
 
 =head1 Copyright
 
-Copyright (C) 2001-2003 Craig Barratt
+Copyright (C) 2001-2004 Craig Barratt
 
 =head1 Credits
 
@@ -3118,14 +3183,23 @@ Xavier provided the French translation fr.pm, with additions from
 Guillaume.
 
 Ryan Kucera contributed the directory navigation code and images
-for v1.5.0.  He also contributed the first skeleton of BackupPC_restore.
+for v1.5.0.  He contributed the first skeleton of BackupPC_restore.
+He also added a significant revision to the CGI interface, including
+CSS tags, in v2.1.0.
 
 Guillaume Filion wrote BackupPC_zipCreate and added the CGI support
 for zip download, in addition to some CGI cleanup, for v1.5.0.
+Guillaume continues to support fr.pm updates for each
+new version.
+
+Josh Marshall implemented the Archive feature in v2.1.0.
+
+Javier Gonzalez provided the Spanish translation, es.pm for v2.0.0.
 
-Javier Gonzalez provided the Spanish translation, es.pm.
+Manfred Herrmann provided the German translation, de.pm for v2.0.0.
+Manfred continues to support de.pm updates for each new version.
 
-Manfred Herrmann provided the German translation, de.pm.
+Lorenzo Cappelletti provided the Italian translation, it.pm for v2.1.0.
 
 Many people have reported bugs, made useful suggestions and helped
 with testing; see the ChangeLog and the mail lists.