[Bacula-users] Presentation screenshots - program?

2007-09-07 Thread Bastian Friedrich
Hi,

I'm currently evaluating Bacula. During reading the presentation slides on the 
website (http://www.bacula.org/presentations/Bacula-FOSDEM-talk-25Feb07.pdf), 
I found the screenshots on the last pages.

Can you tell me what program is shown in these screenshots? It looks great :)

Thx,
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ Windows would look better with curtains.

-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] Bacula and Zarafa

2012-02-23 Thread Bastian Friedrich
Hi,

Am Donnerstag, 23. Februar 2012, 09:55:00 schrieb Masopust, Christian:
> Short question: anyone using Bacula to backup Zarafa?   What to consider?
> Any pitfalls?
> 
> Ok... these were 3 questions...  :))

Collax provides a number of Zarafa based products; our basic backup technology 
is Bacula. So ... We do. :)

1) Consider combining Zarafa's internal backup technology (Brick Level Backup) 
with Bacula. We encourage users to create frequent incremental backups, which 
then can/should be stored for longer-term usage via Bacula.

2) You can simply dump the Zarafa database with mysqldump (or anything the 
like), possibly in conjunction with Bacula's bpipe plugin. This will result in 
no longer being able to create incremental backups, but depending on the size 
of your installation, that may well be OK.

3) File based backup of MySQL is possible, if appropriate steps are taken. 
Cannot tell you too much about that, though. If you do something like this, 
you might consider using Postgres for Bacula. This will help reduce load on 
each of the databases, and will reduce write access (Catalog) to the database 
your are backing up.

In our own infrastructure, we do frequent Brick-level backups with Zarafa's 
tools, and backup up the database, the attachment store, and the brick-level 
store in daily incrementals via Bacula (and bpipe/mysqldump in case of the 
database).

Best regards
   Bastian

-- 
Collax GmbH . Basler Str. 115a . 79115 Freiburg . Germany
p: +49 (0) 89-990 157-28www.collax.com

Geschäftsführer: Bernd Bönte, Boris Nalbach
AG München HRB 173695. Ust.-IdNr: DE270819312


--
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] Bacula and Zarafa

2012-02-27 Thread Bastian Friedrich
Hi,

Am Samstag, 25. Februar 2012, 17:16:19 schrieb Masopust, Christian:
> > 1) Consider combining Zarafa's internal backup technology
> > (Brick Level Backup)
> > with Bacula. We encourage users to create frequent
> > incremental backups, which
> > then can/should be stored for longer-term usage via Bacula.
> > 
> Just a short question: what would be "frequent incremental backups"
> as you mentioned at 1) ?

I'd regard any interval between 1 hour and 24 hours as sensible for their 
respective setups; this largely depends on the ammount of mails and users your 
Zarafa installation handles, and the system load that you can spare for backup 
purposes.

If your system can handle an incremental backup every hour, that might well be 
the best choice. The size of the backups will be comparably small, as will be 
the risk of losing data. Due to its nature, Zarafa's brick-level backup will 
not have too much overhead for multiple small incrementals versus a single 
large one.

Regards
   Bastian

-- 
Collax GmbH . Basler Str. 115a . 79115 Freiburg . Germany
p: +49 (0) 89-990 157-28www.collax.com

Geschäftsführer: Bernd Bönte, Boris Nalbach
AG München HRB 173695. Ust.-IdNr: DE270819312


--
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


[Bacula-users] "Run" statements, run scripts, and filesets

2007-12-10 Thread Bastian Friedrich
Hi,

The "run" statements in job definitions seem to be a great way to accomplish 
backing up multiple distinguished subsets of a file system. By adding FileSet 
parameters, one job can back up a machine and still keep information about 
more abstract system components.

Yet, preprocessing parts of these subsets with RunScript statements (and its 
relatives: Run Before Job, Run After Job, ...) seems to be a problem; 
the "%" substitutes don't include a fileset reference.

Unfortunately, the relevant low level/source structures don't allow for a 
simple adding of such a reference, as far as I can see...

Is there any chance to access the current file set name in a run script?

Thx, best,
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ Seen on BBSer's tombstone: CONNECT 1953, NO CARRIER 1994

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] "Run" statements, run scripts, and filesets

2007-12-13 Thread Bastian Friedrich
Hi,

On Tuesday 11 December 2007, Arno Lehmann wrote:
> 10.12.2007 12:58,, Bastian Friedrich wrote::
> >
> > The "run" statements in job definitions seem to be a great way to
> > accomplish backing up multiple distinguished subsets of a file system. By
> > adding FileSet parameters, one job can back up a machine and still keep
> > information about more abstract system components.
>
> I don't think I understand what you want to do here, so if you feel
> like it, a more detailed explanation (perhaps with an example ;-)
> would be nice.

the systems I am about to back up contain distinguished subsets of files - 
imagine "data belonging to the e-mail system" vs. "home directories" vs. "a 
network filesystem". To individually restore these subsets, it seems sensible 
to use single filesets for each of these subsets. Thus, I plan to use a 
config like this:

===

# Empty fileset
FileSet {
  Name = "empty"
}

# Fileset 1
FileSet {
  Name = "email"
  Include {
 File="/var/spool/imap"
 [...]
  }
[...]
}

# Fileset 2
FileSet {
  Name = "homedirs"
  Include {
 File="/home/"
  }
[...]
}

# Global Job

Job {
  Name = "MyBackup"
  FileSet = "empty"

  run = "MyBackup Fileset=email"
  run = "MyBackup Fileset=homedirs"
[...]
}

===

Running the Job "MyBackup" results in backups of all of the subsystems.

Some of these subsystems may require a preprocessing step with the "RunScript" 
statement (or its relatives). I'd like to use something like

  Run Before Job = "/my/script/path/preprocess %f"

to preprocess the filesets (given %f being the fileset name). The 
preprocessing script/program knows about the referenced filesets and the 
required preprocessing.

Obviously, I could add additional job statements to be executed by the "run" 
statements, each including exactly one fileset. I'd rather stick with the 
described one job/multiple fileset design described above - if possible.

> > Unfortunately, the relevant low level/source structures don't allow for a
> > simple adding of such a reference, as far as I can see...
> >
> > Is there any chance to access the current file set name in a run script?
>
> I think adding that to the job codes' interpretation should be
> reasonably easy. Have a look into src/lib/util.c and you'll find the 
> function edit_job_codes(). That's where the work is done. Getting the
> name of the current file set might be a bit difficult; the JCR
> contains a pointer to a JOB object, which in turn contains a pointer
> to the fileset.

The jcr class only contains the relevant pointers if compiled in the director 
context (i.e. DIRECTOR_DAEMON is set); util.c needs to be independent of that 
flag. Thus, I cannot find a reference to the job or fileset ressources there:(

> If you have problems accessing the file set name, you should ask on
> the -devel mailing list.

I'll ask there, thanks :)

Thanks for your support,
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ I am. Therefore, I think. I think.

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] "Run" statements, run scripts, and filesets

2007-12-13 Thread Bastian Friedrich
Hi,

On Thursday 13 December 2007, Arno Lehmann wrote:
> 13.12.2007 09:54,, Bastian Friedrich wrote::
> >
> > the systems I am about to back up contain distinguished subsets of files
> > - imagine "data belonging to the e-mail system" vs. "home directories"
> > vs. "a network filesystem". To individually restore these subsets, it
> > seems sensible to use single filesets for each of these subsets. Thus, I
> > plan to use a config like this:
>
> Ok, I get it now... though I don't see the need to link these jobs
> like you want to do.

The primary reason for that is the possibility to execute them manually by a 
single command.

> If you use the run= directive, even a manual start of the "main" job
> will trigger the additional jobs, which might be unwanted.

That is exactly what I want :)

[...]
> > Job {
> >   Name = "MyBackup"
> >   FileSet = "empty"
>
> This one could be an Admin job, avoiding some unneeded actions inside
> Bacula.

Good idea.

> >>> Unfortunately, the relevant low level/source structures don't allow for
> >>> a simple adding of such a reference, as far as I can see...
> >>>
> >>> Is there any chance to access the current file set name in a run
> >>> script?
> >>
> >> I think adding that to the job codes' interpretation should be
> >> reasonably easy. Have a look into src/lib/util.c and you'll find the
> >> function edit_job_codes(). That's where the work is done. Getting the
> >> name of the current file set might be a bit difficult; the JCR
> >> contains a pointer to a JOB object, which in turn contains a pointer
> >> to the fileset.
> >
> > The jcr class only contains the relevant pointers if compiled in the
> > director context (i.e. DIRECTOR_DAEMON is set); util.c needs to be
> > independent of that flag. Thus, I cannot find a reference to the job or
> > fileset ressources there:(
>
> Well, I'm a bit astonished, because I don't see how the DIR can *not*
> know the fileset for it's work. And the DIR does initiate the scripts.

The director consists of multiple binary object files, some of which 
are "director alone", while others are library/infrastructure. The latter 
have different views of some central structures -- in this case restricted 
views, compared with the ones in the director :(

I'll probably head for the workaround: Add jobs for every fileset.

Thx again,
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ Let us live!!!  Let us love!!!
\  Let us share the deepest secrets of our souls!!!
\ You first.

-
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


[Bacula-users] Redundant Run in Schedule

2008-02-20 Thread Bastian Friedrich
Hi,

when configuring multiple "Run"s in a schedule that occur at the same time, 
they are run sequentially:
  Run = Full Pool = PoolSpecial w01 mon at 8:00
  Run = Full Pool = Pool mon at 8:00
results in two executions of the job that refers to the schedule.

This definitely is not a bug, or out of specs; normally, it is not difficult 
to circumvent, either:
  Run = Full Pool = PoolSpecial w01 mon at 8:00
  Run = Full Pool = Pool w01 w02 w03 [...] w53 mon at 8:00
runs the second job only if the first job is not run.

I'd have a need for exclusiveness in this case: run the job only in case it is 
not referenced before. Would you also regard this as a sensible modification?

Maybe we (one? Kern? erm... whoever :) could add a "ElseRun" statement or 
similar that does not run multiple jobs in one schedule?

Is there any more simple solution?

Thx
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ 10.0 times 0.1 is hardly ever 1.0.

-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] Redundant Run in Schedule

2008-02-20 Thread Bastian Friedrich
Hi,

On Mittwoch 20 Februar 2008, Arno Lehmann wrote:
>
> 20.02.2008 15:31, Bastian Friedrich wrote:
> > [...] it is not
> > difficult to circumvent, either:
> >   Run = Full Pool = PoolSpecial w01 mon at 8:00
> >   Run = Full Pool = Pool w01 w02 w03 [...] w53 mon at 8:00
> > runs the second job only if the first job is not run.
>
> Really sure?

Glll. Typo. Should have been "w00 202 [...]" in the second case, of 
course.

> I think it would run both jobs, but haven't checked myself.

Of course it does. Stupid me.

> I have to borrow Dan's question: What do you want to achieve here?

We are trying to generate Bacula schedules from other means of 
configuration. Considering a little more interesting backup strategies, 
the Bacula schedule configuration statements lack a means of "negating" 
points of time - or a "either/or" semantics as described here.

In one point or another, I'll have to remove redundant "run" 
statements - either in our generating code, or somehow/somewhere inside 
Bacula. Both seem to be valid choices; I am currently examining them.

It is perfectly legal (and sensible) to run a job e.g. "once a month" 
(1st mon) to one pool, and "every day" to another pool. Currently, one 
would need to use one "tue-sun" plus one "2nd 3rd 4th 5th mon" 
statement. If run statements in schedules were exclusive (given they 
would be run at an identical time), the configuration would be less 
complicated. I may be wrong, but I don't see much of a point in running 
the same job (just different levels and pools) twice at the same time.

On the other hand, as I said: the problem can be circumvented with a 
little more complex configurations.

Thx
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ Coming Soon!! Mouse Support for Edlin!!


-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] Redundant Run in Schedule

2008-02-21 Thread Bastian Friedrich
Hi,

On Thursday 21 February 2008, Arno Lehmann wrote:
> It *might* be possible using a python event

Interesting idea; regarding the unknown future of the python support, I'd 
rather not invest too much time there, though.

> > On the other hand, as I said: the problem can be circumvented with a
> > little more complex configurations.
>
> Which is the way to go, currently.

ACK.

Thx a lot for your responses!
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ Help beautify our dumps. Throw away something pretty.

-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] Redundant Run in Schedule

2008-02-22 Thread Bastian Friedrich
Hi,

On Wednesday 20 February 2008, Bastian Friedrich wrote:
> when configuring multiple "Run"s in a schedule that occur at the same time,
> they are run sequentially:
>   Run = Full Pool = PoolSpecial w01 mon at 8:00
>   Run = Full Pool = Pool mon at 8:00
> results in two executions of the job that refers to the schedule.
>
[...]
> I'd have a need for exclusiveness in this case: run the job only in case it
> is not referenced before. Would you also regard this as a sensible
> modification?

despite the fact that we found workarounds during our discussion (on 
bacula-users), I wrote a small patch:

With the attached patch, Schedule statements can include an 
optional "QueueOnce" flag (i.e. QueueOnce=true, with QueueOnce=false being 
default). If this flag is set, a job will only be queued once per minute. 
With this enabled, one can e.g. schedule a job "first of month" as well 
as "mondays"; the job will only be queued once if a monday is a first of a 
month as well, and both events were queued for the same minute.

This modifies the current behavior, where jobs were queued twice.

Because of Bacula's internal logic, the _last_ "Run" statement in a schedule 
wins; we can understand this as "overwriting" statements.

What do you think about this idea/code?

Oh, btw: the attached patch is against SVN trunk.

Thx, Best regards,
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ Machine-independent: does not run on any existing machine.
Index: src/dird/scheduler.c
===
--- src/dird/scheduler.c	(revision 6461)
+++ src/dird/scheduler.c	(working copy)
@@ -67,7 +67,7 @@
 
 /* Forward referenced subroutines */
 static void find_runs();
-static void add_job(JOB *job, RUN *run, time_t now, time_t runtime);
+static void add_job(JOB *job, RUN *run, SCHED *sched, time_t now, time_t runtime);
 static void dump_job(job_item *ji, const char *msg);
 
 /* Imported subroutines */
@@ -364,11 +364,11 @@
 	   tm.tm_sec = 0;   /* zero secs */
 	   runtime = mktime(&tm);
 	   if (run_now) {
-	 add_job(job, run, now, runtime);
+	 add_job(job, run, sched, now, runtime);
 	   }
 	   /* If job is to be run in the next hour schedule it */
 	   if (run_nh) {
-	 add_job(job, run, now, runtime + 3600);
+	 add_job(job, run, sched, now, runtime + 3600);
 	   }
 	 }
   }
@@ -377,7 +377,7 @@
Dmsg0(dbglvl, "Leave find_runs()\n");
 }
 
-static void add_job(JOB *job, RUN *run, time_t now, time_t runtime)
+static void add_job(JOB *job, RUN *run, SCHED *sched, time_t now, time_t runtime)
 {
job_item *ji;
bool inserted = false;
@@ -397,6 +397,32 @@
 #endif
   return;
}
+
+/*
+ * If schedule permits only one execution per minute ("QueueOnce" set),
+ * search for existing queue entries within one minute. Drop if found.
+ */
+if (sched->queueonce) {
+   foreach_dlist(ji, jobs_to_run) {
+  if (!strcmp(ji->job->hdr.name, job->hdr.name) &&
+(abs(ji->runtime - runtime) < 60)) {
+
+ char dt[50], dt1[50], dt2[50];
+ bstrftime_nc(dt, sizeof(dt), ji->runtime);
+ bstrftime_nc(dt1, sizeof(dt1), runtime);
+ Dmsg5(dbglvl, "Duplicate queue entry for job %s, QueueOnce enabled. "
+			 "Queued runtime=%s(%x), dropped runtime = %s(%x).\n",
+			 job->hdr.name,
+			 dt,
+			 ji->runtime,
+			 dt1,
+			 runtime);
+ fflush(stdout);
+ return;
+  }
+   }
+}
+
 #ifdef SCHED_DEBUG
Dmsg4(000, "Add: Job=\"%s\" run=%x last_run=%x now=%x\n", job->hdr.name, 
 runtime, run->last_run, now);
Index: src/dird/dird_conf.c
===
--- src/dird/dird_conf.c	(revision 6454)
+++ src/dird/dird_conf.c	(working copy)
@@ -347,6 +347,7 @@
{"name", store_name,  ITEM(res_sch.hdr.name), 0, ITEM_REQUIRED, 0},
{"description", store_str, ITEM(res_sch.hdr.desc), 0, 0, 0},
{"run",  store_run,   ITEM(res_sch.run),  0, 0, 0},
+   {"queueonce", store_bool, ITEM(res_sch.queueonce), 0, ITEM_DEFAULT, false},
{NULL, NULL, {0}, 0, 0, 0}
 };
 
Index: src/dird/dird_conf.h
===
--- src/dird/dird_conf.h	(revision 6454)
+++ src/dird/dird_conf.h	(working copy)
@@ -492,6 +492,8 @@
RES   hdr;
 
RUN *run;
+
+   bool queueonce;
 };
 
 /*
-
This SF.net email is spons

Re: [Bacula-users] Redundant Run in Schedule

2008-02-25 Thread Bastian Friedrich
Hi,

I'll keep my answer on this subject short, as you are obviously currently 
working on the topic in a larger scope; I'll add some comments on your new 
thread on bacula-devel.

On Friday 22 February 2008, Kern Sibbald wrote:
> On Friday 22 February 2008 15.44:56 Bastian Friedrich wrote:
> >
> > On Wednesday 20 February 2008, Bastian Friedrich wrote:
> > > when configuring multiple "Run"s in a schedule that occur at the same
> > > time, they are run sequentially:
> > >   Run = Full Pool = PoolSpecial w01 mon at 8:00
> > >   Run = Full Pool = Pool mon at 8:00
> > > results in two executions of the job that refers to the schedule.
> >
> > [...]
> >
> > > I'd have a need for exclusiveness in this case: run the job only in
> > > case it is not referenced before. Would you also regard this as a
> > > sensible modification?
> >
[...]
> >
> > What do you think about this idea/code?
>
> Well, I like the idea (the feature), but I'm a little concerned about the
> solution you propose from several stand points:
>
> 1. I found it hard to understand what you wanted to do until I read the
> code, so I am concerned that this concept could be hard to document
> correctly.

Full ACK. During implementation, I came up with at least three different names 
for the topic. Finding a good term to express the restriction of duplicate 
job queuing is not simple... Your argument is exactly the reason why I did 
not supply a documentation patch in the first place.

If I rewrote these few lines, I'd rather name the flag 
"PreventDuplicateQueuing".

> 2. The current list of Run directives are essentially ANDed.  That is
> Bacula will walk down the list and schedule all that apply.

Minor problem here: In fact, Bacula "walks up" the list, in a way, at least 
compared to the sequence of statements in the config file; in other words: 
the list is read "bottom up".

Should we consider reversing the logics in store_run(), i.e. append new Run 
statements to the end of the list instead of prepending them?

I'd prefer a semantics of "else", rather than "overwriting" existing Runs.

> I think what 
> you really are trying to do is to setup two Run directives to be ORed, and
> perhaps that could be handled by a slightly different syntax such as:
>
>   Or {
> Run = Level=Full Pool = PoolSpecial w01 mon at 8:00
> Run = Level=Full Pool = Pool mon at 8:00
>   }
>  or perhaps some other keyword such as OneOf ...  wouldn't that be much
>  clearer?
>  There would be a bit more work to implement this (not really hard) but
>   it seems to me it would be much clearer to the user.

The "Or" (or OneOf, or whatever) ressource would then be living inside a 
Schedule statement? Interesting idea; it would then be possible to do 
something like

Schedule {
  Name = foo
  Or {
Run = ...
Run = ...
  }
  Or {
Run = ...
Run = ...
  }
}

On the other hand, I frankly do not have any requirement for this added 
complexity, and one new keyword/flag would be sufficient for me.

> 3. It is interesting that this comes just at this moment, because just
> tonight I was starting to work on the new "Duplicate Jobs" directive group
> for Jobs. That is a fairly comprehensive set of directives that tell Bacula
> how to deal with duplicate jobs.

So your "Duplicate Jobs" directive is meant to deal with duplicate executions 
of jobs, rather than with duplicate queuings, i.e. would rather not prevent 
the jobs to be queued in the first place?

In that case, it might in fact be sensible to have both solutions.

Best
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ EXPO, f (lat). Vom mittelalterlichen "ex po" ("ex" == aus, heraus;
\ "po" ist ein veraltetes Wort für "Arsch", zusammengefaßt also:
\ "aus dem Arsch", was soviel bedeutet wie "einfach Scheiße").

-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] [Bacula-devel] Improving job scheduling flexibility

2008-02-25 Thread Bastian Friedrich
Hi,

On Saturday 23 February 2008, Kern Sibbald wrote:
> My current idea is to create a new "DuplicateJobs" resource and a new
> Duplicate Jobs directive which would point to the duplicate jobs resource.
> The reason for the resource is that there are just too many different
> variations that it would require a lot of new directives, and it seems a
> shame to add them to every Job.

While your point about redundant setups for different jobs is certainly valid, 
I also like Marc's opinion that directives in JobDefs ressources probably 
would be sufficient. Configuration of existing ressources is more simple than 
understanding the meaning of a new ressource. Adding a new ressource would 
not help the ease of use, esp. for beginners.

> DuplicateJobs {
>   Name = "xxx"
>
>   Allow = yes|no  (no = default)

While I personally in fact don't need duplicate jobs: Wouldn't your proposal 
modify the default behavior of the system, raising some problems for some 
people?

>   Job Proximity =   (0)

Great idea.

Thx for your efforts,
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ DOWN WITH EXCLAMATION POINTS!!!

-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] [Bacula-devel] Redundant Run in Schedule

2008-02-25 Thread Bastian Friedrich
On Monday 25 February 2008, Kern Sibbald wrote:
> > > 2. The current list of Run directives are essentially ANDed.  That is
> > > Bacula will walk down the list and schedule all that apply.
> >
> > Minor problem here: In fact, Bacula "walks up" the list, in a way, at
> > least compared to the sequence of statements in the config file; in other
> > words: the list is read "bottom up".
>
> Ah, that is quite typical of my implementations (add to head of single
> linked list) when it "doesn't matter"

Your version is much cleaner and simpler, as long as sequence does not matter.

> > Should we consider reversing the logics in store_run(), i.e. append new
> > Run statements to the end of the list instead of prepending them?
>
> Yes, that is rather trivial to do -- no problem.

Patch (SVN) appended.

> Please give us an exact example of the Schedule directives with jobs you
> want ANDed and ones that you want ORed.

I can, of course, only speak for myself; other people's needs obviously 
differ.

I never need ANDed schedules, as I don't (yet?) see requirements for jobs to 
be executed twice. If there /is/ reason to execute the jobs twice - well, run 
them with one minute difference, and they will be queued happily.

Sample scenarios I encounter:

Towers of hanoi with weekly full backups


Schedule {
  Name = Hanoi3
  Run = Level=Full Pool=PoolC w00 w04 w08 [...] mon at 08:00
  Run = Level=Full Pool=PoolB w00 w02 w04 w06 w08 [...] mon at 08:00
  Run = Level=Full Pool=PoolA mon at 08:00
}

Run backups to tapeset C in every 4th week (w04 w08 ...); tapeset B in every 
second week (w00 w02 w04 w06 w08 ...); tapeset A in all other weeks.

Bacula should eliminate the runs to pool B in every fourth week by itself, 
despite the fact that the second run is configured for w00 w02 w04 w06 w08 
(...), and eliminate runs of A in all even weeks.

This scenario could be precalculated, but it was easier to solve it in 
Bacula's scheduling mechanisms.


Monthly and weekly backups
--
Schedule {
  Name = Foo1
  Run = Level=Full Pool=MonthlyPool monthly 1 at 08:00
  Run = Level=Incremental Pool=Incrementals mon at 08:00
}

Run full backups to MonthlyPool on the 1. day of each month; run incrementals 
on mondays. Bacula should be able to eliminate the incremental job in case 
the first day of each month is a monday.

This scenario cannot be precalculated (at least for a duration of more than 
one year).

> Then I will have a better idea of 
> what you are proposing.  I am all for something simpler as long as the
> sytnax and semantics are clear.

My current plans/ideas certainly differ from what other people 
want/require... :-/

As I said, my personal needs are restricted to ORed statements; adding an AND 
semantics could - for me - be accomplished by adding a second, almost 
identical Job statement, with an alternative schedule.

Having the flexibility of both versions in one type of statement (just with 
the syntax you proposed) would of course be best for most people.

> > > 3. It is interesting that this comes just at this moment, because just
> > > tonight I was starting to work on the new "Duplicate Jobs" directive
> > > group for Jobs. That is a fairly comprehensive set of directives that
> > > tell Bacula how to deal with duplicate jobs.
> >
> > So your "Duplicate Jobs" directive is meant to deal with duplicate
> > executions of jobs, rather than with duplicate queuings, i.e. would
> > rather not prevent the jobs to be queued in the first place?
>
> In Bacula language, we usually speak of "scheduling" rather than queuing. 

ACK. (The reason why I used a different term is that I understood that 
scheduling refers to the "global" scheduling, i.e. the layout of all runs, 
whereas queuing refers to the process of adding the execution of a certain 
run of a schedule to the list of jobs to be executed. Of course, it's all a 
matter of definition. I'll drop mine :)

> So, I think we should continue discussing possible modifications to the
> Schedule resource ...

Good :)

Thx
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ God is real, unless declared integer.
Index: src/dird/run_conf.c
===
--- src/dird/run_conf.c	(revision 6485)
+++ src/dird/run_conf.c	(working copy)
@@ -627,12 +627,19 @@
 * in the schedule resource.
 */
if (pass == 2) {
+  RUN *tail = *run;
+
   trun = (RUN *)malloc(sizeof(RUN));
   memcpy(trun, &lrun, sizeof(RUN));
-  if (*run) {
- trun->next = *run;
+  trun->next = NULL;
+
+  if (tail) {
+ while (tail->next) tail = tail->next;
+ tail->next = trun;
+  } else {
+ tail = trun;
+ *run = trun;
   }
-  *run = 

Re: [Bacula-users] Enable/disable spooling when starting jobs with "run" ?

2008-11-06 Thread Bastian Friedrich
Hi,

On Sunday 02 November 2008, Wolfgang Denk wrote:
> usually I like to disable spooling for full dumps, but enable it for
> differential and incremental ones.
>
> This works fine by  selecting  one  default  setting  (say:  spooling
> enabled)  in the global configuration and overwriting it for the jobs
> that need the opposite setting (in my example:  disable  it)  in  the
> "Run" statements in the schedule.
>
> However, how can I do the same when running a job manually using  the
> "run" command on the console?
>
> It seems there is no option to enable or disable spooling then?

I have had the same problem recently, so starting with SVN revision 7982 (i.e. 
a snapshot from last Wednesday), there is a "spooldata=yes|no" flag on the 
run command line.

You will need a SVN version then, though :(

Best
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-28
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ Of all forms of caution, caution in love is the most fatal.

-
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


[Bacula-users] Manual Volume recycling and overwritten data

2009-01-13 Thread Bastian Friedrich
Hi,

when manually recycling a (used) volume with
"update volume=xxx VolStatus=Recycle"
this volume will be accepted for overwriting. Nonetheless, Jobs that have been 
written to that volume will NOT be removed from the catalog. This results in 
invalid data, as the catalog will still contain data about volume content 
that is no longer there.

Would you regard that as a bug? Or is it a PEBKAC, as I should not use the 
update command to recycle volumes? Or ist it "just wait for these jobs to 
expire via their retention period"? Any recommendations on how to handle 
these cases?

dbcheck is not able to find these jobs, btw; they look absolutely valid in the 
database, except for the fact that possibly two entries exist that point to 
the same region on a tape.

Thx/best regards
   Bastian Friedrich

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-28
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ "Womit verhüten Emanzen - mit dem Gesicht."
\  Oskar Lafontaine

--
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] tape error and bacula: ...block numbers differ

2009-02-05 Thread Bastian Friedrich
Hi,

On Wednesday 04 February 2009, Ralf Gross wrote:
>
> JobId 9250: Error: block.c:568 Write error at 411:14724 on device
> "ULTRIUM-TD4-D2" (/dev/ULTRIUM-TD4-D2).  ERR=Eingabe-/Ausgabefehler.
> JobId 9250: Error: Re-read of last block OK, but block numbers differ.
>  Last block=32305463 Current block=32307189.
> JobId 9250: End of medium on Volume "A00151L4" Bytes=411,923,570,688
> Blocks=6,385,223 at 03-Feb-2009 20:44.
>
>
> And at the same time in the kernel log:
>
> kernel: sense key: Medium Error
> kernel: Additional sense: Write error
> kernel: Info fld=0xfc00
>

this is just a quick "me too"-message; one of our customers (also using a 
modern LTO drive, btw) is having the exact same results. In his case, though, 
the problems occur rather frequently.

We are having difficulties debugging the problem sensibly, as the concerned 
server is in full production (for quite a number of other services).

No modification of tape behavior via stinit. Is there any sensible way to 
request the configuration data from the drive? The ones mentioned in the "How 
to test the drive" chapter do not seem to work for me; mt stsetoptions does 
not result in any output in the system log/dmesg.

Thx
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-28
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ Make it idiot proof and someone will make a better idiot.

--
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users


Re: [Bacula-users] Feature request: Enable/disable spooling when using "run"

2009-02-09 Thread Bastian Friedrich
Wolfgang,

Am Montag, 9. Februar 2009 00:46:44 schrieb Wolfgang Denk:
>
>   What:   I would like to be able to override the spooling settings
>   of a job when manually starting it using "run".

what you are looking for has been implemented in the SVN code in November; it 
thus is part in the most recent 2.5 beta releases and will be part of the 
upcoming 3.0 release.

See
http://bacula.svn.sourceforge.net/viewvc/bacula?view=rev&revision=7982

Best
   Bastian

-- 
Collax GmbH . Burkheimer Straße 3 . 79111 Freiburg . Germany
p: +49 (0) 761-45684-24
f: +49 (0) 761-45684-10www.collax.com

Geschäftsführer: William K. Hite / Boris Nalbach
AG München HRB 158898 . Ust.-IdNr: DE 814464942
\ I'd love to go out with you,
\ but the last time I went out, I never came back.


--
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
___
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users