X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=bin%2FBackupPC_link;h=1793a0e92c5d6b0e16df84695a09e98958622468;hb=119f107a676267b9f6d65e16153527e9a7d8756b;hp=c7e925d672c53dacc06b4e20ba756ac9525e4d0c;hpb=e951f787a66c5bd9e9955c3f657a5b44289c0fe1;p=BackupPC.git diff --git a/bin/BackupPC_link b/bin/BackupPC_link index c7e925d..1793a0e 100755 --- a/bin/BackupPC_link +++ b/bin/BackupPC_link @@ -21,7 +21,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2001-2003 Craig Barratt +# Copyright (C) 2001-2007 Craig Barratt # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -39,7 +39,7 @@ # #======================================================================== # -# Version 2.1.0, released 20 Jun 2004. +# Version 3.1.0beta0, released 3 Sep 2007. # # See http://backuppc.sourceforge.net. # @@ -51,6 +51,7 @@ use lib "/usr/local/BackupPC/lib"; use BackupPC::Lib; use BackupPC::Attrib; use BackupPC::PoolWrite; +use BackupPC::Storage; use File::Find; use File::Path; @@ -156,6 +157,16 @@ while ( 1 ) { $Backups[$num]{sizeNewComp} += $sizeNewComp; $Backups[$num]{noFill} = $noFill; $Backups[$num]{fillFromNum} = $fillFromNum; + # + # Save just this backup's info in case the main backups file + # gets corrupted + # + BackupPC::Storage->backupInfoWrite($Dir, + $Backups[$num]{num}, + $Backups[$num], 1); + # + # Save the main backups file + # $bpc->BackupInfoWrite($host, @Backups); } @@ -211,7 +222,21 @@ sub FillIncr # # Exists in the older filled backup, and not in the new, so link it # - link($name, $newName); + my($exists, $digest, $origSize, $outSize, $errs) + = BackupPC::PoolWrite::LinkOrCopy( + $bpc, + $name, $Compress, + $newName, $Compress); + if ( $exists ) { + $nFilesExist++; + $sizeExist += $origSize; + $sizeExistComp += $outSize; + } elsif ( $outSize > 0 ) { + $nFilesNew++; + $sizeNew += $origSize; + $sizeNewComp += -s $outSize; + LinkNewFile($digest, $origSize, $newName); + } } }