- The two currently implemented writable "variables" are:
-
- VolumeName and JobReport
-
- It is possible to submit a Bacula run command with the following:
-
- bacula.run(j, "run kernsave client=Matou storage=File")
-
- this function returns the JobId of the job that was started. If
- there is an error, the return value is zero.
-
- Example:
-
-== File EndJob.py ===
-import bacula
-
-def EndJob(j):
- jobid = bacula.get(j, "JobId")
- client = bacula.get(j, "Client")
- bacula.set(jcr=j, JobReport="EndJob output: JobId=%d Client=%s.\n" % (jobid, client))
- if (jobid < 5) :
- startid = bacula.run(j, "run kernsave")
- print "Python started jobid=", startid
-
- return 1
-====
-
-== File NewVolume.py ===
-import bacula
-
-def NewVolume(j):
- jobid = bacula.get(j, "JobId")
- print "JobId=", jobid
- client = bacula.get(j, "Client")
- print "Client=" + client
- numvol = bacula.get(j, "NumVols");
- print "NumVols=", numvol
- bacula.set(jcr=j, JobReport="New Volume set for Job.\n")
- bacula.set(jcr=j, VolumeName="TestA-001")
- return 1
-====
-
-
-New Directives:
-- Scripts Directory = <directory> name. Defines the directory from
- which Bacula scripts will be called for events. In fact, Bacula
- appends this name to the standard Python list of search directories,
- so the script could also be in any of the Python system directories.
-- In FileSet, you can exclude backing up of hardlinks (if you have
- a lot, it can be very expensive), by using:
- HardLinks = no
- in the Options section. Patch supplied by David R Bosso. Thanks.
-
-New Commands:
-- "python restart" restarts the Python interpreter. Rather brutal, make
- sure no Python scripts are running. This permits you to change
- a Python script and get Bacula to use the new script.
-
-Items to note!!!
-- You must add --with-python=[DIR] to the configure command line
- if you want Python support. Python 2.2 and 2.3 should be automatically
- detected if in the standard place.
-- With Python 2.2 version, the link of the Director gets a few linker
- warnings due to the fact that Python pulls in some old non-secure
- libraries.
-- With Python 2.3, there are a few compiler warnings.
-
-Other Items: