Hi,
17.11.2008 01:11, Daniel Bareiro wrote:
> On Sunday, 16 November 2008 21:09:22 +0100,
> Arno Lehmann wrote:
...
>>> 16-Nov 01:13 backup1-dir: Start Backup JobId 5231,
>>> Job=Sdp2.2008-11-16_00.00.18
>>> 16-Nov 01:17 sdp2-fd: Sdp2.2008-11-16_00.00.18 Fatal error: Error running
>>> program: bash -c "find
>>> +/space/backup/$HOSTNAME/*_etc.tar.gz ". RtnStat=268435457 ERR=Conseguido
>
>> This seems to be a broken programm call... probably the file set
>> definition is done with a program, and that programm isn't executed
>> properly.
>
>> What is shown in the output is definitely not a useful 'find'
>> invocation.
>
>
>> Can you post the relevant configuration setting, and also the result
>> of the *identical* program call from the shell?
>
> Of course.
>
> bacula-dir.conf:
>
> #################### Listado de JobDefs ###########################
>
> JobDefs {
> Name = "Bases"
> Type = Backup
> FileSet = "Bases"
> Schedule = "CicloSemanal"
> Storage = DLTDrive
> Messages = Standard
> Max Start Delay = 15h
> Pool = Default
> }
>
> [...]
>
> #################### Listado de Jobs ###########################
>
> [...]
>
> Job {
> Name = "Sdp"
> Client = sdp-fd
> JobDefs = "Bases"
> Priority = 14
> Write Bootstrap = "/var/lib/bacula/sdp.bsr"
> }
>
> Job {
> Name = "Sdpbkp"
> Client = sdpbkp-fd
> JobDefs = "Bases"
> Priority = 15
> Write Bootstrap = "/var/lib/bacula/sdpbkp.bsr"
> }
>
> [...]
>
> Job {
> Name = "Sdp2"
> Client = sdp2-fd
> JobDefs = "Bases"
> Priority = 28
> Write Bootstrap = "/var/lib/bacula/sdp2.bsr"
> }
>
> #################### Archivos a backupear ###########################
>
> FileSet {
> Name = "Bases"
> Include {
> Options {
> signature = SHA1
> wildfile = "*.bz2"
> }
> Options {
> Exclude = yes
> RegexFile = ".*"
> }
> # File = /space/backup/sdpbkp/oracle/export
> File = "\\|bash -c \"echo /space/backup/$HOSTNAME/oracle/export/ \""
Why so complicated? Requires parsing of a command line, creating a
child process, reading its output... and it's more secure to use full
paths for bash and echo.
> }
> Include {
> Options {
> signature = SHA1
> }
> File = /etc
> File = "\\|bash -c \"find /space/backup/$HOSTNAME/*_etc.tar.gz \""
Make this "\\|bash -c \"find /space/backup/$HOSTNAME/ '*_etc.tar.gz'
\"". For more information, read find's manual page.
> File = "\\|bash -c \"find /space/backup/$HOSTNAME/oracle/controlfile/ \""
> File = "\\|bash -c \"find /space/backup/$HOSTNAME/oracle/pfile/ \""
> File = "\\|bash -c \"find /space/backup/$HOSTNAME/oracle/scripts/ \""
> File = "\\|bash -c \"echo /space/backup/$HOSTNAME/pkg_list/ \""
> File = "\\|bash -c \"echo /space/backup/$HOSTNAME/home/ \""
> File = "\\|bash -c \"echo /space/log/$HOSTNAME/oracle/ \""
> }
> }
>
> Notifications:
>
> I sent the sdpd2 notification for november 14 in the previous mail, so I
> will send only the one of the other two clients:
>
> -----------------------------------------------------------------------------
> 15-Nov 00:07 backup1-dir: Start Backup JobId 5198,
> Job=Sdpbkp.2008-11-15_00.00.05
> 15-Nov 00:12 sdpbkp-fd: DIR and FD clocks differ by 310 seconds, FD
> automatically adjusting.
> 15-Nov 00:07 backup1-dir: Bacula 1.38.11 (28Jun06): 15-Nov-2008 00:07:39
> JobId: 5198
> Job: Sdpbkp.2008-11-15_00.00.05
> Backup Level: Incremental, since=2008-11-14 00:09:38
> Client: "sdpbkp-fd" i486-pc-linux-gnu,debian,4.0
> FileSet: "Bases" 2008-07-08 22:10:11
It's a bit unexpected to *not* find the error here, but as long as
everything work's let's simply ignore that :-)
...
> 15-Nov 00:07 backup1-dir: Start Backup JobId 5197,
> Job=Sdp.2008-11-15_00.00.04
> 15-Nov 00:10 sdp-fd: DIR and FD clocks differ by 199 seconds, FD
> automatically adjusting.
> 15-Nov 00:10 sdp-fd: Could not stat /space/log/sdp/oracle/: ERR=No
> such file or directory
> 15-Nov 00:07 backup1-dir: Bacula 1.38.11 (28Jun06): 15-Nov-2008 00:07:32
> JobId: 5197
> Job: Sdp.2008-11-15_00.00.04
> Backup Level: Incremental, since=2008-11-14 00:09:31
> Client: "sdp-fd" i486-pc-linux-gnu,debian,4.0
> FileSet: "Bases" 2008-07-08 22:10:11
> Pool: "Incremental"
> Storage: "DLTDrive"
> Scheduled time: 15-Nov-2008 00:00:03
> Start time: 15-Nov-2008 00:07:29
> End time: 15-Nov-2008 00:07:32
> Elapsed time: 3 secs
> Priority: 14
> FD Files Written: 2
> SD Files Written: 2
> FD Bytes Written: 3,010 (3.010 KB)
> SD Bytes Written: 3,228 (3.228 KB)
> Rate: 1.0 KB/s
> Software Compression: None
> Volume name(s): EducarIncremental0003
> Volume Session Id: 5
> Volume Session Time: 1226689534
> Last Volume Bytes: 36,691,798,833 (36.69 GB)
> Non-fatal FD errors: 1
> SD Errors: 0
> FD termination status: OK
> SD termination status: OK
> Termination: Backup OK -- with warnings
>
> 15-Nov 00:07 backup1-dir: Begin pruning Jobs.
> 15-Nov 00:07 backup1-dir: Pruned 0 Jobs for client sdp-fd from catalog.
> 15-Nov 00:07 backup1-dir: Begin pruning Files.
> 15-Nov 00:07 backup1-dir: No Files found to prune.
> 15-Nov 00:07 backup1-dir: End auto prune.
> -----------------------------------------------------------------------------
>
> As you see, the backup of sdp finishes OK but with warnings not having a
> directory.
Well, that's just a warning. As long as you can live with it that
should be ok.
> The reason by which I use "find" is because I wanted to have a unique
> definition to use with all the installation of databases having common
> directories among them whereas other directories are not.
>
> Output of the program called from the shell:
>
> 1) sdp:
>
> $bash -c "echo /space/backup/$HOSTNAME/oracle/export/ "
> /space/backup/sdp/oracle/export/
>
> $bash -c "find /space/backup/$HOSTNAME/*_etc.tar.gz "
> /space/backup/sdp/20071121_etc.tar.gz
Now that's bit unexpected for me... probably the shell expanding the
'*' in the line above. You shouldn't rely on this, though:
$ find '/etc/*.conf'
find: /etc/*.conf: No such file or directory
...
> 3) sdp2
...
> $bash -c "find /space/backup/$HOSTNAME/*_etc.tar.gz "
> find: /space/backup/sdp2/*_etc.tar.gz: No existe el fichero o el directorio
Yup... use "find '/etc/*.conf' 2>/dev/null" to suppress error messages.
...
> These seem to be the four errors informed in the mail for sdp2 due to
> the nonexistent directories. What I do not understand is why these are
> fatal errors whereas the one of sdp is not it.
Hard to tell now. I would suggest to fix the command invocations so
that you don't use shell globbing but rather let find do it's work...
which is what you want, probably - you wouldn't use find otherwise.
Also, try to use the stderr redirection to /dev/null so you don't get
all the find errors into the job report.
If there are still differences between the jobs, a debug log of the
fileset execution on two of the clients might help.
Unfortunately, I don't know which debug level produces a log of what
the fileset processing does, and I can't find it in the coede now :-)
Arno
>
> Thanks for your reply.
>
> Regards,
> Daniel
>
>
--
Arno Lehmann
IT-Service Lehmann
Sandstr. 6, 49080 Osnabrück
www.its-lehmann.de
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users
|