X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=bin%2FBackupPC_nightly;h=9dbdb2d0add38e0d967831d033460568bd94d276;hp=c38e68e7e20eed9b3d9c93385df9d515e808daa2;hb=82ffaa1c4130a34812fb241c2ea5cd3d0608bdab;hpb=617af75f7419e95a9c3ea05b05cf21957acc331c diff --git a/bin/BackupPC_nightly b/bin/BackupPC_nightly index c38e68e..9dbdb2d 100755 --- a/bin/BackupPC_nightly +++ b/bin/BackupPC_nightly @@ -37,7 +37,7 @@ # Craig Barratt # # COPYRIGHT -# Copyright (C) 2001-2004 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 @@ -55,7 +55,7 @@ # #======================================================================== # -# Version 3.0.0alpha, released 23 Jan 2006. +# Version 3.1.0beta0, released 3 Sep 2007. # # See http://backuppc.sourceforge.net. # @@ -64,11 +64,10 @@ use strict; no utf8; use lib "/usr/local/BackupPC/lib"; -use BackupPC::Lib; +use BackupPC::Lib qw( :BPC_DT_ALL ); use BackupPC::FileZIO; use Getopt::Std; -use File::Find; use File::Path; use Data::Dumper; @@ -153,7 +152,7 @@ for my $pool ( qw(pool cpool) ) { $fileLinkMax = 0; $fileCntRename = 0; %FixList = (); - find({wanted => \&GetPoolStats}, "$TopDir/$pool/$dir") + $bpc->find({wanted => \&GetPoolStats}, "$TopDir/$pool/$dir") if ( -d "$TopDir/$pool/$dir" ); my $kb = $blkCnt / 2; my $kbRm = $blkCntRm / 2; @@ -170,6 +169,15 @@ for my $pool ( qw(pool cpool) ) { $dirCnt++ if ( ($i % 16) == 0 && -d "$TopDir/$pool/$hexChars[int($i / 16)]" ); + # + # We need to process all pending deletes before we do the + # renames + # + if ( @PendingDelete ) { + sleep(1); + processPendingDeletes(1); + } + # # Now make sure that files with repeated checksums are still # sequentially numbered @@ -203,7 +211,7 @@ for my $pool ( qw(pool cpool) ) { } } -sleep(10); +sleep(1); processPendingDeletes(1); ########################################################################### @@ -251,7 +259,8 @@ sub doBackupInfoUpdate sub GetPoolStats { - my($inode, $nlinks, $nblocks) = (lstat($_))[1, 3, 12]; + my($file, $fullPath) = @_; + my($inode, $nlinks, $nblocks) = (lstat($file))[1, 3, 12]; if ( -d _ ) { $dirCnt++; @@ -270,7 +279,6 @@ sub GetPoolStats # pool files vs removing pool files. (Other aspects of the # design should eliminate race conditions.) # - my $fullPath = $File::Find::name; push(@PendingDelete, { inode => $inode, path => $fullPath