X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=blobdiff_plain;f=lib%2FBackupPC%2FXfer%2FRsync.pm;h=f6ad740841af9479f0f68400b0097922885582f4;hp=11103ca91160abd425ac22630605bd4e6ef2b9b4;hb=2c6ebbdaeabadbda3af4bc7c748995215c045b82;hpb=0697368bbcef14908cd4684cf07744dc840464de diff --git a/lib/BackupPC/Xfer/Rsync.pm b/lib/BackupPC/Xfer/Rsync.pm index 11103ca..f6ad740 100644 --- a/lib/BackupPC/Xfer/Rsync.pm +++ b/lib/BackupPC/Xfer/Rsync.pm @@ -29,7 +29,7 @@ # #======================================================================== # -# Version 2.0.0_CVS, released 18 Jan 2003. +# Version 2.0.0_CVS, released 3 Feb 2003. # # See http://backuppc.sourceforge.net. # @@ -52,9 +52,9 @@ BEGIN { $RsyncLibOK = 0; $RsyncLibErr = "File::RsyncP module doesn't exist"; } else { - if ( $File::RsyncP::VERSION < 0.20 ) { + if ( $File::RsyncP::VERSION < 0.30 ) { $RsyncLibOK = 0; - $RsyncLibErr = "File::RsyncP module version too old: need 0.20"; + $RsyncLibErr = "File::RsyncP module version too old: need 0.30"; } else { $RsyncLibOK = 1; } @@ -119,7 +119,7 @@ sub start # # We add a slash to the share name we pass to rsync # - ($t->{shareNameSlash} = "$t->{shareName}/") =~ s{//+$}{}; + ($t->{shareNameSlash} = "$t->{shareName}/") =~ s{//+$}{/}; if ( $t->{type} eq "restore" ) { $rsyncClientCmd = $conf->{RsyncClientRestoreCmd}; @@ -228,6 +228,7 @@ sub start # transferred, even though it is a full dump. # $rsyncArgs = $conf->{RsyncArgs}; + $rsyncArgs = [@$rsyncArgs, @fileList] if ( @fileList ); $rsyncArgs = [@$rsyncArgs, "--ignore-times"] if ( $t->{type} eq "full" ); $rsyncClientCmd = $conf->{RsyncClientCmd}; @@ -268,6 +269,7 @@ sub start }, rsyncCmdType => "full", rsyncArgs => $rsyncArgs, + timeout => $conf->{ClientTimeout}, logHandler => sub { my($str) = @_; $str .= "\n"; @@ -279,7 +281,6 @@ sub start conf => $t->{conf}, backups => $t->{backups}, logLevel => $conf->{RsyncLogLevel}, - timeout => $conf->{ClientTimeout}, logHandler => sub { my($str) = @_; $str .= "\n"; @@ -364,14 +365,17 @@ sub run # my $stats = $rs->statsFinal; if ( !defined($error) && defined($stats) ) { - $t->{xferOK} = 1; + $t->{xferOK} = 1; } else { - $t->{xferOK} = 0; + $t->{xferOK} = 0; } - $t->{byteCnt} = $stats->{childStats}{TotalFileSize} - + $stats->{parentStats}{TotalFileSize}; - $t->{fileCnt} = $stats->{childStats}{TotalFileCnt} - + $stats->{parentStats}{TotalFileCnt}; + $t->{xferErrCnt} = $stats->{remoteErrCnt}; + $t->{byteCnt} = $stats->{childStats}{TotalFileSize} + + $stats->{parentStats}{TotalFileSize}; + $t->{fileCnt} = $stats->{childStats}{TotalFileCnt} + + $stats->{parentStats}{TotalFileCnt}; + my $str = "Done: $t->{fileCnt} files, $t->{byteCnt} bytes\n"; + $t->{XferLOG}->write(\$str); # # TODO: get error count, and call fio to get stats... #