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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users