Hi,

I'll have to rearrange some of what I quote for it to make more sense. No
mis-quoting intended.

Mark Sopuch wrote on 21.05.2007 at 00:09:15 [Re: [BackupPC-users] 
[BackupPC-devel] incremental doesn't stay within filter]:
> Mark Sopuch wrote:
> > Holger Parplies wrote:
> >> Mark Sopuch wrote on 19.05.2007 at 23:58:39 [[BackupPC-devel] incremental 
> >> doesn't stay within filter]:

> Make of it what you will but the change from c to c$ in the filter 
> combined with the smbclient commands I supplied earlier ran as follows 
> (first the full then the incrmental) :
> 
> Running: /usr/bin/smbclient \\\\gromit\\C\$ -U AL\\marks! -E -N -d 1 -c 
> tarmode\ full -Tc - /nucoda
> Running: /usr/bin/smbclient \\\\gromit\\C\$ -U AL\\backuppc -E -N -d 1 -c 
> tarmode\ full -TcN /tomato1/BackupPC/DATA/pc/gromit/timeStamp.level0 -

The differences between the full and the incremental commands are:
1. different $userName
2. incremental misses $fileList

This can really only mean that the SmbClientIncrCmd in fact used does *not*
include a '$fileList' argument (which would explain exactly what you are
seeing). Maybe one is from the global configuration file and the other from
the host specific configuration file? That would mean that either only one
of them is present in the host specific file or that one is misspellt (eg.
"$Conf {SbmClientIncrCmd} = ...") or something.
Maybe you could post the output of

        egrep '^ *\$Conf *\{Smb' config.pl pc/gromit.pl | grep -v Passwd
or
        pcregrep '^\s*\$Conf\s*\{Smb(?!SharePasswd)' config.pl pc/gromit.pl

(from $ConfDir).

> As I said, I have not tuned the smbclient commands away from the defaults
> that were installed. 

Well, someone seems to. Maybe you changed them for testing and forgot to
change something back? Did you use the web interface or did you edit the
files by hand?

> I assumed it is not necessary and they are ready for use with filters out
> of the box.

They certainly should be.

> You can see above what the commands interpolate to run as.

Yes, and that's what makes me wonder. The user name should most obviously
not be interpolated differently, but also the file list is computed by the
same piece of code for full and incremental backups. I can't imagine how it
could be empty in one case and correct in the other. In fact, it's not
correct in the other case. It appears to be hardcoded into the command
(without the trailing '/*'), much the same as the user name.

Hmm. What is your $Conf {ClientCharset} set to?

> > It is just that everything works so beautifully 
> > out of the box and when the filter worked for full backup but only 
> > partially for incremental it threw me to confusion. When I say 
> > partially working for incremental I mean that the data from within the 
> > include filter get backed up but I get attrib stubs for everything 
> > else on the c share.

The explanation from the commands actually run is that full backups work
correctly and incrementals are run without the filter setting. As only files
modified since the time of the last full backup are transfered (but all
directories), it might appear that the filter is "partially" applied although
in fact it isn't applied at all.

> >>> $Conf{BackupFilesOnly} = {
> >>>  'c' => [
> >>>    '/nucoda/*'
> >>>  ]
> >>> };
> > [...]
> > Okay, now that I have pasted this in I have a funny feeling the c 
> > should be a c$ (seeing the SmbShareName = c$).

Well, yes, the two need to match for the filter settings to apply. That
requirement is identical for full and incremental backups, though.

> > Sorry. Here it is for distro, apache+mp2, backuppc, smbclient ...
> >
> > Linux tomato 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 
> > i686 i386 GNU/Linux

For people not using the same Linux distribution it's not really obvious
which one that kernel is from :-).

> >>> Assuming filters apply equally to both full and incremental in 
> >>> BackupPC [...]
> >>
> >> Filters don't "apply in BackupPC". Filters are used to construct 
> >> arguments
> >> to the commands run to gather the data - smbclient in your case.
> >
> > Sure, I guess what I meant was that I was assuming that include and 
> > exclude list processing by BackupPC use the same filter definitions ie.
> >
> > $Conf{BackupFilesOnly}

My point was that BackupPC does not actually apply any filters. It
constructs arguments that it passes to external programs such as smbclient,
tar or rsync. The code fragment that generates these arguments does not
differentiate between full and incremental backups (for SMB anyway), so the
arguments generated are identical in both cases.
Presuming smbclient had a bug causing it to transfer all directories in the
incremental case, BackupPC would not notice or try to correct that, although
this would in theory be possible to implement. Apparently, smbclient has no
such bug but is simply not passed the fileList arguments for the incremental
backup.

Actually, my guess is that you have

        $Conf {SmbShareName} = 'C$';
        $Conf {BackupFilesOnly} = { 'c$' => [ '/nucoda/*' ] };
        $Conf {SmbClientFullCmd} = '... -U AL\\marks! ... -Tc$X_option - 
/nucoda $fileList';
        $Conf {SmbClientIncrCmd} = '... -U $userName ... -Tc$X_option 
$timeStampFile - $fileList';

which would explain why $fileList is empty: 'C$' != 'c$'.

Of course, if you had initially posted the contents of your config files,
it would have saved me considerable effort, and we could probably have
resolved this days ago.

Regards,
Holger

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/backuppc-users
http://backuppc.sourceforge.net/

Reply via email to