--- /dev/null
+Kern;;;9 Jan 2008;;20:30
+Bacula version BETA 2.2.8 Released
+Bacula version 2.2.8 source tar files as well as the Win32
+binaries are available in the bacula-beta and
+Win32-beta release areas of Source Forge
+
+Version BETA 2.2.8 is a bug fix to version 2.2.7:
+- It fixes bugs: 1036, 1033(doc), 1028, and possibly 1018 and 1032.
+ Bugs 1018 and 1032 involve problems with multiple-drive autochangers.
+;;;
+
+Kern;;;24 Dec 2007;;20:30
+Bacula version 2.2.7 Released
+Bacula version 2.2.7 source tar files as well as the Win32
+binaries are available in the Bacula release area of Source Forge
+
+Version 2.2.7 has several new features and several important bug fixes
+ since version 2.2.6:
+- It fixes bugs: 1009, 1022, 1024, 1019, 1012, 1021, 1020
+ 1007, 1008. For more details, please see the technotes-2.1 file.
+- Fixed a seg fault reported by Frank Sweetser that depended on
+ exact path lengths, but the problem was in bsnprintf.c
+- Double quoting include filenames (@xxx) in Bacula conf files is now
+ possible, thanks to a patch by Michael Stapelberg.
+- You can pipe input to include filenames (@|prog) by using a vertical
+ bar, thanks to the above patch.
+- A daylight savings time bug in the Win32 bsmpt was fixed by a patch from
+ Nerijus Baliunas.
+- Marc Cousins submitted a patch that permits building the PostgreSQL
+ driver with version 8.3.
+- The configure option --archivedir has been changed to --with-archivedir
+;;;
+Kern;;;9 Nov 2007;;15:25
+Bacula version 2.2.6 Released
+Bacula version 2.2.6 source tar files as well as the Win32
+binaries are available in the Bacula release area of Source Forge.
+
+This release is a minor fix upgrade to version 2.2.5,
+and we recommend that all users upgrade when they can.
+
+Version 2.2.6 is a minor bug fix realease to version 2.2.5
+- It fixes bugs: #1003, 942, 982, 990(response only), 991,
+ 993, 986, 976.
+ - Fix bat crash wen it cannot connect to Director.
+ - Fix joblist failure bug in bat.
+;;;
+Kern;;;9 Oct 2007;;15:25
+Bacula version 2.2.5 Released
+Despite the fact that the Release Notes are rather short, the bug
+fixes represent quite a lot of work:
+
+Version 2.2.5 is a major bug fix release to version 2.2.4
+- It fixes the following bugs: #961, 962, 963, 969, 968, 960,
+ 964, (possibly 935 and 903), 953, 953, 967, 966, 965, 954,
+ 957, 908, 958, and 955.
+- It also improves listing performance problems in bat pointed
+ out by Chris Howells.
+;;;
+Kern;;;29 Sept 2007;;20:30
+A serious data loss bug in Bacula version 2.2.4 found and fixed
+
+This bug was very elusive and time consuming to track down. It
+turned out to be a race condition that can lose the last one or
+two blocks of a Job, which can happen in rare cases only when
+running multiple simultaneous jobs when a volume fills and one
+Job finishes receiving the last data from the FD and at the same
+time a second job detects the end of the Volume. The bug was
+introduced in version 2.0.0 and did not exist in version 1.38.x.
+If the bug is triggered, the data is lost (not written to the
+Volume), and it can occur for any backup job of any level under
+the conditions noted above.
+
+The bug is reported in the bugs database as bug #964, and just
+this morning I found and tested a fix, which is attached as a patch
+to the bug report. The patch (2.2.4-lost-block.patch) is also
+uploaded to the bacula-patches 2.2.x release area. This bug may
+also be part of the problems reported in bug #935 and possibly
+#903.
+
+Also in the bacula-patches 2.2.x area, you will find other
+patches that fixes bugs #953, 966, 967, 965, 958, 908, and
+955. Please refer to bugs.bacula.org for the details.
+
+Though this bug quite serious (data loss), it should be rare.
+However, we recommend everyone to apply the patch.
+;;;
+Kern;;;2007/9/14;;;14:30
+Bacula version 2.2.4 Released
+
+This version of Bacula is a minor bug release to version 2.2.3.
+It contains the following fixes:
+
+- Possible fix for authorization problems bug #953.
+- Possible fix for bug #908.
+- Add waits to multiple exit detection code to try to force pid
+ file to always be deleted.
+- Restore good dev.tar.gz to rescue set appropriate binary property.
+ This fixes bug #950.
+- Fix seg fault in error exit of acquire_for_read after unsuccessfully
+ trying to switch drives by checking for blocking before unblocking.
+ Fixes bug #906.
+- Cancel storage daemon in all cases where FD reports error. This
+ should fix virtually all cases of bug #920 and will ensure that Devices
+ are released as soon as possible.
+- Fix error message that was clobbered when Dir tells SD it does not
+ have write permission on Volume. This should fix a minor point
+ in bug #942, but not the main problem.
+- Fix migration code to get correct Volume name with multiple volumes
+ by skipping |. Fixes bug #936.
+- Implement patch supplied by Landon to fix bug #944 where using
+ TLS with bconsole uses 99+% of the CPU.
+- Fix bug #946 about "bacula-dir -t" which doesn't works
+ as expected.
+- Using "m" in bconsole will show messages as in prior versions
+ and not memory usage.
+
+- Note, you need GTK >= 2.10 to be able to link the Tray Monitor
+ program.
+;;;
+Kern;;;2007/9/9;;;14:30
+I regret to announce that there is a rather serious bug in Bacula.
+
+Bacula bug #935 reports that during a restore, a large number of files are
+missing and thus not restored. This is really quite surprising because we
+have a fairly extensive regression test suite that explicitly tests for this
+kind of problem many times.
+
+Despite our testing, there is indeed a bug in Bacula that has the following
+characteristics:
+
+1. It happens only when multiple simultaneous Jobs are run (regardless of
+whether or not data spooling is enabled), and happens only when the
+Storage daemon is changing from one Volume to another -- i.e. the
+backups span multiple volumes, and it only happens for Jobs writing
+to the same volume.
+
+2. It has only been observed on disk based backup, but not on tape.
+
+3. Under the right circumstances (timing), it could and probably does happen
+on tape backups.
+
+4. It seems to be timing dependent, and requires multiple clients to
+reproduce, although under the right circumstances, it should be reproducible
+with a single client doing multiple simultaneous backups.
+
+5. Analysis indicates that it happens most often when the clients are slow
+(e.g. doing Incremental backups).
+
+6. It has been verified to exist in versions 2.0.x and 2.2.x.
+
+7. It should also be in version 1.38, but could not be reproduced in testing,
+perhaps due to timing considerations or the fact that the test FD daemons
+were version 2.2.2.
+
+8. The data is correctly stored on the Volume, but incorrect index (JobMedia)
+records are stored in the database. (the JobMedia record generated during
+the Volume change contains the index of the new Volume rather than the
+previous Volume). This will be described in more detail below.
+
+9. You can prevent the problem from occurring by either turning off multiple
+simultaneous Jobs or by ensuring that while running multiple simultaneous
+Jobs that those Jobs do not span Volumes. E.g. you could manually mark
+Volumes as full when they are sufficiently large.
+
+10. If you are not running multiple simultaneous Jobs, you will not be
+affected by this bug.
+
+11. If you are running multiple simultaneous Jobs to tapes, I believe there is
+a reasonable probability that this problem could show up when Jobs are split
+across tapes.
+
+12. If you are running multiple simultaneous Jobs to disks, I believe there is
+a high probability that this problem will show up when Jobs are split across
+disks Volumes.
+
+13. The bug concerns only the Storage daemon so there is no need to update
+the clients, though I do recommend updating the Director when installing
+an updated Storage daemon.
+
+I have uploaded patches to bug #935 (bugs.bacula.org) that will correct
+version 2.2.0, 2.2.1, and 2.2.2. The patch has been tested only on version
+2.2.2 and passes all regression tests as well as the specific test that
+reproduced the problem.
+
+The patch has now been confirmed to fix the problem reported, and Bacula
+version 2.2.3 has been released to Source Forge.
+
+For the technical details of the bug, please see:
+
+ http://www.bacula.org/downloads/bug-935.txt
+
+;;;
+
+Kern;;;2007/8/11;;;14:30
+
+Bacula Version 2.2.0 has been released to Source Forge.
+
+ Release Notes for Bacula 2.2.0
+
+ Bacula code: Total files = 520 Total lines = 195,550 (*.h *.c *.in)
+ 82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3
+
+This Director and Storage daemon must be upgraded at the same time,
+but they should be compatible with all 2.0.x File daemons, unless you
+use some of the new features that affect the FD. In other words, you should
+not have to upgrade all your File daemons when you upgrade. There is
+no database upgrade needed from version 2.0.x to 2.2.0.
+
+Areas requiring caution or testing:
+- You must have the thread safe version of MySQL client libraries loaded
+ to build with MySQL enabled.
+- Volumes are pruned only when absolutely necessary -- this may cause
+ your database to grow compared to prior Bacula versions.
+- Solaris door and even port files are no longer restored (equivalent
+ to what we do with sockets).
+- SQLite is no longer supported for Solaris -- it fails too often with
+ bus errors. SQLite3 should work on Solaris.
+- The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'.
+ This makes it run 30 times faster, but increases the possiblity
+ of a corrupted database if your server shuts down unexpectedly.
+ The default behavior can be changed in src/version.h
+- Restore on Win32, and in particular on Vista is untested. Please
+ test before relying on it. It should backup and restore reparse
+ points.
+- Win32 servers are untested, and very likely not to work.
+
+The major new features are:
+- Much faster insertion of attributes (somewhere around 10 times),
+ many thanks to Eric Bollengier and Marc Cousin.
+- First release of bat (Bacula Administration Tool). Note to build
+ bat you must explicitly enable it on the ./configure line, you
+ must have the Qt4 version 4.2 or later libraries loaded, the qwt
+ (Qt Graphics) package loaded, and qmake and the other Qt4 tools
+ must be available. Most of the implementation was done by Dirk Bartley.
+- Red/Black restore in memory tree (500 times faster loading).
+- The Regex Where code to allow easier relocation of restored files
+ thanks to Eric.
+- Socket level heartbeat for all connections (untested).
+- posix_fadvise() use in the FD to improve performance reduces
+ swapping due to opening/reading lots of files. Win32 equivalent
+ implemented.
+- Much improved Volume reservation code that should eliminate most
+ conflicts experienced in multiple drive autochangers.
+- Simpler locking in the SD in the reservation system.
+- Detection of file size/date change during backup if enabled.
+- New Recycle Pool feature -- thanks to Eric.
+- Efficient implementation of very large include/exclude lists.
+- Volumes are no longer pruned during 'status dir'
+- Pruning is now more efficient, and if a Volume is purged,
+ during pruning, it is immediately discovered.
+- License is now GPL v2 without modifications, fix a few copyright
+ mistakes made when adding FSFE copyright notice.
+
+New ./configure options:
+- --enable-bwx-console
+- --enable-bat
+- --with-qwt=
+- --with-db-name=
+- --with-db-user=
+- --enable-batch-insert
+
+New bconsole commands:
+- exec
+- memory
+- update recyclepool
+- .sql
+- .api
+- .pwd (in restore tree)
+- restoreclient (keyword)
+- backupclient (keyword)
+- regexwhere (keyword)
+- update jobid (new command)
+- recyclepool (keyword)
+
+New directives:
+- Heartbeat Interval (bconsole.conf)
+- Heartbeat Interval (bacula-dir.conf in Director, Client, Storage)
+- TLS Allowed CN (bacula-dir.conf in Client)
+- Regex Where (bacula-dir.conf in Job)
+- Strip Prefix (bacula-dir.conf in Job)
+- Add Prefix (bacula-dir.conf in Job)
+- Add Suffex (bacula-dir.conf in Job)
+- Recycle Pool (bacula-dir.conf in Pool)
+- FailJobOnError (bacula-dir.conf in RunScript)
+- CheckFileChanges (bacula-dir.conf in FileSet)
+- StripPath (bacula-dir.conf in FileSet)
+
+Other features or bug fixes:
+- Fixed bugs: 916, 910, 917, 914, 906, 907,
+ 842, 830, 893, 861, 888, 886, 807, 877, 872
+ 885, 887, 864, 874, 882, 881, 863, 859,
+ 856, 854, 845, 847, 846, 809, 772,
+ 822, 825, 824, 808, 802, 797, 798, 795, 789, 791,
+ 788, 780, 763, 782, 612, 767, 775, 621, 772, 764,
+ 766, 621, 761, 755, 750, 741, 747, 742, 744, and 743.
+- Configure bat with --enable-bat. Define qwt libraries with
+ --with-qwt=<dir>. See Installation chapter of manual for details.
+- Create a depkgs-qt package that has both Qt4 and qwt, which are
+ needed to build bat. Most modern Linux systems will have both
+ these packages in the distro.
+- Storage overrides delete all previous storage definitions instead
+ of prepending.
+- One should be able to mount and unmount removable devices if the
+ Device resource has Removeable Media set and the mount and unmount
+ directives are defined.
+- ./configure will do a better job of searching for qwt libraries.
+- The Win32 version can no longer be shutdown from the tray monitor.
+ Use the command line or the Services panne.
+- Keep prune_volumes() from pruning the whole Scratch pool.
+- More debug output in status storage.
+- Correct moving a Scratch volume from pool to pool (some
+ critical columns were lost).
+- Different locking in reservations and despooling systems,
+ which means more micro-locking and less macro-locking, which
+ should give a lot more concurrency at the expense of slightly
+ (<0.1%) more overhead due to more locking/unlocking, but
+ concurrent jobs should run much faster.
+- Additional drive reservation algorithm that should solve a lot of
+ the problems experienced with multiple drive autochangers.
+- Storage daemon status command enhanced to more clearly show Volume,
+ pool and media type when a job is waiting.
+- Made bsmtp work with more strict SMTP servers.
+- Detect doubly freed buffers in smartall.c
+- wx-console renamed to bwx-console (Fedora request)
+- gnome-console renamed to bgnome-console (Fedora request)
+- Migration preserves original job's FileSetId
+- Spooling implemented for migration jobs.
+- Config files can be read through a pipe, by specifying a leading |
+ in front of the configuration path/filename.
+- New memory command (bconsole) that will print the current Director's
+ memory usage, and an in use buffer dump.
+- Console name changed from *Console* to -Console- to accomodate Win32
+ filename restrictions.
+- Corrected the Win32 ftruncate bug.
+- Additional version information added to Job reports.
+- New -8 option for bsmtp to specify UTF-8 encoding type.
+- bsmtp will no longer add < > to target (from, to, cc) if there
+ is already a < in the target.
+- Prefer Mounted Volumes extended to mean a volume that is being
+ mounted by another job.
+- Runscript timing set to same as version 1.38.11
+- New TLS Allowed CN directive(s) permitted.
+- New bconsole 'exec' command to run external script/command.
+- Turn on FreeBSD/OpenBSD code to set EOT model on tape.
+- Drop from root done before database is opened.
+- Database user and name can be configured with:
+ --with-db-name=name --with-db-user=user
+- Turn on wait_for_drive in mtx-changer script.
+- Rework how bar codes are handled in mtx-changer script.
+ This appears to have been an unreported bug.
+- Updated nagios plugin supplied by Christian Masopust
+- Better restricted console ACL checking.
+- New Client Connect Wait directive in Storage daemon so that
+ users can configure how long SD waits for FD connection.
+- Bacula will no longer permit pruning of the currently running
+ job (note, if other jobs are running, they may be pruned).
+- Sockets are no longer restored.
+- dbcheck works in 300K chunks so will typically run faster.
+- Include/Exclude lists can now be efficiently handled for quite
+ large sizes -- tens of thousands of entries.
+- Several memory leaks in migration and database usage were fixed.
+- New console keyword restoreclient, which specifies the client to
+ which the restore will be sent. The client keyword specifies
+ the backup client. The restoreclient keyword is optional if it is
+ not specified, the backup client will also be the restore client.
+- The disk file size is now checked to ensure that it agrees with the
+ catalog value before Bacula will append to the disk (same as tape
+ and DVD).
+
+;;;
+
+Kern;;;2007/3/6;;;14:30
+
+Bacula Version 2.0.3 has been released to Source Forge.
+This is a bug fix release to version 2.0.2. If you are upgrading from
+a version older than 2.0.0, please be sure to read the important notes
+below.
+
+Also, please check the patches directory in the current SVN or the
+patches release section on Source Forge for important bug fixes to
+this version.
+
+5Mar07
+kes File migrate bug with Pool Occupancy using mediaid instead
+ of jobids. Fixes bug #795.
+kes Fix orphaned buffers in filed backup and verify due to
+ crypto buffers not freed during errors. Fixes bug #789.
+04Mar07
+kes Add smartctl call to bacula-sd.conf as an example of getting
+ tape alert info.
+02Mar07
+kes Add Client Connect Wait to Storage daemon to permit users to
+ modify the time the SD waits for a FD connection.
+28Feb07
+kes Apply Command ACL filter to JobId list in restore command.
+kes Correct typeo in var.c patch.
+27Feb07
+kes Don't let Bacula prune File or Job records for the current Job.
+kes Fix variable substitution pad + inc bug reported (with patch)
+ in bug #791.
+26Feb07
+kes Correct SQLite log table index as reported by Luca Berra.
+24Feb07
+ebl Fix FIFO stuff, bacula tries to rewind the FIFO... Thanks to Andreas
+22Feb07
+kes Fix a few places in lib/message.c where the open fd may
+ not be zeroed.
+21Feb07
+kes Add LANG=C to autoconf/randpass so it works with languages other
+ than English. Fixes bug #788.
+20Feb07
+ebl Revert ClientRunBeforeJob as it was in 1.38.x
+ This fixes bug #780
+ You will not be able to generate Include/Exclude list any more.
+ If you want to use this, you can apply
+ trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
+19Feb07
+kes Restore of sockets created false error messages because Bacula
+ no longer restores sockets, but the code was still trying to
+ set the attributes on a non-existent file. Reported by a user.
+16Feb07
+kes Fix encryption deblocking bug, which caused some restored files
+ to be truncated. This fixes bug #763. This is a CRITICAL bug fix.
+kes Add FD event sequence order prepared by Eric -- for RunScripts.
+kes Fix 12am/pm bug as reported in bug #782.
+15Feb07
+kes Add quick disconnect FD code from 2.1.4 to 2.0.3. This code
+ causes the SD to release the FD as soon as the FD has sent
+ all the data to the SD. After that the SD will do any final
+ despooling (data and attributes) that are necessary. This
+ allows laptops to disconnect much quicker from the network
+ after a backup.
+13Feb07
+kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
+11Feb07
+kes Optimize the use of the database a bit in the Status dir command.
+ Only open it when needed, ensure that if any previous database
+ was opened, it is closed.
+10Feb07
+kes Modify dbcheck to handle orphaned JobMedia, Path, Filename,
+ and File records in 300K chunks to be more efficient. This
+ idea came from Juan Luis Frances (if I remember right).
+09Feb07
+kes Update projects list.
+08Feb07
+kes Fix dird/ua_cmds.c so that a cancel command checks if the
+ console is authorized to cancel the job. This fixes bug
+ #767.
+kes Modify SD so that the VolCatJobs medium record is updated
+ at the beginning of a Job rather than the end. This
+ fixes bug #775 where exceeding MaxVolJobs caused jobs
+ to fail.
+kes Added a mutex around getting and setting Volume information
+ so that multiple simultaneous jobs will single thread.
+07Feb07
+ Switch to using Subversion
+kes Remove src/pygtk-console/ from configure
+06Feb07
+kes Delete src/lib/btree.c from win32 build, then add rblist.c
+ plus the entrypoints.
+kes Apply patch supplied that corrects debug print
+ in canceling jobs for max run time. Supplied as
+ part of bug #621, which was previously fixed.
+05Feb07
+kes Test on job_canceled() and sd_msg_thread_done inside
+ loop starting the message thread to avoid a race condition.
+ Fixes bug #771.
+kes Remove rl_catch_signal from console.c as it conflicted
+ with the header definition. Fixes bug #765.
+ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
+04Feb07
+kes Clarify some stored/acquire messages to indicate if the
+ problem is with read or append.
+02Feb07
+kes Fix memory leak with storage ids in cats/sql_get.c
+kes Terminate watchdog earlier to avoid reference to released
+ memory -- reported by Jason Austin.
+kes Move closing the database from jobq.c to the director daemon
+ termination routine. This fixes memory leaks for shadow jobs
+ (i.e. migration jobs).
+kes Free up the unique jobid chain items in migrate.c. This fixes
+ a memory leak problem.
+kes Convert some ugly looking for statements to use foreach_alist
+ in findlib/find.c. This will facilitate converting the structures
+ to use dlist (for large include/exclude lists).
+kes Fix a bug in the btree.c and btree.h routines, then rename them
+ rblist and add them to be built in src/lib. Include some new
+ methods written by Rudolf Cejka that make the code more readable
+ (hides some of the ugly casting).
+26Jan07 (back port)
+kes Implement item #12 on project list -- quick release of FD by
+ the SD. This is noted in more detail above.
+
+;;;
+
+Kern;;;2007/1/28;;;14:30
+
+Bacula Version 2.0.2 released:
+28Jan08
+kes Fix maxruntime bug #621.
+27Jan07
+kes Get current main CVS .specs for RedHat, SuSE, Mandrake.
+26Jan07
+ebl Implement the include JobID in spool file name project.
+kes Reorder projects file in order determined by Jan 2007 vote.
+kes Fix open of SQLite3 db where user does not have write permission
+ so that DIR does not crash. Fixes bug #761.
+25Jan07
+kes Change 'Device not configured to autolabel' from INFO
+ to WARNING.
+kes Fix jobq.c to restart failed jobs when Reschedule Times = 0
+ which should restart an indefinite # of times.
+kes Fix configure --help to print --with-mysql[=DIR]. Same for
+ other DIR specifications.
+23Jan07
+rn Fix msvc build problems. Fix bacula.dll exports for msvc build.
+ Fix path quoting in SQLite scripts.
+ Fix problems with SHGetFolderPath.
+19Jan07
+kes Create patches/2.0.1-restart.patch. Fixes bug #755.
+18Jan07
+kes Fix Job restart on error bug that promotes an Inc to a Full
+ backup. This should fix bug #755.
+kes Add qt-console and first cut of code.
+
+;;;
+
+Kern;;;2007/1/13;;;14:30
+
+Bacula Version 2.0.1 has been released to Source Forge.
+This is bug fix update to version 2.0.0 and contains
+the following fixes:
+
+- Fix Bacula->Documentation link on Win32 to point to index.html
+ instead of bacula.html. Fixed bug #750.
+- Return JobId in db_get_job_record() when JobId==0. This should
+ fix bug #741.
+- Do not release source pointers when restarting a failed job.
+- Add dynamic dll entry point for SHGetFolderPath to Win32 code.
+ This *should* fix bug #747.
+- Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
+ bug #742.
+- Modify USTORE constructor to set an empty store_source string,
+ and don't copy the store_source string in a cancel. Hopefully
+ this will fix Arno's seg fault, bug #744.
+- Add back code to disable conio in configure. Fixes bug #743.
+- Correct the Options scanner in the FD to correctly handle
+ SHA1 option, which was eating the next option. Reported by
+ Sebastien Guilbaud.
+- Add code to indicate when the SD is spooling, spool wait, and
+ despooling as requested by Alan Brown.
+
+;;;
+
+Kern;;;2007/1/4;;;14:30
+
+Bacula Version 2.0.0 has been released to Source Forge.
+
+There is an English Press Kit, written by Dan Langille at:
+
+ http://www.bacula.org/about/press/presskit200.html.en
+
+and a German version, translated by Arno Lehmann at:
+
+ http://www.bacula.org/about/press/presskit200.html.de
+
+;;;
+
+Kern;;;2007/1/4;;;14:31
+
+ Release Notes for Bacula 2.0.0
+
+ Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in)
+
+==== IMPORTANT Catalog update required =====
+- The database format has been updated from what was used in
+ Bacula 1.38.x. You must manually update your database before
+ running Bacula 1.39.x or higher. If you are using Bacula supplied
+ RPMs this is not necessary as the RPM does it automatically.
+ Please backup your previous version of the database before
+ running the update. The update script will be automatically
+ installed in your scripts directory, or can also be found in
+ <bacula-source>/src/cats. It is called:
+
+ ./update_bacula_tables
+
+ It is necessary to run it only once the first time you move to
+ a 2.0.0. Upgrading the Bacula version thereafter does not
+ require updating the database again. Depending on the size of
+ your database the script make take a bit of time, to run, but
+ in general, it should be very fast.
+
+==== IMPORTANT new Win32 install procedure =====
+ For Win32 migrations from versions prior to 1.39.0 nothing special
+ needs to be done to upgrade. Everything should be taken care of
+ automatically. The only thing not done is to delete the old C:\bacula
+ directory mostly out of paranoia.
+
+==== IMPORTANT miscellaneous ====
+- The Gnome console program (gconsole) no longer functions as it
+ should.More importantly, in restore mode, the restore tree is
+ no longer shown in the left pane. I suspect this is due to
+ incompatible changes in the GTK+ API, and hence have given up
+ on gnome and gtk+, as this has already happened several times
+ previously. At some point there will be a new GUI console.
+- The bacula-dir.conf directive Accept Any Volume has been
+ removed because it was never implemented. You must delete all
+ occurrence of this directive for the Director to run. The Storage
+ daemon will automatically accept any valid Volume that you mount.
+- The --mandir ./configure option now points to the top level man
+ directory. The man files will be installed under mandir/man8 and
+ mandir/man1 as appropriate.
+- You *should* be able to use 1.38.x FDs with version 2.0.0 Director
+ and SD providing you do not use any of the new features (runscript,
+ data encryption). It seems to work here, but we do not guarantee it.
+- Your Director and SD must be simultaneously upgraded.
+- The restore command no longer uses the MediaType as the primary method
+ of finding a suitable Storage device. Normally it will select the last
+ device used to write a Volume. If no storage device is defined, it
+ will use the old algorithm which selects the first Storage resource
+ with the correct MediaType.
+- The MD5/SHA1 hash codes kept in the database are now kept in a binary
+ format compatible with the rest of the world. If you are running verify
+ jobs, you *must* do an InitCatalog or all files will show an MD5
+ difference. Also, authentication uses the new algorithm by
+ default, but *should* accept connections from older components (FD) using
+ the old non-compatible algorithm. This has been tested, but more
+ more testing is still needed.
+- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses
+ the tape drive. Workaround, load the SuSE 10.1 version 2.6.16.21-0.25
+ kernel or later. The SuSE 10.2 Alpha 5 or later kernel also works.
+ This problem may also be present in certain Fedora FC5 kernels.
+- If you have been using the data encryption feature of 1.39.x, please
+ be aware that certain combinations of encryption and other options
+ with version 1.39.0 through 1.39.26 created Volume data that cannot
+ be restored. We strongly recommend that anyone using encryption
+ carefully review his/her backups and at a minium do a Full backup
+ with 1.39.28 of all encrypted data. Robert Nelson has identified
+ and fixed it as follows:
+ As of 1.39.27:
+ No filters = Works fine
+ Sparse = Works fine
+ Compression = Works fine
+ Encryption = Works fine
+ Sparse + Compression = Works fine
+
+ Sparse + Encryption = Restore broken
+ Sparse + Compression + Encryption = Restore broken
+ Compression + Encryption = Restore broken
+
+ As of 1.39.28:
+ Most combinations work, but some encrypted files are
+ not properly restored.
+
+ As of 1.39.30:
+ All combinations work fine except Sparse+Encryption.
+
+ Bottom line, if you are using data encryption, please test restoring
+ data to be sure it all works correctly.
+- The current Volume format written by 1.39.22 is different from
+ the format written by previous versions. The two formats
+ are not compatible. Thus any DVDs written prior to 1.39.22 will
+ be unreadable by version 1.39.22.
+- If you previously run a Bacula version prior to 1.39.30, the JobMedia
+ data may not be correct for disk Volumes. This can cause incorrect
+ seeking in versions after 1.39.30. If you experience what appears to
+ be data I/O or integrity errors during restores, please add the
+ following directive to your disk DEVICE resource in the Storage
+ daemon conf file:
+
+ Block Positioning = no
+
+ This will turn off all seek requests during restores and avoid
+ this problem.
+- VSS for Windows clients is now enabled by default.
+- Do not unload autochanger when doing "update slots"
+- Implement mount command for autochanger, see manual.
+
+New Features in 2.0.0:
+- Turn on disk seek code for restores.
+- There is a partial but reasonable translation of the Bacula
+ messages for French. To install it, first configure and build
+ Bacula, then as root run:
+
+ cd <bacula-source>/po
+ make install
+
+ If you have your locale set properly you will get the translated
+ messages.
+- Bacula now support Migration jobs that are documented in a new
+ Migration chapter in the manual
+ http://www.bacula.org/dev-manual/Migration.html
+- Data encryption is now implemented and is documented in
+ a new chapter of the manual at:
+ http://www.bacula.org/dev-manual/Bacula_Data_Encryption.html
+- Additional support for removable devices. See the
+ Requires Mount, Mount Point, Mount Command, and Unmount
+ Commands in the Storage daemon configuration chapter:
+ http://www.bacula.org/dev-manual/Storage_Daemon_Configuratio.html
+ Also see the Edit Codes for Mount and Unmount Directives in the
+ same chapter.
+- Switch the Win32 build from using Microsoft C++ to using mingw32
+ cross-compiling. The initial work was done by Howard Thomson,
+ then tweaked by me. Robert Nelson then totally reworked the
+ cross-compiling code so that it not only cross-compiles, but
+ also compiles on Visual Studio, and at the same time, he added
+ all the current Unix features to the FD, such as selection on
+ drives, encryption support, building *all* the tools, ...
+- The Director and Storage daemon have now been ported to Win32.
+ This code is working but should still be tested carefully
+ before putting into production.
+- Bacula restore and bextract can now extract non-portable Win32 data to
+ any client (including Unix/Linux clients). Of course, in doing so,
+ the Microsoft specific permissions and ACLs will be lost. Thanks
+ to Thorsten Engel for this code.
+- The 260 character limitation for Win32 paths name lengths is now
+ eliminated thanks to Thorsten Engel. However, if you are using
+ Volume Shadow Copy, please be careful to specify all the paths
+ in the bacula-fd.conf file using a full path notation including
+ the drive letter.
+- Eric Bollengier wrote new RunScript directives that includes
+ the old RunBefore/AfterJob and ClientRunBefore/AfterJob features
+ plus a *lot* more, allowing you to control just about every aspect
+ of running scripts. See the manual for detailed documentation.
+ http://www.bacula.org/dev-manual/Configuring_Director.html#5227
+- SunOS ACLs should now work thanks to a patch from David Duchscher.
+- Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at
+ If this patch is applied, the number of days can be specified with
+ "list nextvol days=xx"
+ or
+ "status dir days=xx"
+ This can be used to preview the next scheduled job (and the
+ next tape to be used) on Fridays if there are no scheduled jobs during
+ the weekend.
+- From Eric Bollengier. One can now using the bconsole wait command do:
+ wait (wait for all jobs to stop)
+ wait jobid=nn
+ wait jobuid=unique id
+ wait job=job-name
+- Volumes can now be set to Enable, Disable, or Archive. If they
+ are not enabled, Volumes will not be mounted.
+ Implement update volume enable=(on|off|true|false|archived|0|1|2)
+- Add Catalog message destination in Messages resource that puts the
+ job report in the Log database table.
+- Writing/reading DVD Volumes is much more stable -- to the point
+ of being useful. Thanks to Richard Mortimer.
+- Add enable/disable job=<job-name>. This command prevents
+ the specified job from being scheduled. Even when disabled,
+ the job can be manually started from the console.
+- The database Id records should be 32/64 bit independent now. 64 bits
+ can be enabled by changing one define and changing the appropriate
+ table variable. Normally, you need 64 bits only for FileId.
+- Relative path specifications (i.e. ../xxx) are now permitted in
+ the restore cd command.
+- When running multiple simultaneous jobs, most jobs that use spooling
+ will now finish faster due to a mutex optimization made by Eric
+ Bollengier.
+- Conf files containing UTF-8 marker at the head of the file as well as
+ conf files containing Window cr/lf and Mac cr line termination characters
+ are now accepted thanks to Robert Nelson.
+- Windows tray status windows are scrollable and resizable.
+- Win32 external script execution is much more flexible -- handles
+ spaces in names better, ...
+- Lots of DVD fixes -- writing DVDs is now reported to work.
+- Fix opening of database in a restricted console to respect
+ any Catalog ACL.
+- Much better automatic handling of multiple database catalogs in
+ the restore command.
+- Permit multiple console/director resources in bconsole.conf.
+ patch from Carsten Paeth calle@calle.in-berlin.de
+- Character substitution in Job/JobDefs WriteBootStrap.
+ from Eric Bollengier.
+- Apply patch supplied in bug #656 to pass priority field
+ in the run dialog to the Director in gnome console.
+- Add support of encrypted data stream to bscan from Eric.
+ display data_len instead of data content (may be binary).
+- Add Enabled=xxx on update slots command.
+- Add host:port to connect failure messages to FD and SD from Dir/
+- Add WhereACL to console ACL list. If nothing is specified, only
+ the default is permitted for restore. Otherwise, *all* allows any
+ path, or you can specify permitted paths. This should allow control
+ over where users can restore files. This is untested.
+- Install man pages with 'make install'.
+- Add Media.Enabled flag to client backups for dotcmds.c
+- Enforce Media.Enabled=1 for a current restore to work
+- Require restore case 3 to have sqlquery permission to work.
+- Add -n option to bconsole to turn off conio -- used in bweb.
+- The bytes field in the terminated jobs part of the status
+ command now reports in KB, MB, ... units.
+- When not descending into a directory, print the File= name that
+ triggered it -- makes why not descending a bit clearer
+- Do not unload autochanger when doing "update slots"
+- Implement mount command for autochanger
+- Fix bug #462 incorrect error message printed when client script called
+ from File= was not found.
+- Fix bug #558 (waiting for feedback) where Bacula needs too much time to
+ do a rewind on Solaris when no tape is in the drive (Solaris does not
+ have the detailed errno found on Linux). Added Solaris specific code.
+ Note, this may apply to other OSes as well.
+- The examples directory has a new bacula_mail_summary.sh file that
+ creates a single email summary of any number of jobs. Submitted by
+ Andrew J. Millar.
+- Add nagios plugin to the examples directory. Submitted by
+ Christian Masopust.
+- Modify most restore error messages to be queued so that they
+ appear at the end of the job rather than mixed with the restore
+ listing where they could be "lost".
+- Apply patch supplied by user (slightly modified) to fix
+ correct detection of holes in block devices and FIFOs.
+ Bug # 506.
+- Added a report.pl program to the examples directory from Jonas Bjorklund.
+- Add two new queries to query.sql provided by Arno. One
+ list volumes known to the Storage device, and the other
+ lists volumes possibly needing replacement (error, ...).
+- Implement new code for changing userid and group at startup. This
+ should get Bacula into the correct groups.
+- Implement support for removable filesystems -- device type directive
+ and mount, unmount directives.
+- Transfer rates are now presented in a more readable format thanks
+ to a user submission.
+- SD is now aware of what volumes are mounted. More information is printed
+ in the Status report. You must take much more care now to unmount
+ devices prior to removing tapes that Bacula has open or prior to
+ changing a magazine. Don't forget to do a mount afterwards or the
+ device will be blocked.
+- The Pool Maximum Volumes directive is now respected in all places.
+- A Storage device can now be specified in a Pool resource. It will override
+ all other Storage specifications.
+- Most but not all directives accept true/false in place of yes/no.
+- A patch from Karl Hakimian that reads JobIds, FileIndexes
+ from a database table for restore.
+- There are a number of new tables. Some such as the Location table are
+ designed for user use in doing Volume Management software.
+- Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to
+ accept time qualifiers.
+- Implement jobuid to replace old usage of job in keywords as
+ suggested by Eric Bollengier.
+- Implement write variables for Python to set Priority (anytime), and
+ Job Level, only during JobInit event.
+- Use the keyword ujobid to mean the unique job id; job or jobname
+ to mean the Job name given on the Name directive, and jobid to
+ be the numeric (non-unique) job id.
+- Allow the SD to use multiple drives during a backup/restore (only
+ one at a time).
+- Integrate addition of line count limitation to bsmtp -l from
+ Sebastian Stark <stark at tuebingen.mpg.de>
+- Split the bacula start/start script into four files:
+ bacula -- starts and stops calling other scripts
+ bacula-ctl-dir -- starts/stops the director
+ bacula-ctl-fd -- starts/stops the File daemon
+ bacula-ctl-sd -- starts/stops the Storage daemon
+- Remove automatic case folding on Windows FDs. You must
+ explicitly use the 'Ignore Case = yes' option.
+- Implement wild program in tools directory for testing
+ wild-cards. Almost identical to the regex program.
+- Use the new bregex.c to implement Regex expressions on Win32.
+- Apply patch from Christopher Hull
+ - Allow multiple connections to database with different
+ parameters.
+ - Invalidate the scheduler when doing a reload. Fixes seg
+ fault, but still 60 second window.
+ - Additional info in Reschedule message.
+ - Use set_jcr_job_status() everywhere to prevent loss of
+ cancel, error.
+ - Display peer IP in FD if error from connecting DIR.
+ - Don't increment file count for DIRBEGIN.
+ - Replace illegal characters in Win32 filename by _.
+ - Add SE_CREATE_PERMANENT_NAME privilege in Win32.
+ - Hash hard link filenames rather than linked list (performance).
+ - Fix for security failure in chdir on Win32.
+ - Add CreateDirectoryA/W win32 API entry points.
+- programs to duplicate Bacula's base64 algorithm using standard
+ routines. This fixes bugs #296, and 565. Patch submitted by
+ author of bug #565.
+- Fixes to reloading the Dir conf file from Eric Bollengier and Christopher
+ Hull.
+- Modify LICENSE to correct some problems pointed out by Debian.
+- Apply a patch submitted by cesarb in bug #606 to implement O_NOATIME support.
+ O_NOATIME is a open() flag which makes it possible to read a file without
+ updating the inode atime (and also without the inode ctime update which
+ happens if you try to set the atime back to its previous value). It also
+ prevents a race condition when two programs are reading the same file, but
+ only one does not want to change the atime. It's most useful for backup
+ programs and file integrity checkers (and bacula can fit on both
+ categories).
+ You enable it in the Bacula FileSet Options resource by setting:
+ noatime = yes
+ The effect of this option is similar to the keepatime option except
+ it is more efficient and avoids modifying ctime.
+- Implement a pile of new man pages contributed by Jose Tallon.
+- Modify the database format for handling Migration jobs:
+ Add PriorJobId, RealEndTime to Job table
+ Delete MAC table
+ Remove Stripe from JobMedia record (not used, wasting space)
+ Add ScratchPoolId, RecyclePoolId, Enabled to Media record
+ Add Cost to Location table.
+ Enabled to Media table and Location table.
+- Security: harden authentication failure in FD by single threading errors
+ and forcing a 6 second wait.
+- If using GCC (actually g++) add the following compiler flags
+ -fno-strict-aliasing -fno-exceptions -fno-rtti
+- Turn on new bsnprintf() code. The reason for this code is to
+ eliminate the security problems associated with using the
+ system libraries print routines.
+- Implement job report that indicates where Storage and Pool
+ came from -- with overrides and Pool storage and NextPool,
+ it is all very complicated.
+- Add more detail (Storage, Device) to list of volumes printed
+ for restore.
+- Add new VOLMGMT message class. No messages are yet sent with this
+ class.
+- Improved Bacula rescue procedures -- see the Disaster Recovery
+ chapter of the manual
+- Add spooling/despooling info in status output of SD.
+- Add Comment field to llist of a volume.
+- Allow true/false in many but not all yes/no directives.
+- The Bacula source code is now copyrighted by the Free Software
+ Foundation Europe. The Developer's Guide documents the new procedures,
+ and the LICENSE file has been updated.
+- Apply Jaime Ventura's patch that implements the Messages resource
+ Mail On Success directive.
+- The Client returns its Version string, which is printed in the Job
+ report.
+- The Client returns whether or not VSS and Encryption are used, which
+ are printed in the Job report.
+
+Additional Features Added for Win32:
+- Added DriveType directive to the Director's Include Option FileSet
+ resource. Allowed values are: fixed, removable, cdrom, and remote. There
+ is only an implementation for Windows because it is the only platform that
+ has the concept of drives.
+
+- Adds EnhancedWild directive to the Director's Include Option FileSet
+ resource. Allowed values are: yes and no.
+
+ When EnhancedWild is enabled then the processing of the
+ Wild, WildDir and WildFile is changed in the following ways.
+
+ Patterns conform to Posix
+ \ is not a special character in character classification []
+ To match a - it must be the first or last character
+ To match a ] it must be the first character
+
+ fnmatch option FNM_FILE_NAME is specified * doesn't match a /
+ so it won't match multiple directory levels in a path
+
+- Relative WildFile patterns (ones without a leading /) match
+ against the filename portion. This in combination with the
+ FNM_FILE_NAME fnmatch() flag makes directives such as WildFile =
+ abc*.def work as expected.
+
+- Adds support for the shell's feature of brace expansion.
+
+ Here is an example where braces allow 24 lines to be expressed in 5.
+
+ # Exclude directories full of lots and lots of useless little files
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Cookies"
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Recent"
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/History"
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temp"
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temporary Internet Files"
+
+;;;
+++ /dev/null
-Kern;;;2006/08/04;;;12:30
-Donations Received
-
-The following people or organizations have made
-donations or supplied finacial development support
-to the Bacula project and have specifically requested
-that their names appear here:
-
-
-
-Many thanks to the many Bacula listed and non-listed
-supporters have provided support or made donations.
-Names listed here are by specific request. If you have
-made a donation or provided financial support and wish
-to appear in this list, please send an email to
-kern at sibbald dot com.
-
-;;;
--- /dev/null
+Kern;;;2006/08/04;;;12:30
+Donations Received
+
+The following people or organizations have made
+donations or supplied finacial development support
+to the Bacula project and have specifically requested
+that their names appear here:
+
+
+
+Many thanks to the many Bacula listed and non-listed
+supporters have provided support or made donations.
+Names listed here are by specific request. If you have
+made a donation or provided financial support and wish
+to appear in this list, please send an email to
+kern at sibbald dot com.
+
+;;;
--- /dev/null
+ <div>
+ <img src="images/spacer.gif" alt="spacer" width="1px" height="50px"><br>
+ <?
+ if($_SESSION['user'] == "bukdebug")
+ print_r($_SERVER);
+ ?>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<?
+ /**
+ * grab parms from URL
+ *
+ */
+ parse_str($_SERVER['QUERY_STRING']);
+
+ /**
+ * some settings
+ *
+ */
+ isset($page) || $page = "home"; // default page to show
+ $page_directory = "pages"; // directory with pages
+ $page_current = "$page_directory/$page.php";
+
+
+ /**
+ * Login
+ *
+ */
+ session_start();
+ if(isset($_POST['username']) and isset($_POST['password'])) {
+ $user = $_POST['username'];
+ $pass = $_POST['password'];
+
+ if($user == $pass) {
+ $_SESSION['user'] = $user;
+ $_SESSION['logged_in'] = true;
+ }
+ }
+
+ /**
+ * Prepare links
+ */
+ $spath = dirname($_SERVER['SCRIPT_NAME']);
+ if(strlen($spath) < 2)
+ $spath = "";
+
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict //EN" "http://www.w3.org/TR/html4/strict.dtd">
+
+<html>
+ <head>
+ <title> Bacula, the Network Backup Tool for Linux, Unix, and Windows </title>
+ <link rel="stylesheet" type="text/css" href="bacula.css" title="blueish">
+ <meta name="Description" content="Bacula a network backup and restore program">
+ <meta name="Keywords" content="Bacula, backup, restore, file backup">
+ <meta name="Copyright" content="Copyright (C) 2000-2007 Kern Sibbald">
+ <meta name="Trademark" content="Bacula (R) is a registered trademark of John Walker">
+ </head>
+
+ <body>
+
+ <!-- Top Search Bar -->
+ <div class="searchBar">
+ <table class="searchBar">
+ <tr>
+ <td style="text-align: left; vertical-align: middle; width: 50%">
+ Bacula, the Network Backup Tool for Linux, Unix, Mac and Windows.
+ </td>
+ <td style="text-align: left; vertical-align: middle">
+ <img alt="English" src="images/english-flag.jpg">
+
+ <a href='/fr'>
+ <img alt="Français" src="images/french-flag.jpg">
+ </a>
+ <a href='/de'>
+ <img alt="Deutsch" src="images/german-flag.jpg">
+ </a>
+
+ </td>
+ <FORM method=GET target="_blank" action=http://www.google.com/search>
+ <td style="text-align: right; vertical-align: middle">
+ <INPUT id="text" class="searchBar" type="text" name="q" size=20
+ maxlength=255 value="">
+ <INPUT id="button" class="searchBar" type="submit" name="sa" VALUE="Search">
+ <input type="hidden" name="domains" value="www.bacula.org">
+ <input type="hidden" name="sitesearch" value="www.bacula.org">
+ </td>
+ </FORM>
+ </tr>
+ </table>
+ </div>
+
+ <!-- Logo Bar -->
+ <div class="pageLogo">
+ <table class="pageLogo">
+ <tr>
+ <td style="text-align: left; vertical-align: middle">
+ <img alt="Bacula Logo" src="images/bacu_logo-red.jpg">
+ </td>
+ </tr>
+ </table>
+ </div>
+
+ <!-- User Bar - if logged in -->
+ <?
+ if($_SESSION['logged_in']) {
+ printf('<div class="userBar">');
+ printf('Welcome %s, <a style="color: white; text-decoration: none" href="/?page=logout">logout here</a>.', $_SESSION['user']);
+ printf('</div>');
+ }
+ ?>
+
+ <!-- Menu Left -->
+ <div class="menuLeft">
+
+ <!-- General -->
+ <div class="menuHead"> General </div>
+ <div class="menuItem">
+ <ul class="menuitem">
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=news"> News </a></li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=home"> Bacula Home </a></li>
+ <li class="menuItem"> <a href="dev-manual/What_is_Bacula.html"> What is Bacula? </a> </li>
+ <li class="menuItem"> <a href="dev-manual/Current_State_Bacula.html"> Current State of Bacula </a> </li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=testimonials"> Testimonials</a> </li>
+ <li class="menuItem"> <a href="http://sourceforge.net/projects/bacula"> SF Project Page </a> </li>
+ <li class="menuItem"> <a href="dev-manual/System_Requirements.html"> Requirements </a> </li>
+ <li class="menuItem"> <a href="dev-manual/Supported_Operating_Systems.html"> Operating Systems </a> </li>
+ <li class="menuItem"> <a href="dev-manual/Supported_Tape_Drives.html"> Tapedrives </a> </li>
+ <li class="menuItem"> <a href="dev-manual/Supported_Autochangers.html"> Autochangers </a> </li>
+ <li class="menuItem"> <a href="dev-manual/Bacula_Copyri_Tradem_Licens.html"> License </a> </li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=fsfe"> FSFE License </a></li>
+ </ul>
+ </div>
+
+ <!-- Documentation -->
+ <!-- files need a version -->
+ <div class="menuHead"> Documentation </div>
+ <div class="menuItem">
+ <ul class="menuitem">
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=documentation"> Documentation </a></li>
+ <li class="menuItem"> <a href="http://wiki.bacula.org">Wiki </a></li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=presentations"> Presentations </a></li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=presskits"> Press Kits </a></li>
+ </ul>
+ </div>
+
+ <!-- Downloads -->
+ <div class="menuHead"> Downloads </div>
+ <div class="menuItem">
+ <ul class="menuitem">
+ <li class="menuItem"> <a href="http://sourceforge.net/project/showfiles.php?group_id=50727"> Current Files </a> </li>
+ <li class="menuItem"> <a href="http://sourceforge.net/project/showfiles.php?group_id=50727#files"> All Files </a> </li>
+ <li class="menuItem"> <a href="http://sourceforge.net/svn/?group_id=50727"> SVN Repository </a> </li>
+ </ul>
+ </div>
+
+ <!-- Support -->
+ <div class="menuHead"> Support </div>
+ <div class="menuItem">
+ <ul class="menuitem">
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=support"> Getting Support </a> </li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=maillists"> Email Lists </a> </li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=bugs"> Bug Reports </a> </li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=professional"> Professional </a></li>
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=feature-request"> Feature Requests </a></li>
+ </ul>
+ </div>
+
+ <!-- Projects -->
+ <div class="menuHead"> Projects </div>
+ <div class="menuItem">
+ <ul class="menuitem">
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=projects"> Projects </a> </li>
+ <!--
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=vote"> Project Vote </a> </li>
+ -->
+ </ul>
+ </div>
+
+ <div class="menuHead"> Donations </div>
+ <div class="menuItem">
+ <ul class="menuitem">
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=makedonation"> Make a Donation </a> </li>
+ <!--
+ <li class="menuItem"> <a href="<? echo $spath ?>/?page=donations"> Donations Received </a> </li>
+ -->
+ </ul>
+ </div>
+ <div class="menuHead">
+ <div class="icons">
+ <a href="http://www.ukfast.net"><img src="images/bacula_ukfast_logo.gif" alt="www.ukfast.net"></a>
+ <!-- a href="http://validator.w3.org/check?uri=referer"><img src="images/valid-xhtml10.png" alt="valix w3c logo"></a -->
+ <!-- a href="http://jigsaw.w3.org/css-validator/validator?uri=<? echo $_SERVER['HTTP_REFERER']; ?>"><img src="images/vcss.png" alt="valid css logo"></a-->
+ </div>
+
+
+ </div>
+
+ </div>
+
+ <div class="pageTopRight">
+ It comes by night and sucks the vital essence from your computers.
+ </div>
+
+ <div class="pageContent">
--- /dev/null
+<?
+
+/**
+ * load header, menu
+ *
+ */
+require_once("inc/header.php");
+
+
+/**
+ * load content
+ *
+ */
+if(is_file($page_current)) {
+ include_once($page_current);
+} else {
+ printf('
+
+ An <b>ERROR</b> occurred:<br>
+ <p class="error">
+ The page <b>%s</b> isn\'t available.
+ </p>', $page);
+}
+
+
+/**
+ * load footer
+ *
+ */
+require_once("inc/footer.php");
+
+?>
--- /dev/null
+Kern;;;9 Jan 2008;;20:30
+Bacula version BETA 2.2.8 Released
+Bacula version 2.2.8 source tar files as well as the Win32
+binaries are available in the bacula-beta and
+Win32-beta release areas of Source Forge
+
+Version BETA 2.2.8 is a bug fix to version 2.2.7:
+- It fixes bugs: 1036, 1033(doc), 1028, and possibly 1018 and 1032.
+ Bugs 1018 and 1032 involve problems with multiple-drive autochangers.
+;;;
+
+Kern;;;24 Dec 2007;;20:30
+Bacula version 2.2.7 Released
+Bacula version 2.2.7 source tar files as well as the Win32
+binaries are available in the Bacula release area of Source Forge
+
+Version 2.2.7 has several new features and several important bug fixes
+ since version 2.2.6:
+- It fixes bugs: 1009, 1022, 1024, 1019, 1012, 1021, 1020
+ 1007, 1008. For more details, please see the technotes-2.1 file.
+- Fixed a seg fault reported by Frank Sweetser that depended on
+ exact path lengths, but the problem was in bsnprintf.c
+- Double quoting include filenames (@xxx) in Bacula conf files is now
+ possible, thanks to a patch by Michael Stapelberg.
+- You can pipe input to include filenames (@|prog) by using a vertical
+ bar, thanks to the above patch.
+- A daylight savings time bug in the Win32 bsmpt was fixed by a patch from
+ Nerijus Baliunas.
+- Marc Cousins submitted a patch that permits building the PostgreSQL
+ driver with version 8.3.
+- The configure option --archivedir has been changed to --with-archivedir
+;;;
+Kern;;;9 Nov 2007;;15:25
+Bacula version 2.2.6 Released
+Bacula version 2.2.6 source tar files as well as the Win32
+binaries are available in the Bacula release area of Source Forge.
+
+This release is a minor fix upgrade to version 2.2.5,
+and we recommend that all users upgrade when they can.
+
+Version 2.2.6 is a minor bug fix realease to version 2.2.5
+- It fixes bugs: #1003, 942, 982, 990(response only), 991,
+ 993, 986, 976.
+ - Fix bat crash wen it cannot connect to Director.
+ - Fix joblist failure bug in bat.
+;;;
+Kern;;;9 Oct 2007;;15:25
+Bacula version 2.2.5 Released
+Despite the fact that the Release Notes are rather short, the bug
+fixes represent quite a lot of work:
+
+Version 2.2.5 is a major bug fix release to version 2.2.4
+- It fixes the following bugs: #961, 962, 963, 969, 968, 960,
+ 964, (possibly 935 and 903), 953, 953, 967, 966, 965, 954,
+ 957, 908, 958, and 955.
+- It also improves listing performance problems in bat pointed
+ out by Chris Howells.
+;;;
+Kern;;;29 Sept 2007;;20:30
+A serious data loss bug in Bacula version 2.2.4 found and fixed
+
+This bug was very elusive and time consuming to track down. It
+turned out to be a race condition that can lose the last one or
+two blocks of a Job, which can happen in rare cases only when
+running multiple simultaneous jobs when a volume fills and one
+Job finishes receiving the last data from the FD and at the same
+time a second job detects the end of the Volume. The bug was
+introduced in version 2.0.0 and did not exist in version 1.38.x.
+If the bug is triggered, the data is lost (not written to the
+Volume), and it can occur for any backup job of any level under
+the conditions noted above.
+
+The bug is reported in the bugs database as bug #964, and just
+this morning I found and tested a fix, which is attached as a patch
+to the bug report. The patch (2.2.4-lost-block.patch) is also
+uploaded to the bacula-patches 2.2.x release area. This bug may
+also be part of the problems reported in bug #935 and possibly
+#903.
+
+Also in the bacula-patches 2.2.x area, you will find other
+patches that fixes bugs #953, 966, 967, 965, 958, 908, and
+955. Please refer to bugs.bacula.org for the details.
+
+Though this bug quite serious (data loss), it should be rare.
+However, we recommend everyone to apply the patch.
+;;;
+Kern;;;2007/9/14;;;14:30
+Bacula version 2.2.4 Released
+
+This version of Bacula is a minor bug release to version 2.2.3.
+It contains the following fixes:
+
+- Possible fix for authorization problems bug #953.
+- Possible fix for bug #908.
+- Add waits to multiple exit detection code to try to force pid
+ file to always be deleted.
+- Restore good dev.tar.gz to rescue set appropriate binary property.
+ This fixes bug #950.
+- Fix seg fault in error exit of acquire_for_read after unsuccessfully
+ trying to switch drives by checking for blocking before unblocking.
+ Fixes bug #906.
+- Cancel storage daemon in all cases where FD reports error. This
+ should fix virtually all cases of bug #920 and will ensure that Devices
+ are released as soon as possible.
+- Fix error message that was clobbered when Dir tells SD it does not
+ have write permission on Volume. This should fix a minor point
+ in bug #942, but not the main problem.
+- Fix migration code to get correct Volume name with multiple volumes
+ by skipping |. Fixes bug #936.
+- Implement patch supplied by Landon to fix bug #944 where using
+ TLS with bconsole uses 99+% of the CPU.
+- Fix bug #946 about "bacula-dir -t" which doesn't works
+ as expected.
+- Using "m" in bconsole will show messages as in prior versions
+ and not memory usage.
+
+- Note, you need GTK >= 2.10 to be able to link the Tray Monitor
+ program.
+;;;
+Kern;;;2007/9/9;;;14:30
+I regret to announce that there is a rather serious bug in Bacula.
+
+Bacula bug #935 reports that during a restore, a large number of files are
+missing and thus not restored. This is really quite surprising because we
+have a fairly extensive regression test suite that explicitly tests for this
+kind of problem many times.
+
+Despite our testing, there is indeed a bug in Bacula that has the following
+characteristics:
+
+1. It happens only when multiple simultaneous Jobs are run (regardless of
+whether or not data spooling is enabled), and happens only when the
+Storage daemon is changing from one Volume to another -- i.e. the
+backups span multiple volumes, and it only happens for Jobs writing
+to the same volume.
+
+2. It has only been observed on disk based backup, but not on tape.
+
+3. Under the right circumstances (timing), it could and probably does happen
+on tape backups.
+
+4. It seems to be timing dependent, and requires multiple clients to
+reproduce, although under the right circumstances, it should be reproducible
+with a single client doing multiple simultaneous backups.
+
+5. Analysis indicates that it happens most often when the clients are slow
+(e.g. doing Incremental backups).
+
+6. It has been verified to exist in versions 2.0.x and 2.2.x.
+
+7. It should also be in version 1.38, but could not be reproduced in testing,
+perhaps due to timing considerations or the fact that the test FD daemons
+were version 2.2.2.
+
+8. The data is correctly stored on the Volume, but incorrect index (JobMedia)
+records are stored in the database. (the JobMedia record generated during
+the Volume change contains the index of the new Volume rather than the
+previous Volume). This will be described in more detail below.
+
+9. You can prevent the problem from occurring by either turning off multiple
+simultaneous Jobs or by ensuring that while running multiple simultaneous
+Jobs that those Jobs do not span Volumes. E.g. you could manually mark
+Volumes as full when they are sufficiently large.
+
+10. If you are not running multiple simultaneous Jobs, you will not be
+affected by this bug.
+
+11. If you are running multiple simultaneous Jobs to tapes, I believe there is
+a reasonable probability that this problem could show up when Jobs are split
+across tapes.
+
+12. If you are running multiple simultaneous Jobs to disks, I believe there is
+a high probability that this problem will show up when Jobs are split across
+disks Volumes.
+
+13. The bug concerns only the Storage daemon so there is no need to update
+the clients, though I do recommend updating the Director when installing
+an updated Storage daemon.
+
+I have uploaded patches to bug #935 (bugs.bacula.org) that will correct
+version 2.2.0, 2.2.1, and 2.2.2. The patch has been tested only on version
+2.2.2 and passes all regression tests as well as the specific test that
+reproduced the problem.
+
+The patch has now been confirmed to fix the problem reported, and Bacula
+version 2.2.3 has been released to Source Forge.
+
+For the technical details of the bug, please see:
+
+ http://www.bacula.org/downloads/bug-935.txt
+
+;;;
+
+Kern;;;2007/8/11;;;14:30
+
+Bacula Version 2.2.0 has been released to Source Forge.
+
+ Release Notes for Bacula 2.2.0
+
+ Bacula code: Total files = 520 Total lines = 195,550 (*.h *.c *.in)
+ 82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3
+
+This Director and Storage daemon must be upgraded at the same time,
+but they should be compatible with all 2.0.x File daemons, unless you
+use some of the new features that affect the FD. In other words, you should
+not have to upgrade all your File daemons when you upgrade. There is
+no database upgrade needed from version 2.0.x to 2.2.0.
+
+Areas requiring caution or testing:
+- You must have the thread safe version of MySQL client libraries loaded
+ to build with MySQL enabled.
+- Volumes are pruned only when absolutely necessary -- this may cause
+ your database to grow compared to prior Bacula versions.
+- Solaris door and even port files are no longer restored (equivalent
+ to what we do with sockets).
+- SQLite is no longer supported for Solaris -- it fails too often with
+ bus errors. SQLite3 should work on Solaris.
+- The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'.
+ This makes it run 30 times faster, but increases the possiblity
+ of a corrupted database if your server shuts down unexpectedly.
+ The default behavior can be changed in src/version.h
+- Restore on Win32, and in particular on Vista is untested. Please
+ test before relying on it. It should backup and restore reparse
+ points.
+- Win32 servers are untested, and very likely not to work.
+
+The major new features are:
+- Much faster insertion of attributes (somewhere around 10 times),
+ many thanks to Eric Bollengier and Marc Cousin.
+- First release of bat (Bacula Administration Tool). Note to build
+ bat you must explicitly enable it on the ./configure line, you
+ must have the Qt4 version 4.2 or later libraries loaded, the qwt
+ (Qt Graphics) package loaded, and qmake and the other Qt4 tools
+ must be available. Most of the implementation was done by Dirk Bartley.
+- Red/Black restore in memory tree (500 times faster loading).
+- The Regex Where code to allow easier relocation of restored files
+ thanks to Eric.
+- Socket level heartbeat for all connections (untested).
+- posix_fadvise() use in the FD to improve performance reduces
+ swapping due to opening/reading lots of files. Win32 equivalent
+ implemented.
+- Much improved Volume reservation code that should eliminate most
+ conflicts experienced in multiple drive autochangers.
+- Simpler locking in the SD in the reservation system.
+- Detection of file size/date change during backup if enabled.
+- New Recycle Pool feature -- thanks to Eric.
+- Efficient implementation of very large include/exclude lists.
+- Volumes are no longer pruned during 'status dir'
+- Pruning is now more efficient, and if a Volume is purged,
+ during pruning, it is immediately discovered.
+- License is now GPL v2 without modifications, fix a few copyright
+ mistakes made when adding FSFE copyright notice.
+
+New ./configure options:
+- --enable-bwx-console
+- --enable-bat
+- --with-qwt=
+- --with-db-name=
+- --with-db-user=
+- --enable-batch-insert
+
+New bconsole commands:
+- exec
+- memory
+- update recyclepool
+- .sql
+- .api
+- .pwd (in restore tree)
+- restoreclient (keyword)
+- backupclient (keyword)
+- regexwhere (keyword)
+- update jobid (new command)
+- recyclepool (keyword)
+
+New directives:
+- Heartbeat Interval (bconsole.conf)
+- Heartbeat Interval (bacula-dir.conf in Director, Client, Storage)
+- TLS Allowed CN (bacula-dir.conf in Client)
+- Regex Where (bacula-dir.conf in Job)
+- Strip Prefix (bacula-dir.conf in Job)
+- Add Prefix (bacula-dir.conf in Job)
+- Add Suffex (bacula-dir.conf in Job)
+- Recycle Pool (bacula-dir.conf in Pool)
+- FailJobOnError (bacula-dir.conf in RunScript)
+- CheckFileChanges (bacula-dir.conf in FileSet)
+- StripPath (bacula-dir.conf in FileSet)
+
+Other features or bug fixes:
+- Fixed bugs: 916, 910, 917, 914, 906, 907,
+ 842, 830, 893, 861, 888, 886, 807, 877, 872
+ 885, 887, 864, 874, 882, 881, 863, 859,
+ 856, 854, 845, 847, 846, 809, 772,
+ 822, 825, 824, 808, 802, 797, 798, 795, 789, 791,
+ 788, 780, 763, 782, 612, 767, 775, 621, 772, 764,
+ 766, 621, 761, 755, 750, 741, 747, 742, 744, and 743.
+- Configure bat with --enable-bat. Define qwt libraries with
+ --with-qwt=<dir>. See Installation chapter of manual for details.
+- Create a depkgs-qt package that has both Qt4 and qwt, which are
+ needed to build bat. Most modern Linux systems will have both
+ these packages in the distro.
+- Storage overrides delete all previous storage definitions instead
+ of prepending.
+- One should be able to mount and unmount removable devices if the
+ Device resource has Removeable Media set and the mount and unmount
+ directives are defined.
+- ./configure will do a better job of searching for qwt libraries.
+- The Win32 version can no longer be shutdown from the tray monitor.
+ Use the command line or the Services panne.
+- Keep prune_volumes() from pruning the whole Scratch pool.
+- More debug output in status storage.
+- Correct moving a Scratch volume from pool to pool (some
+ critical columns were lost).
+- Different locking in reservations and despooling systems,
+ which means more micro-locking and less macro-locking, which
+ should give a lot more concurrency at the expense of slightly
+ (<0.1%) more overhead due to more locking/unlocking, but
+ concurrent jobs should run much faster.
+- Additional drive reservation algorithm that should solve a lot of
+ the problems experienced with multiple drive autochangers.
+- Storage daemon status command enhanced to more clearly show Volume,
+ pool and media type when a job is waiting.
+- Made bsmtp work with more strict SMTP servers.
+- Detect doubly freed buffers in smartall.c
+- wx-console renamed to bwx-console (Fedora request)
+- gnome-console renamed to bgnome-console (Fedora request)
+- Migration preserves original job's FileSetId
+- Spooling implemented for migration jobs.
+- Config files can be read through a pipe, by specifying a leading |
+ in front of the configuration path/filename.
+- New memory command (bconsole) that will print the current Director's
+ memory usage, and an in use buffer dump.
+- Console name changed from *Console* to -Console- to accomodate Win32
+ filename restrictions.
+- Corrected the Win32 ftruncate bug.
+- Additional version information added to Job reports.
+- New -8 option for bsmtp to specify UTF-8 encoding type.
+- bsmtp will no longer add < > to target (from, to, cc) if there
+ is already a < in the target.
+- Prefer Mounted Volumes extended to mean a volume that is being
+ mounted by another job.
+- Runscript timing set to same as version 1.38.11
+- New TLS Allowed CN directive(s) permitted.
+- New bconsole 'exec' command to run external script/command.
+- Turn on FreeBSD/OpenBSD code to set EOT model on tape.
+- Drop from root done before database is opened.
+- Database user and name can be configured with:
+ --with-db-name=name --with-db-user=user
+- Turn on wait_for_drive in mtx-changer script.
+- Rework how bar codes are handled in mtx-changer script.
+ This appears to have been an unreported bug.
+- Updated nagios plugin supplied by Christian Masopust
+- Better restricted console ACL checking.
+- New Client Connect Wait directive in Storage daemon so that
+ users can configure how long SD waits for FD connection.
+- Bacula will no longer permit pruning of the currently running
+ job (note, if other jobs are running, they may be pruned).
+- Sockets are no longer restored.
+- dbcheck works in 300K chunks so will typically run faster.
+- Include/Exclude lists can now be efficiently handled for quite
+ large sizes -- tens of thousands of entries.
+- Several memory leaks in migration and database usage were fixed.
+- New console keyword restoreclient, which specifies the client to
+ which the restore will be sent. The client keyword specifies
+ the backup client. The restoreclient keyword is optional if it is
+ not specified, the backup client will also be the restore client.
+- The disk file size is now checked to ensure that it agrees with the
+ catalog value before Bacula will append to the disk (same as tape
+ and DVD).
+
+;;;
+
+Kern;;;2007/3/6;;;14:30
+
+Bacula Version 2.0.3 has been released to Source Forge.
+This is a bug fix release to version 2.0.2. If you are upgrading from
+a version older than 2.0.0, please be sure to read the important notes
+below.
+
+Also, please check the patches directory in the current SVN or the
+patches release section on Source Forge for important bug fixes to
+this version.
+
+5Mar07
+kes File migrate bug with Pool Occupancy using mediaid instead
+ of jobids. Fixes bug #795.
+kes Fix orphaned buffers in filed backup and verify due to
+ crypto buffers not freed during errors. Fixes bug #789.
+04Mar07
+kes Add smartctl call to bacula-sd.conf as an example of getting
+ tape alert info.
+02Mar07
+kes Add Client Connect Wait to Storage daemon to permit users to
+ modify the time the SD waits for a FD connection.
+28Feb07
+kes Apply Command ACL filter to JobId list in restore command.
+kes Correct typeo in var.c patch.
+27Feb07
+kes Don't let Bacula prune File or Job records for the current Job.
+kes Fix variable substitution pad + inc bug reported (with patch)
+ in bug #791.
+26Feb07
+kes Correct SQLite log table index as reported by Luca Berra.
+24Feb07
+ebl Fix FIFO stuff, bacula tries to rewind the FIFO... Thanks to Andreas
+22Feb07
+kes Fix a few places in lib/message.c where the open fd may
+ not be zeroed.
+21Feb07
+kes Add LANG=C to autoconf/randpass so it works with languages other
+ than English. Fixes bug #788.
+20Feb07
+ebl Revert ClientRunBeforeJob as it was in 1.38.x
+ This fixes bug #780
+ You will not be able to generate Include/Exclude list any more.
+ If you want to use this, you can apply
+ trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
+19Feb07
+kes Restore of sockets created false error messages because Bacula
+ no longer restores sockets, but the code was still trying to
+ set the attributes on a non-existent file. Reported by a user.
+16Feb07
+kes Fix encryption deblocking bug, which caused some restored files
+ to be truncated. This fixes bug #763. This is a CRITICAL bug fix.
+kes Add FD event sequence order prepared by Eric -- for RunScripts.
+kes Fix 12am/pm bug as reported in bug #782.
+15Feb07
+kes Add quick disconnect FD code from 2.1.4 to 2.0.3. This code
+ causes the SD to release the FD as soon as the FD has sent
+ all the data to the SD. After that the SD will do any final
+ despooling (data and attributes) that are necessary. This
+ allows laptops to disconnect much quicker from the network
+ after a backup.
+13Feb07
+kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
+11Feb07
+kes Optimize the use of the database a bit in the Status dir command.
+ Only open it when needed, ensure that if any previous database
+ was opened, it is closed.
+10Feb07
+kes Modify dbcheck to handle orphaned JobMedia, Path, Filename,
+ and File records in 300K chunks to be more efficient. This
+ idea came from Juan Luis Frances (if I remember right).
+09Feb07
+kes Update projects list.
+08Feb07
+kes Fix dird/ua_cmds.c so that a cancel command checks if the
+ console is authorized to cancel the job. This fixes bug
+ #767.
+kes Modify SD so that the VolCatJobs medium record is updated
+ at the beginning of a Job rather than the end. This
+ fixes bug #775 where exceeding MaxVolJobs caused jobs
+ to fail.
+kes Added a mutex around getting and setting Volume information
+ so that multiple simultaneous jobs will single thread.
+07Feb07
+ Switch to using Subversion
+kes Remove src/pygtk-console/ from configure
+06Feb07
+kes Delete src/lib/btree.c from win32 build, then add rblist.c
+ plus the entrypoints.
+kes Apply patch supplied that corrects debug print
+ in canceling jobs for max run time. Supplied as
+ part of bug #621, which was previously fixed.
+05Feb07
+kes Test on job_canceled() and sd_msg_thread_done inside
+ loop starting the message thread to avoid a race condition.
+ Fixes bug #771.
+kes Remove rl_catch_signal from console.c as it conflicted
+ with the header definition. Fixes bug #765.
+ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
+04Feb07
+kes Clarify some stored/acquire messages to indicate if the
+ problem is with read or append.
+02Feb07
+kes Fix memory leak with storage ids in cats/sql_get.c
+kes Terminate watchdog earlier to avoid reference to released
+ memory -- reported by Jason Austin.
+kes Move closing the database from jobq.c to the director daemon
+ termination routine. This fixes memory leaks for shadow jobs
+ (i.e. migration jobs).
+kes Free up the unique jobid chain items in migrate.c. This fixes
+ a memory leak problem.
+kes Convert some ugly looking for statements to use foreach_alist
+ in findlib/find.c. This will facilitate converting the structures
+ to use dlist (for large include/exclude lists).
+kes Fix a bug in the btree.c and btree.h routines, then rename them
+ rblist and add them to be built in src/lib. Include some new
+ methods written by Rudolf Cejka that make the code more readable
+ (hides some of the ugly casting).
+26Jan07 (back port)
+kes Implement item #12 on project list -- quick release of FD by
+ the SD. This is noted in more detail above.
+
+;;;
+
+Kern;;;2007/1/28;;;14:30
+
+Bacula Version 2.0.2 released:
+28Jan08
+kes Fix maxruntime bug #621.
+27Jan07
+kes Get current main CVS .specs for RedHat, SuSE, Mandrake.
+26Jan07
+ebl Implement the include JobID in spool file name project.
+kes Reorder projects file in order determined by Jan 2007 vote.
+kes Fix open of SQLite3 db where user does not have write permission
+ so that DIR does not crash. Fixes bug #761.
+25Jan07
+kes Change 'Device not configured to autolabel' from INFO
+ to WARNING.
+kes Fix jobq.c to restart failed jobs when Reschedule Times = 0
+ which should restart an indefinite # of times.
+kes Fix configure --help to print --with-mysql[=DIR]. Same for
+ other DIR specifications.
+23Jan07
+rn Fix msvc build problems. Fix bacula.dll exports for msvc build.
+ Fix path quoting in SQLite scripts.
+ Fix problems with SHGetFolderPath.
+19Jan07
+kes Create patches/2.0.1-restart.patch. Fixes bug #755.
+18Jan07
+kes Fix Job restart on error bug that promotes an Inc to a Full
+ backup. This should fix bug #755.
+kes Add qt-console and first cut of code.
+
+;;;
+
+Kern;;;2007/1/13;;;14:30
+
+Bacula Version 2.0.1 has been released to Source Forge.
+This is bug fix update to version 2.0.0 and contains
+the following fixes:
+
+- Fix Bacula->Documentation link on Win32 to point to index.html
+ instead of bacula.html. Fixed bug #750.
+- Return JobId in db_get_job_record() when JobId==0. This should
+ fix bug #741.
+- Do not release source pointers when restarting a failed job.
+- Add dynamic dll entry point for SHGetFolderPath to Win32 code.
+ This *should* fix bug #747.
+- Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
+ bug #742.
+- Modify USTORE constructor to set an empty store_source string,
+ and don't copy the store_source string in a cancel. Hopefully
+ this will fix Arno's seg fault, bug #744.
+- Add back code to disable conio in configure. Fixes bug #743.
+- Correct the Options scanner in the FD to correctly handle
+ SHA1 option, which was eating the next option. Reported by
+ Sebastien Guilbaud.
+- Add code to indicate when the SD is spooling, spool wait, and
+ despooling as requested by Alan Brown.
+
+;;;
+
+Kern;;;2007/1/4;;;14:30
+
+Bacula Version 2.0.0 has been released to Source Forge.
+
+There is an English Press Kit, written by Dan Langille at:
+
+ http://www.bacula.org/about/press/presskit200.html.en
+
+and a German version, translated by Arno Lehmann at:
+
+ http://www.bacula.org/about/press/presskit200.html.de
+
+;;;
+
+Kern;;;2007/1/4;;;14:31
+
+ Release Notes for Bacula 2.0.0
+
+ Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in)
+
+==== IMPORTANT Catalog update required =====
+- The database format has been updated from what was used in
+ Bacula 1.38.x. You must manually update your database before
+ running Bacula 1.39.x or higher. If you are using Bacula supplied
+ RPMs this is not necessary as the RPM does it automatically.
+ Please backup your previous version of the database before
+ running the update. The update script will be automatically
+ installed in your scripts directory, or can also be found in
+ <bacula-source>/src/cats. It is called:
+
+ ./update_bacula_tables
+
+ It is necessary to run it only once the first time you move to
+ a 2.0.0. Upgrading the Bacula version thereafter does not
+ require updating the database again. Depending on the size of
+ your database the script make take a bit of time, to run, but
+ in general, it should be very fast.
+
+==== IMPORTANT new Win32 install procedure =====
+ For Win32 migrations from versions prior to 1.39.0 nothing special
+ needs to be done to upgrade. Everything should be taken care of
+ automatically. The only thing not done is to delete the old C:\bacula
+ directory mostly out of paranoia.
+
+==== IMPORTANT miscellaneous ====
+- The Gnome console program (gconsole) no longer functions as it
+ should.More importantly, in restore mode, the restore tree is
+ no longer shown in the left pane. I suspect this is due to
+ incompatible changes in the GTK+ API, and hence have given up
+ on gnome and gtk+, as this has already happened several times
+ previously. At some point there will be a new GUI console.
+- The bacula-dir.conf directive Accept Any Volume has been
+ removed because it was never implemented. You must delete all
+ occurrence of this directive for the Director to run. The Storage
+ daemon will automatically accept any valid Volume that you mount.
+- The --mandir ./configure option now points to the top level man
+ directory. The man files will be installed under mandir/man8 and
+ mandir/man1 as appropriate.
+- You *should* be able to use 1.38.x FDs with version 2.0.0 Director
+ and SD providing you do not use any of the new features (runscript,
+ data encryption). It seems to work here, but we do not guarantee it.
+- Your Director and SD must be simultaneously upgraded.
+- The restore command no longer uses the MediaType as the primary method
+ of finding a suitable Storage device. Normally it will select the last
+ device used to write a Volume. If no storage device is defined, it
+ will use the old algorithm which selects the first Storage resource
+ with the correct MediaType.
+- The MD5/SHA1 hash codes kept in the database are now kept in a binary
+ format compatible with the rest of the world. If you are running verify
+ jobs, you *must* do an InitCatalog or all files will show an MD5
+ difference. Also, authentication uses the new algorithm by
+ default, but *should* accept connections from older components (FD) using
+ the old non-compatible algorithm. This has been tested, but more
+ more testing is still needed.
+- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses
+ the tape drive. Workaround, load the SuSE 10.1 version 2.6.16.21-0.25
+ kernel or later. The SuSE 10.2 Alpha 5 or later kernel also works.
+ This problem may also be present in certain Fedora FC5 kernels.
+- If you have been using the data encryption feature of 1.39.x, please
+ be aware that certain combinations of encryption and other options
+ with version 1.39.0 through 1.39.26 created Volume data that cannot
+ be restored. We strongly recommend that anyone using encryption
+ carefully review his/her backups and at a minium do a Full backup
+ with 1.39.28 of all encrypted data. Robert Nelson has identified
+ and fixed it as follows:
+ As of 1.39.27:
+ No filters = Works fine
+ Sparse = Works fine
+ Compression = Works fine
+ Encryption = Works fine
+ Sparse + Compression = Works fine
+
+ Sparse + Encryption = Restore broken
+ Sparse + Compression + Encryption = Restore broken
+ Compression + Encryption = Restore broken
+
+ As of 1.39.28:
+ Most combinations work, but some encrypted files are
+ not properly restored.
+
+ As of 1.39.30:
+ All combinations work fine except Sparse+Encryption.
+
+ Bottom line, if you are using data encryption, please test restoring
+ data to be sure it all works correctly.
+- The current Volume format written by 1.39.22 is different from
+ the format written by previous versions. The two formats
+ are not compatible. Thus any DVDs written prior to 1.39.22 will
+ be unreadable by version 1.39.22.
+- If you previously run a Bacula version prior to 1.39.30, the JobMedia
+ data may not be correct for disk Volumes. This can cause incorrect
+ seeking in versions after 1.39.30. If you experience what appears to
+ be data I/O or integrity errors during restores, please add the
+ following directive to your disk DEVICE resource in the Storage
+ daemon conf file:
+
+ Block Positioning = no
+
+ This will turn off all seek requests during restores and avoid
+ this problem.
+- VSS for Windows clients is now enabled by default.
+- Do not unload autochanger when doing "update slots"
+- Implement mount command for autochanger, see manual.
+
+New Features in 2.0.0:
+- Turn on disk seek code for restores.
+- There is a partial but reasonable translation of the Bacula
+ messages for French. To install it, first configure and build
+ Bacula, then as root run:
+
+ cd <bacula-source>/po
+ make install
+
+ If you have your locale set properly you will get the translated
+ messages.
+- Bacula now support Migration jobs that are documented in a new
+ Migration chapter in the manual
+ http://www.bacula.org/dev-manual/Migration.html
+- Data encryption is now implemented and is documented in
+ a new chapter of the manual at:
+ http://www.bacula.org/dev-manual/Bacula_Data_Encryption.html
+- Additional support for removable devices. See the
+ Requires Mount, Mount Point, Mount Command, and Unmount
+ Commands in the Storage daemon configuration chapter:
+ http://www.bacula.org/dev-manual/Storage_Daemon_Configuratio.html
+ Also see the Edit Codes for Mount and Unmount Directives in the
+ same chapter.
+- Switch the Win32 build from using Microsoft C++ to using mingw32
+ cross-compiling. The initial work was done by Howard Thomson,
+ then tweaked by me. Robert Nelson then totally reworked the
+ cross-compiling code so that it not only cross-compiles, but
+ also compiles on Visual Studio, and at the same time, he added
+ all the current Unix features to the FD, such as selection on
+ drives, encryption support, building *all* the tools, ...
+- The Director and Storage daemon have now been ported to Win32.
+ This code is working but should still be tested carefully
+ before putting into production.
+- Bacula restore and bextract can now extract non-portable Win32 data to
+ any client (including Unix/Linux clients). Of course, in doing so,
+ the Microsoft specific permissions and ACLs will be lost. Thanks
+ to Thorsten Engel for this code.
+- The 260 character limitation for Win32 paths name lengths is now
+ eliminated thanks to Thorsten Engel. However, if you are using
+ Volume Shadow Copy, please be careful to specify all the paths
+ in the bacula-fd.conf file using a full path notation including
+ the drive letter.
+- Eric Bollengier wrote new RunScript directives that includes
+ the old RunBefore/AfterJob and ClientRunBefore/AfterJob features
+ plus a *lot* more, allowing you to control just about every aspect
+ of running scripts. See the manual for detailed documentation.
+ http://www.bacula.org/dev-manual/Configuring_Director.html#5227
+- SunOS ACLs should now work thanks to a patch from David Duchscher.
+- Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at
+ If this patch is applied, the number of days can be specified with
+ "list nextvol days=xx"
+ or
+ "status dir days=xx"
+ This can be used to preview the next scheduled job (and the
+ next tape to be used) on Fridays if there are no scheduled jobs during
+ the weekend.
+- From Eric Bollengier. One can now using the bconsole wait command do:
+ wait (wait for all jobs to stop)
+ wait jobid=nn
+ wait jobuid=unique id
+ wait job=job-name
+- Volumes can now be set to Enable, Disable, or Archive. If they
+ are not enabled, Volumes will not be mounted.
+ Implement update volume enable=(on|off|true|false|archived|0|1|2)
+- Add Catalog message destination in Messages resource that puts the
+ job report in the Log database table.
+- Writing/reading DVD Volumes is much more stable -- to the point
+ of being useful. Thanks to Richard Mortimer.
+- Add enable/disable job=<job-name>. This command prevents
+ the specified job from being scheduled. Even when disabled,
+ the job can be manually started from the console.
+- The database Id records should be 32/64 bit independent now. 64 bits
+ can be enabled by changing one define and changing the appropriate
+ table variable. Normally, you need 64 bits only for FileId.
+- Relative path specifications (i.e. ../xxx) are now permitted in
+ the restore cd command.
+- When running multiple simultaneous jobs, most jobs that use spooling
+ will now finish faster due to a mutex optimization made by Eric
+ Bollengier.
+- Conf files containing UTF-8 marker at the head of the file as well as
+ conf files containing Window cr/lf and Mac cr line termination characters
+ are now accepted thanks to Robert Nelson.
+- Windows tray status windows are scrollable and resizable.
+- Win32 external script execution is much more flexible -- handles
+ spaces in names better, ...
+- Lots of DVD fixes -- writing DVDs is now reported to work.
+- Fix opening of database in a restricted console to respect
+ any Catalog ACL.
+- Much better automatic handling of multiple database catalogs in
+ the restore command.
+- Permit multiple console/director resources in bconsole.conf.
+ patch from Carsten Paeth calle@calle.in-berlin.de
+- Character substitution in Job/JobDefs WriteBootStrap.
+ from Eric Bollengier.
+- Apply patch supplied in bug #656 to pass priority field
+ in the run dialog to the Director in gnome console.
+- Add support of encrypted data stream to bscan from Eric.
+ display data_len instead of data content (may be binary).
+- Add Enabled=xxx on update slots command.
+- Add host:port to connect failure messages to FD and SD from Dir/
+- Add WhereACL to console ACL list. If nothing is specified, only
+ the default is permitted for restore. Otherwise, *all* allows any
+ path, or you can specify permitted paths. This should allow control
+ over where users can restore files. This is untested.
+- Install man pages with 'make install'.
+- Add Media.Enabled flag to client backups for dotcmds.c
+- Enforce Media.Enabled=1 for a current restore to work
+- Require restore case 3 to have sqlquery permission to work.
+- Add -n option to bconsole to turn off conio -- used in bweb.
+- The bytes field in the terminated jobs part of the status
+ command now reports in KB, MB, ... units.
+- When not descending into a directory, print the File= name that
+ triggered it -- makes why not descending a bit clearer
+- Do not unload autochanger when doing "update slots"
+- Implement mount command for autochanger
+- Fix bug #462 incorrect error message printed when client script called
+ from File= was not found.
+- Fix bug #558 (waiting for feedback) where Bacula needs too much time to
+ do a rewind on Solaris when no tape is in the drive (Solaris does not
+ have the detailed errno found on Linux). Added Solaris specific code.
+ Note, this may apply to other OSes as well.
+- The examples directory has a new bacula_mail_summary.sh file that
+ creates a single email summary of any number of jobs. Submitted by
+ Andrew J. Millar.
+- Add nagios plugin to the examples directory. Submitted by
+ Christian Masopust.
+- Modify most restore error messages to be queued so that they
+ appear at the end of the job rather than mixed with the restore
+ listing where they could be "lost".
+- Apply patch supplied by user (slightly modified) to fix
+ correct detection of holes in block devices and FIFOs.
+ Bug # 506.
+- Added a report.pl program to the examples directory from Jonas Bjorklund.
+- Add two new queries to query.sql provided by Arno. One
+ list volumes known to the Storage device, and the other
+ lists volumes possibly needing replacement (error, ...).
+- Implement new code for changing userid and group at startup. This
+ should get Bacula into the correct groups.
+- Implement support for removable filesystems -- device type directive
+ and mount, unmount directives.
+- Transfer rates are now presented in a more readable format thanks
+ to a user submission.
+- SD is now aware of what volumes are mounted. More information is printed
+ in the Status report. You must take much more care now to unmount
+ devices prior to removing tapes that Bacula has open or prior to
+ changing a magazine. Don't forget to do a mount afterwards or the
+ device will be blocked.
+- The Pool Maximum Volumes directive is now respected in all places.
+- A Storage device can now be specified in a Pool resource. It will override
+ all other Storage specifications.
+- Most but not all directives accept true/false in place of yes/no.
+- A patch from Karl Hakimian that reads JobIds, FileIndexes
+ from a database table for restore.
+- There are a number of new tables. Some such as the Location table are
+ designed for user use in doing Volume Management software.
+- Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to
+ accept time qualifiers.
+- Implement jobuid to replace old usage of job in keywords as
+ suggested by Eric Bollengier.
+- Implement write variables for Python to set Priority (anytime), and
+ Job Level, only during JobInit event.
+- Use the keyword ujobid to mean the unique job id; job or jobname
+ to mean the Job name given on the Name directive, and jobid to
+ be the numeric (non-unique) job id.
+- Allow the SD to use multiple drives during a backup/restore (only
+ one at a time).
+- Integrate addition of line count limitation to bsmtp -l from
+ Sebastian Stark <stark at tuebingen.mpg.de>
+- Split the bacula start/start script into four files:
+ bacula -- starts and stops calling other scripts
+ bacula-ctl-dir -- starts/stops the director
+ bacula-ctl-fd -- starts/stops the File daemon
+ bacula-ctl-sd -- starts/stops the Storage daemon
+- Remove automatic case folding on Windows FDs. You must
+ explicitly use the 'Ignore Case = yes' option.
+- Implement wild program in tools directory for testing
+ wild-cards. Almost identical to the regex program.
+- Use the new bregex.c to implement Regex expressions on Win32.
+- Apply patch from Christopher Hull
+ - Allow multiple connections to database with different
+ parameters.
+ - Invalidate the scheduler when doing a reload. Fixes seg
+ fault, but still 60 second window.
+ - Additional info in Reschedule message.
+ - Use set_jcr_job_status() everywhere to prevent loss of
+ cancel, error.
+ - Display peer IP in FD if error from connecting DIR.
+ - Don't increment file count for DIRBEGIN.
+ - Replace illegal characters in Win32 filename by _.
+ - Add SE_CREATE_PERMANENT_NAME privilege in Win32.
+ - Hash hard link filenames rather than linked list (performance).
+ - Fix for security failure in chdir on Win32.
+ - Add CreateDirectoryA/W win32 API entry points.
+- programs to duplicate Bacula's base64 algorithm using standard
+ routines. This fixes bugs #296, and 565. Patch submitted by
+ author of bug #565.
+- Fixes to reloading the Dir conf file from Eric Bollengier and Christopher
+ Hull.
+- Modify LICENSE to correct some problems pointed out by Debian.
+- Apply a patch submitted by cesarb in bug #606 to implement O_NOATIME support.
+ O_NOATIME is a open() flag which makes it possible to read a file without
+ updating the inode atime (and also without the inode ctime update which
+ happens if you try to set the atime back to its previous value). It also
+ prevents a race condition when two programs are reading the same file, but
+ only one does not want to change the atime. It's most useful for backup
+ programs and file integrity checkers (and bacula can fit on both
+ categories).
+ You enable it in the Bacula FileSet Options resource by setting:
+ noatime = yes
+ The effect of this option is similar to the keepatime option except
+ it is more efficient and avoids modifying ctime.
+- Implement a pile of new man pages contributed by Jose Tallon.
+- Modify the database format for handling Migration jobs:
+ Add PriorJobId, RealEndTime to Job table
+ Delete MAC table
+ Remove Stripe from JobMedia record (not used, wasting space)
+ Add ScratchPoolId, RecyclePoolId, Enabled to Media record
+ Add Cost to Location table.
+ Enabled to Media table and Location table.
+- Security: harden authentication failure in FD by single threading errors
+ and forcing a 6 second wait.
+- If using GCC (actually g++) add the following compiler flags
+ -fno-strict-aliasing -fno-exceptions -fno-rtti
+- Turn on new bsnprintf() code. The reason for this code is to
+ eliminate the security problems associated with using the
+ system libraries print routines.
+- Implement job report that indicates where Storage and Pool
+ came from -- with overrides and Pool storage and NextPool,
+ it is all very complicated.
+- Add more detail (Storage, Device) to list of volumes printed
+ for restore.
+- Add new VOLMGMT message class. No messages are yet sent with this
+ class.
+- Improved Bacula rescue procedures -- see the Disaster Recovery
+ chapter of the manual
+- Add spooling/despooling info in status output of SD.
+- Add Comment field to llist of a volume.
+- Allow true/false in many but not all yes/no directives.
+- The Bacula source code is now copyrighted by the Free Software
+ Foundation Europe. The Developer's Guide documents the new procedures,
+ and the LICENSE file has been updated.
+- Apply Jaime Ventura's patch that implements the Messages resource
+ Mail On Success directive.
+- The Client returns its Version string, which is printed in the Job
+ report.
+- The Client returns whether or not VSS and Encryption are used, which
+ are printed in the Job report.
+
+Additional Features Added for Win32:
+- Added DriveType directive to the Director's Include Option FileSet
+ resource. Allowed values are: fixed, removable, cdrom, and remote. There
+ is only an implementation for Windows because it is the only platform that
+ has the concept of drives.
+
+- Adds EnhancedWild directive to the Director's Include Option FileSet
+ resource. Allowed values are: yes and no.
+
+ When EnhancedWild is enabled then the processing of the
+ Wild, WildDir and WildFile is changed in the following ways.
+
+ Patterns conform to Posix
+ \ is not a special character in character classification []
+ To match a - it must be the first or last character
+ To match a ] it must be the first character
+
+ fnmatch option FNM_FILE_NAME is specified * doesn't match a /
+ so it won't match multiple directory levels in a path
+
+- Relative WildFile patterns (ones without a leading /) match
+ against the filename portion. This in combination with the
+ FNM_FILE_NAME fnmatch() flag makes directives such as WildFile =
+ abc*.def work as expected.
+
+- Adds support for the shell's feature of brace expansion.
+
+ Here is an example where braces allow 24 lines to be expressed in 5.
+
+ # Exclude directories full of lots and lots of useless little files
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Cookies"
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Recent"
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/History"
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temp"
+ WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temporary Internet Files"
+
+;;;
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic">
+ Bug Reporting
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ Before reporting a bug, please be sure it is a bug and
+ not a request for support (see the Support tab to
+ the left).
+ <p>
+ Bacula now has a Mantis bug reporting system
+ implemented by Dan Langille and hosted on his computer. It is web based,
+ easy to use, and we recommend you give it a try. You can submit a bug
+ or review the list of open or closed bugs by visiting:
+
+<p style="text-align: center; font-size: 24px">
+ <a href="http://bugs.bacula.org">http://bugs.bacula.org</a>
+</p>
+
+To view the bug reports, you can login as user <b>anonymous</b> and
+password <b>anonymous</b>. The advantage of actually being subscribed
+is that you will be notified by email of any serious bugs and their
+resolution.
+
+To submit bug reports, you must create an account. You must also use a
+browser running a US ASCII code page or UTF-8. Some users running Win32
+IE with Windows Eastern European code pages have experienced problems
+interfacing with the system.
+
+<p>
+Most Bacula problems are questions of support, so if you are not
+sure if a problem you are having is a bug, see the support page
+on this site for links to the email lists. However, once you have
+determined that a problem is a bug, you must either submit a bug
+report to the bugs database or send an email to the bacula-devel
+list, otherwise it is possible that the developers will never know
+about your bug and thus it will not get fixed.
+
+You should expect two things to be slightly different in our Bugs
+handling than many other Open Source projects. First, we unfortunately
+cannot give support or handle feature requests via the bugs database,
+and second, we close bugs very quickly to avoid being overwhelmed.
+Please don't take this personally. If you want to add a note to the bug
+report after it is closed, you can do so by reopening the bug, adding a
+bug note, then closing the bug report again, or for really simple
+matters, you can send an email to the bacula-devel email list. If a
+developer closes a bug report and after everything considered, you are
+convinced there really *is* a bug and you have new information, you can
+always reopen the bug report.
+
+<h3>Information Needed in a Bug Report</h3>
+For us to respond to a bug report, we normally need the following
+as the minimum information, which you should enter into the appropriate
+fields of the bug reporting system:
+<ul>
+<li>Your operating system</li>
+<li>The version of Bacula you are using</li>
+<li>A <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">clear and concise</a> description of the problem</li>
+<li>If you say "it crashes", "it doesn't work" or something
+ similar, you should include some output from Bacula that shows this.</li>
+</ul>
+If you are having tape problems, please include:
+<ul>
+ <li>The kind of tape drive you have </li>
+ <li>Have you run the <b>btape</b> "test" command?</li>
+
+</ul>
+The first two of these items can be fulfilled by sending us a copy of
+your <b>config.out</b> file, which is in the main <b>Bacula</b> source
+directory after you have done your <b>./configure</b>.
+
+<p>In addition, we will sometimes need a copy of your Bacula
+configuration files (especially bacula-dir.conf). If you think it is a
+configuration problem, please don't hesitate to send them if
+necessary.</td>
+</tr>
+<tr>
+ <td style="font-size: 14px; padding: 0px 20px 0px 20px">
+ Please read that little Bug-Report-<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">HowTo</a> as well.
+ </td>
+</tr>
+
+</table>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+ <tr>
+ <td class="contentTopic">
+ Bacula Documentation
+ </td>
+ </tr>
+
+ <tr>
+ <td class="content">
+ <ul>
+ <li> <a href="dev-manual/Brief_Tutorial.html">Tutorial</a>
+ <br>(start here after installing Bacula)
+ </ul>
+ </td>
+ <td class="content">
+ <ul>
+ <li> <a href="<? echo $spath ?>/?page=news"> News </a>What's New in Bacula</a>
+ <br>(changes since the last major release)
+ </ul>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="content">
+ <ul>
+ <li> <a href="rel-manual/index.html" >HTML User's Manual</a>
+ <br>(released version of the User's Manual)<br></li>
+ <li> <a href="<? echo $spath ?>/rel-bacula.pdf">PDF User's Manual</a>
+ <br>(released version of the User's Manual)<br></li>
+ </ul>
+ </td>
+ <td class="content">
+ <ul>
+ <li> <a href="dev-manual/index.html" >HTML Development Manual</a>
+ <br>(User's manual for code under development)<br></li>
+ <li> <a href="<? echo $spath ?>/bacula.pdf">PDF Development Manual</a>
+ <br>(User's Manual for code under development)</li>
+ </ul>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="content">
+ <ul>
+ <li><a href="bacula-web/index.html">Bacula-web Guide</a>
+ <br>(Guide for the Bacula-web GUI application)</li>
+ </ul>
+ </td>
+
+ <td class="content">
+ <ul>
+ <li><a href="developers/index.html">HTML Developer's Guide</a>
+ <br>(Guide for Bacula developers)</li>
+ <li> <a href="<? echo $spath ?>/developers.pdf">PDF Developer's Guide</a>
+ <br>(Guide for Bacula developers)</li>
+ <li><a href="<? echo $spath ?>/FLA-bacula.en.pdf">PDF FLA</a>
+ <br>(Developer's Fiduciary License Agreement)</li>
+ </ul>
+ </td>
+ </tr>
+
+
+
+</table>
+ <p>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+
+<table width="100%">
+<tr>
+ <td class="contentTopic">
+ Donations Received
+ </td>
+</tr>
+</table>
+<table width="90%" align="center">
+<tr>
+ <td class="content">
+ <table class="news" style="width: 99%">
+<?
+
+$max_news = 5;
+$news_counter = 0;
+
+// read file into an array and revert that
+// revert cause array_pop always gets the last element
+//
+$file = "donations.txt";
+$lines = array_reverse(file($file)) or
+ die("No newsfile!");
+
+// as long as there are lines ...
+//
+while(count($lines) > 0 && $news_counter < $max_news) {
+ // next line
+ $line = array_pop($lines);
+
+ // start of news
+ if(eregi("^[a-z0-9]+;;;", $line)) {
+ // news header
+ list($author,$date,$time) = explode(";;;",$line);
+
+ // news subject
+ $subject = array_pop($lines);
+ printf('<tr><td class="newsHeader">%s</td></tr>', $subject);
+ printf('<tr><td class="newsContent"><pre class="newsContent">');
+
+ continue;
+ }
+
+ // end of news
+ if(eregi("^;;;", $line)) {
+ printf('</pre></td></tr>');
+ printf('<tr>');
+ printf('<td class="newsFooter">%s - %s, %s</td>', $date, $time, $author);
+ printf('</tr>');
+ printf('<tr><td><img src="images/spacer.gif" width="1px" height="15px"></td></tr>');
+ $news_counter++;
+ continue;
+ }
+
+ // news content
+ printf('%s', $line);
+}
+?>
+ </table>
+ </td>
+</tr>
+</table>
+<? require_once("inc/header.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic"> Feature Requests </td>
+</tr>
+<tr>
+ <td class="content">
+
+In the past, users informally submitted feature requests by email, and
+I (Kern) collected them, then once a version was released, I would publish the
+list for users to vote on.
+<p>
+Now that Bacula has become a bigger project, this process has been
+formalized a bit more. The main change is for users
+to carefully think about their feature, and submit it on a feature
+request form. A mostly empty form is shown below along with an
+example of an actual filled in form. A text copy of the form can
+be found in the <b>projects</b> file in the main source directory
+of the Bacula release. That file also contains a list of all the
+currently approved projects and their status.
+<p>
+The best time to submit a Feature Request is just after a release when
+I officially request feature requests for the next version. The worst
+time to submit a feature request is just prior to a new release (we are
+very busy at that time). To actually submit the Feature request,
+fill out the form, and submit it to both the bacula-users and
+the bacula-devel email lists. It will then be openly discussed.
+<p>
+Once the Feature Request has beeen adequately discussed, I will
+either reject it, approve it, or possibly request some
+modifications. If you plan to implement the feature or donate
+funds to have it implemented, this is important to note,
+otherwise, the feature, even if approved, may wait a long time
+for someone to implement it.
+<p>
+Once the Feature request is approved, I'll add it to the projects
+file, which contains a list of all open Feature Requests. The projects
+file is updated from time to time
+<p>
+The current (though possibly somewhat old) list of projects can also
+be found on the Web site by clicking on the Projects menu item.
+
+
+<h3>Feature Request Form</h3>
+<pre>
+Item n: One line summary ...
+ Origin: Name and email of originator.
+ Date: Date submitted (e.g. 28 October 2005)
+ Status:
+
+ What: More detailed explanation ...
+
+ Why: Why it is important ...
+
+ Notes: Additional notes or features ...
+
+</pre>
+
+<h3>An Example Feature Request</h3>
+<pre>
+Item 1: Implement a Migration job type that will move the job
+ data from one device to another.
+ Date: 28 October 2005
+ Origin: Sponsored by Riege Sofware International GmbH. Contact:
+ Daniel Holtkamp <holtkamp at riege dot com>
+ Status: Partially coded in 1.37 -- much more to do. Assigned to
+ Kern.
+
+ What: The ability to copy, move, or archive data that is on a
+ device to another device is very important.
+
+ Why: An ISP might want to backup to disk, but after 30 days
+ migrate the data to tape backup and delete it from
+ disk. Bacula should be able to handle this
+ automatically. It needs to know what was put where,
+ and when, and what to migrate -- it is a bit like
+ retention periods. Doing so would allow space to be
+ freed up for current backups while maintaining older
+ data on tape drives.
+
+ Notes: Migration could be triggered by:
+ Number of Jobs
+ Number of Volumes
+ Age of Jobs
+ Highwater size (keep total size)
+ Lowwater mark
+
+</pre>
+
+</td>
+</tr>
+
+</table>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+ <tr>
+ <td class="contentTopic">
+ The Free Software Foundation Europe License
+ </td>
+ </tr>
+
+
+ <tr>
+ <td class="content">
+
+ The Bacula project has assigned its copyright to the Free Software Foundation
+ Europe e.V. in a fiduciary relationship that permits the FSFE to
+ safeguard the Bacula software against abuse while allowing the project
+ to continue without the administrative burden of maintaining the
+ copyright paper work.
+ <p>
+ If you contribute more than a few lines of code or documentation to the
+ Bacula project, we ask you to complete the copyright Fiduciary License
+ Agreement (link provided below). This is the same agreement that I (Kern)
+ and the other developers have signed to transfer our copyrights to the
+ FSFE.
+ <p>
+ Filling it out is really quite simple. Please make two copies,
+ then put your name and mailing address on the first page and
+ date it.
+ <p>
+ On the third page after "the author" put your name and the
+ other information requested. This is simply to uniquely identify
+ you.
+ <p>
+ If you are employed and you do Bacula work while at work
+ or your employer has the rights to your work (often the case),
+ please put your employer's information here.
+ <p>
+ On the fourth page, you can simply put "All code and documentation
+ contributed to the Bacula.org project" or if you wish to be more
+ specific please do so.
+ <p>
+ Thanks for taking the time to complete and send the FLA in.
+ <p>
+ <ul>
+ <li> <a href="FLA-bacula.en.pdf" >PDF of FSFE Fiduciary License Agreement</a>
+ </li>
+ </ul>
+ </td>
+ <td class="content">
+ <ul>
+ </ul>
+ </td>
+ </tr>
+
+</table>
+ <p>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic">
+ Bacula® - The Network Backup Solution
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ <b>Bacula</b> is a set of computer programs that permit you
+ (or the system administrator) to manage backup, recovery,
+ and verification of computer data across a network of
+ computers of different kinds.<br>
+
+ <br>
+ <b>Serious Bug</b> - All users should read <a href="?page=news">
+ the news item</a> regarding a serious bug found in version 2.2.4 and
+ fixed with a patch the 29th of Sept 2007. The patch is in all
+ subsequent releases. Please subscribe to the
+ <a href="?page=maillists">announce mailing list</a> to be kept informed.<br>
+
+ <br>
+ In technical terms, it is a <b>network based backup program</b>.<br>
+
+ <br>
+ Bacula is relatively easy to use and efficient, while
+ offering many advanced storage management features that make
+ it easy to find and recover lost or damaged files.<br>
+
+ <br>
+ Most of the <b>Bacula</b> source code is released under the
+ <b>GPL</b> version 2 license. If you wish additional
+ details, please follow the License link to your left.<br>
+
+ <br>The Documentation link takes you to a page where you
+ can access all the available Bacula documentation (HTML,
+ PDF, and TGZ) both for the officially released version
+ and for the current code under development in the Source
+ Forge SVN. The development version of the manual typically has
+ more documentation, but may also document new features that are
+ not in the released version. The Developer's Guide
+ presents important information for users who want to
+ contribute to the Bacula project.<br>
+
+ <br> Bacula is Hosted on
+ SourceForge at <a href="http://sourceforge.net/projects/bacula">
+ http://sourceforge.net/projects/bacula </a> where you can
+ download the software.<br> <br> You may also use
+ the links on the left side of this page for more
+ information. In particular, Current Files link takes
+ you to the currently available downloads, and the All
+ Downloads link takes you to a list of all files ever
+ released to SourceForge.
+ </td>
+</tr>
+</table>
+
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic">
+ Bacula Copyright, Trademark, and Licenses
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ There are a number of different licenses that are used in
+ Bacula.
+ <h3>GPL</h3>
+ The vast bulk of the code is released under the
+
+ <a href="rel-manual/gpl.html">GNU General Public License version 2.</a>
+ Most of this code is copyrighted:
+ Copyright (C) 2000-2007 Free Software Foundation Europe, e.V.
+ <p>Portions may be copyrighted by other people (ATT, the
+ Free Software Foundation, ...).
+ <h3>LGPL</h3>
+ Some of the Bacula library source code is released under the
+ <a href="rel-manual/lesser.html">GNU Lesser General Public License.</a>
+ This permits third parties to use these parts of our code in
+ their proprietary programs to interface to Bacula.
+ <h3>Public Domain</h3>
+ Some of the Bacula code has been released to the public domain.
+ E.g. md5.c, SQLite.
+ <h3>Trademark</h3>
+ Bacula<sup>®</sup>is a registered trademark of John
+ Walker.
+
+ <p>We have done this to ensure that any variant of Bacula will
+ be exactly compatible with the program that we have released.
+ The use of the name <b>Bacula</b> is restricted to software systems
+ that agree exactly with the program presented here.
+ </p>
+ </td>
+</tr>
+</table>
+
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic">
+ Professional Support for Bacula
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ The people listed are <b>independent contractors</b>.<br>
+ We can't take responsibility for their actions when you hire them,
+ but we would appreciate feedback positive or negative.<br>
+ <br>
+ Listing on the Bacula Professional page is offered as a
+ <b>service</b>, <b>without</b> any guarantees.<br>
+ <br>
+ We reserve the right to decide with reason who is
+ added/removed from the web page.<br>
+ To be listed, you must have some tangible connection with and
+ knowledge of Bacula (i.e. developer, contributed
+ code/patches, Bacula user and subscribed to bacula-users, or
+ bacula-devel, and preferably a Web site ...).<br>
+ <br>
+ People listed here agree to update their contact information
+ on a regular basis.<br> Anyone listed with incorrect
+ information is subject to removal.<br> <br> If you want to be
+ listed on the page, please get in contact with Kern
+ Sibbald.<br>
+ </td>
+</tr>
+</table>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+
+<?
+?>
+
+<div class="login">
+<form action="/?page=login" method="post">
+ <table cellpadding="5px" style="background: #749aba; color:white; border: 15px #002244 solid; padding: 15px" align="center">
+ <tr>
+ <td>User:</td>
+ <td><input type="text" name="username" size="10" maxsize="10"></td>
+ </tr>
+ <tr>
+ <td>Pass: </td>
+ <td><input type="password" name="password" size="10" maxsize="10"></td>
+ </tr>
+ <tr>
+ <td style="text-align: right" colspan="2"> <input style="border: 1px dotted white" type="submit" value="Login"> </td>
+ </tr>
+ </table>
+</form>
+</div>
+
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+
+<?
+?>
+
+<div class="login">
+ <? session_destroy(); ?>
+ <META HTTP-EQUIV=Refresh CONTENT="2; URL=/">
+ You have officially been pimp^Wlogged out.
+</div>
+
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic">
+ Email Lists
+ </td>
+</tr>
+<tr>
+ <td class="content">
+
+<b>Bacula</b> has a number of email lists which are described below with
+links to subscribe, unsubscribe, or modify your account.
+For general information subscribing to or unsubscribing from these lists, please see
+<a href="http://sourceforge.net/mail/?group_id=50727">Bacula Mailing Lists at SourceForge</a>.
+<p>For email archives see the bottom of this page.</p>
+
+Source Forge has rather strict email requirements in order to
+try to minimize the large quantity of spam that the lists receive every day.
+These are mesures that they have implemented, and over which we have no
+control.
+<p>
+If you are having problems subscribing or sending email to a Bacula list,
+please, read the following: <a href="http://sourceforge.net/docman/display_doc.php?docid=6695&group_id=1">
+SourceForge.net: Email Problems: Spam, Bounces, Unreceived Messages</a>, then
+if you are still having problems send a support request to Source Forge.
+Source Forge requires the person affected submit his/her own support request;
+the Bacula project is not permitted to do so on your behalf.
+<p>
+One item they do not mention in the above referenced document is grey listing.
+If you are using grey listing, you are likely to have problems with the Source
+Forge email lists. The solution is to whitelist their sending IPs. You might
+want to whitelist their whole zone (66.35.250.0/24) as I (Kern) have done, but
+if you are more conservative, I found only two of their IPs were sending email
+(66.35.250.225 and 66.35.250.206). If you grey list individual Source Forge
+IP addresses, please be sure to check your logs to verify the addresses they
+use for you.
+
+<h3>bacula-announce</h3>
+The <b>bacula-announce</b> list is a read only low volume list for those
+users who wish to be notified when there are important events
+(important bugs, new releases, ...). We recommend that all
+users subscribe to this list. Do so by following the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-announce">
+Bacula Announce List Subscription/Unsubscription/Modification</a>.
+Please do not send email directly to this list.
+
+<p>It is also possible to get email notification whenever a new package
+is released on SourceForge. This is accomplished by going to
+the <a href="http://sourceforge.net/projects/bacula">Bacula SourceForge
+Project</a> page and clicking on the little letter or mail icon
+<img src="images/mail16d.png" alt="" width="15" height="15"> under the heading <b>Monitor</b> in the
+row corresponding to the package you want to monitor.
+</p>
+
+<h3>bacula-users</h3>
+The <b>bacula-users</b> list is the general forum to
+ask questions about Bacula or respond to questions
+from other users. The volume on this list is generally
+moderate, but can vary. All users are encouraged to subscribe
+and to participate.
+Due to the increasing volume of spam, you must be subscribed
+before you can send email to this list.
+
+To subscribe follow the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-users">Bacula Users List Subscription/Unsubscription/Modification</a>.
+<p>
+To send an email to the Bacula Users List, use the following
+address: <b>bacula-users at lists.sourceforge.net</b>.
+The previous address was modified to prevent easy use by spammers. To use it,
+you must replace the <b>at</b> with an @ symbol.
+</p>
+
+<h3>bacula-devel</h3>
+The <b>bacula-devel</b> list is for those users who wish to
+communicate directly with the developers. The email volume
+is usually quite low (several emails per day), but can vary.
+Due to the increasing volume of spam, you must be subscribed
+before you can send email to this list.
+
+To subscribe, please follow this link:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-devel">
+Bacula Developers List Subscription/Unsubscription/Modification</a>.
+<p>
+To send an email to the Bacula Developers List, use the following
+address: <b>bacula-devel at lists.sourceforge.net</b>.
+The previous
+address was modified to prevent easy use by spammers. To use it,
+you must replace the <b>at</b> with an @ symbol.
+</p>
+
+<h3>bacula-bugs</h3>
+The <b>bacula-bugs</b> list is a read only
+list for those users who wish to be notified about new bugs
+registered at: <a href="http://bugs.bacula.org">
+http://bugs.bacula.org</a>. Please do not send email directly
+to this list bug file a bug report in the bugs database mentioned
+above. All email to this list other than from the bugs system itself
+is automatically discarded.
+
+To subscribe, follow follow the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-bugs">
+http://lists.sourceforge.net/lists/listinfo/bacula-bugs</a>.
+
+<h3>bacula-beta</h3>
+The <b>bacula-beta</b> list is a read only
+list for those packagers or users who wish to be notified
+when a new release is in preparation or is ready.
+This list is also used for discussions on running regression
+scripts.
+Due to the increasing volume of spam, you must be subscribed
+before you can send email to this list.
+
+To subscribe, follow follow the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-beta">
+http://lists.sourceforge.net/lists/listinfo/bacula-beta</a>.
+
+
+<h3>bacula-commits</h3>
+The <b>bacula-commits</b> list is a read only
+list for those users who wish to be receive a diff of each
+commit to the SVN. Please do not email directly to this list.
+If you do commits, please subscribe your Source Forge name to this
+list. Any mail from non-subscribed users is automatically discarded.
+
+You may subscribe by following the instructions at:
+<a href="http://lists.sourceforge.net/lists/listinfo/bacula-commits">
+http://lists.sourceforge.net/lists/listinfo/bacula-commits</a>.
+
+
+<h3>Archives</h3>
+Most of the above email lists are archived on Source Forge, but they are
+also archived on Gmane, which has better search facilities. The
+Gmane archives are at: <a href="http://news.gmane.org/search.php?match=bacula">
+http://news.gmane.org/search.php?match=bacula</a>.
+
+<p>
+The lists are also archived at
+<a href="http://marc.info/">Mailing list ARChives (MARC)</a>.
+<ul>
+<li><a href="http://marc.info/?l=bacula-announce&r=1&w=2">Announce</a></li>
+<li><a href="http://marc.info/?l=bacula-beta&r=1&w=2">BETA</a></li>
+<li><a href="http://marc.info/?l=bacula-bugs&r=1&w=2">Bugs</a></li>
+<li><a href="http://marc.info/?l=bacula-commits&r=1&w=2">Commits</a></li>
+<li><a href="http://marc.info/?l=bacula-devel&r=1&w=2">Devel</a></li>
+<li><a href="http://marc.info/?l=bacula-users&r=1&w=2">Users</a></li>
+</ul>
+ </td>
+</tr>
+</table>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+
+<? require_once("inc/header.php"); ?>
+
+<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
+<input type="hidden" name="cmd" value="_xclick">
+<input type="hidden" name="business" value="projects@bacula.org">
+<input type="hidden" name="tax" value="0">
+<input type="hidden" name="bn" value="PP-DonationsBF">
+<input type="hidden" name="lc" value="US">
+<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
+</form>
+
+<table>
+<tr>
+ <td class="contentTopic">
+ Contributing to the Bacula Project
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ Although one talks about Free Software, in fact, Open Software such
+ as Bacula was not developed without some cost. The software
+ may be free for the user, but it wasn't free for the developer
+ or developers, either in terms of time or in terms of financial
+ cost.
+
+ For example, since beginning work on the Bacula project in
+ January 2000 until now (August 2006), I (Kern) have spent
+ approximately $8000 per year for computers, tape drives,
+ communications expenses, electricity, software licenses, and
+ other expenses. I am not complaining and am pleased to have
+ been able to afford these expenditures. In addition, have no
+ desire to have my past expenses reimbursed.
+
+ Bacula is now a fairly mature product, and to ensure its long
+ term survival, I believe it is time that Bacula begins to
+ stand on its own, both financially and for the development,
+ which is why we began accepting donations or project support
+ in November 2005.
+ <p>
+ There are ways you can contribute to the Bacula
+ project, some of which are: ideas, user support,
+ documentation review, translation, programming and
+ contributing code, testing the new releases, hosting
+ services, testing machines, donating needed equipment, and
+ financial support.
+
+ Previously all but the last one (financial support) were possible.
+ It is now possible for you to contribute financial aid
+ the Bacula project. All funds collected will be used to help
+ further the Bacula project by covering out of pocket expenses
+ incurred by the project (no salaries). Examples are, administrative
+ fees, hardware, software licenses (yes Micro$oft), and possibly a
+ portion of travel/conference expenses.
+
+ <p>
+ Contributions may not be US tax deductible as Bacula is
+ based in Switzerland.
+ <p>
+ If you are a government or for-profit corporation and cannot
+ make "donations", please consider paying a (non-obligatory)
+ binary license fee for any Bacula built binaries that you download.
+ By making these pre-built, pre-tested binaries available, we are
+ providing users who download them with an extra service, which merits
+ careful consideration for making a contribution or paying a
+ "license fee".
+ <p>
+ If you are a corporation and cannot make donations and don't want
+ to pay a binary license fee, you can request an invoice for
+ Bacula Project development. Please see below for how to do this.
+
+ <p>
+ To make a contribution, please click on the donate button at
+ the top of the screen, and your transaction will be secured
+ and confirmed directly by PayPal. If you contribute, or have
+ any questions, please send me an email directly: kern at
+ sibbald dot com.
+
+ <p>
+ If you need an invoice, I can send you one, but in order to limit my
+ administrative work, I kindly request you to make a donation of at least
+ $200 before requesting an invoice. To obtain one, simply email me the exact
+ name to appear on the invoice as well as the mailing address, the amount
+ you want to contribute, and the project you are supporting (or simply
+ Bacula development).
+
+ <p>
+ The Bacula web site has a "Donations Received" page where
+ you can have your company name, your name, and the amount (or any
+ combination of those) listed. You must explicitly request to be listed.
+ Do so by sending an email to: kern at sibbald dot com after you have
+ made the payment.
+
+ <p>Although there is one link to our ISP, who we thank for providing the
+ hosting service, we do not provide any links to other sites other than
+ on the Professional page.
+
+<p>
+</tr>
+
+</table>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+
+<table width="100%">
+<tr>
+ <td class="contentTopic">
+ News
+ </td>
+</tr>
+</table>
+<table width="90%" align="center">
+<tr>
+ <td class="content">
+ <table class="news" style="width: 99%">
+<?
+
+$max_news = 5;
+$news_counter = 0;
+
+// read file into an array and revert that
+// revert cause array_pop always gets the last element
+//
+$file = "news.txt";
+$lines = array_reverse(file($file)) or
+ die("No newsfile!");
+
+// as long as there are lines ...
+//
+while(count($lines) > 0 && $news_counter < $max_news) {
+ // next line
+ $line = array_pop($lines);
+
+ // start of news
+ if(eregi("^[a-z0-9]+;;;", $line)) {
+ // news header
+ list($author,$date,$time) = explode(";;;",$line);
+
+ // news subject
+ $subject = array_pop($lines);
+ printf('<tr><td class="newsHeader">%s</td></tr>', $subject);
+ printf('<tr><td class="newsContent"><pre class="newsContent">');
+
+ continue;
+ }
+
+ // end of news
+ if(eregi("^;;;", $line)) {
+ printf('</pre></td></tr>');
+ printf('<tr>');
+ printf('<td class="newsFooter">%s - %s, %s</td>', $date, $time, $author);
+ printf('</tr>');
+ printf('<tr><td><img src="images/spacer.gif" width="1px" height="15px"></td></tr>');
+ $news_counter++;
+ continue;
+ }
+
+ // news content
+ printf('%s', $line);
+}
+?>
+ </table>
+ </td>
+</tr>
+</table>
+<? require_once("inc/header.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+ <tr>
+ <td class="contentTopic">
+ Bacula Presentations
+ </td>
+ </tr>
+
+ <tr>
+ <td class="content">
+ <ul>
+ <li> <a href="presentations/Bacula-FOSDEM-talk-25Feb07.pdf" >PDF FOSDEM Slide Show</a>
+ <br>Slide Show Presented at FOSDEM 2007<br></li>
+ </ul>
+ </td>
+ <td class="content">
+ <ul>
+ </ul>
+ </td>
+ </tr>
+
+</table>
+ <p>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+ <tr>
+ <td class="contentTopic">
+ Bacula 2.2.0 Press Information
+ </td>
+ </tr>
+
+ <tr>
+ <td class="content">
+
+ <h3>Bacula 2.2.0 Press Information</h3>
+ <ul>
+ <li> <a href="about/press/presskit220.html.en" >Press Kit</a></li>
+ <li> <a href="/rel-manual/Bacula_Freque_Asked_Questi.html" >Frequently Asked Questions</a></li>
+ </ul>
+
+ <h3>Press Kit in Other Languages</h3>
+
+ <ul>
+ <li> <a href="about/press/presskit220.html.en" >Catalan</a></li>
+ <li> <a href="about/press/presskit200.html.fr" >French</a></li>
+ <li> <a href="about/press/presskit200.html.de" >German</a></li>
+ <li> <a href="about/press/presskit200.html.es" >Spanish</a></li>
+ </ul>
+ </td>
+ </tr>
+
+</table>
+ <p>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic">
+ Professional Support for Bacula
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ The following people are independent contractors. Each has worked
+ with Bacula, and we are pleased to list their names here as a service, but
+ without any guarantees.<br>
+ <br>
+ Please read that short 'license' for further details: <a href="?page=listlic">Listing license</a><br>
+ All names have been reviewed and approved. <br>
+ <br>
+ All email-addresses are extended with a 'NOSPAM'-tag, please remove it before sending an email.<br>
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ <table align="center">
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ Alixen
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:infoNOSPAM@alixen.fr">Gilles Polart-Donat</a><br>
+ 20 rue Jean Rostand<br>
+ 91400 Orsay, France<br>
+ +33 01 60 19 72 31<br>
+ <br>
+ <a href="http://www.alixen.fr">http://www.alixen.fr</a>
+ </td>
+ </tr>
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ Arden Group Inc
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:rberryNOSPAM@ardengrp.com">Roger Berry</a><br>
+ 5026 NE Clackamas<br>
+ Portland, OR 97213 USA<br>
+ +1(971)223-3987<br>
+ <br>
+ <a href="http://www.ardengrp.com">http://www.ardengrp.com</a><br>
+ </td>
+ </tr>
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ Axiom Networking
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:ajordanNOSPAM@draftathome.com">Angus Jordan</a><br>
+ 9235 215th St, Langley BC, Canada<br>
+ +1-604-888-6162<br>
+ <br>
+ We offer all types of IT related support services. Platform support: Linux,<br>
+ Windows 2000/2003 etc. Lots of experience with Bacula, DBMail, Nagios,<br>
+ Postfix, Qmail, qpopper, BIND (8/9), and MANY others.<br>
+ <br>
+ <a href="http://www.axiomnetworking.ca">http://www.axiomnetworking.ca</a><br>
+ </td>
+ </tr>
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ Bayer Technology Group
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:jbayerNOSPAM@BayerTechnologyGroup.com"> Jonathan B Bayer</a><br>
+ Bayer Technology Group, 23 Exeter Rd., East Windsor, NJ 08520 USA<br>
+ +1 (609) 632-1200<br>
+ +1 (609) 658-9408 (mobile)<br>
+ <br>
+ Our focus is on assisting and providing high
+ quality IT services to individuals, small businesses and
+ organizations with computer and information technology needs,
+ but who often don't need or have a budget for a full time IT
+ staff. We specialize in Desktop systems, Local Area Network
+ (LAN), Internet, Computer Systems Security and Disaster
+ Recovery Planning and Implementation using Microsoft and
+ Linux based solutions. <br> <br> <a
+ href="http://www.BayerTechnologyGroup.com">http://www.BayerTechnologyGroup.com</a><br>
+ </td>
+ </tr>
+
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ BSDCan
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:danNOSPAM@langille.org">Dan Langille</a><br>
+ Suite 474<br>
+ 900 Greenbank Road<br>
+ Ottawa, ON K2J 4P6<br>
+ +1 215 882 0565<br>
+ <br>
+ Dan has been a Bacula developer since early 2004 when he wrote
+ the PostgreSQL plugin. He is also the Bacula maintainer for
+ FreeBSD and has been writing and speaking about Bacula for
+ several years. As a consultant, his Bacula speciality is
+ design, installation, and configuration of new systems. He is
+ available for consulting on any project.
+
+ <br>
+ Reference available upon request.
+
+ <br>
+ <a href="http://www.langille.org/">http://www.langille.org/</a>
+ </td>
+ </tr>
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ dass IT GmbH
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:infoNSPAM@dass-it.de">dass IT GmbH</a><br>
+ Händelstraße 25-29<br>
+ 50674 Köln<br>
+ Germany<br>
+ Tel: +49 221 35 65 666 - 0<br>
+ Fax: +49 221 35 65 666 - 10<br>
+ <br>
+ dass IT provides professional services and
+ support using mainly open source tools. Our
+ focus lies on system management for a large
+ number of systems (servers and desktops). We
+ provide services and solutions mainly for Linux
+ based IT infrastructures.
+ <br>
+ <a href="http://www.dass-it.de/">http://www.dass-it.de/</a>
+ </td>
+ </tr>
+
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ Heitor Faria
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:heitorfariaNOSPAM@hotmail.com">Heitor Faria</a><br>
+ Consultoria em Software Libre (Brazil)<br>
+ <br>
+ Telephone +55 71 9196-5270<br>
+ <br>
+ <br>
+ Bacula training, installation and support.
+ <br>
+ </td>
+ </tr>
+
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ HEXONET Support GmbH
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:infoNOSPAM@hexonet.com">Hexonet</a><br>
+ Alexander Biehl<br>
+ Talstrasse 27<br>
+ 66424 Homburg<br>
+ Germany
+ <br>
+ Tel: +49 6841 95961-70<br>
+ Fax: +49 6841 95961-79<br>
+ <br>
+ HEXONET Support GmbH provides professional IT services and support. We
+ are specialized in OpenSource products.
+ <br>
+ <a href="http://www.hexonet.com">http://www.hexonet.com</a><br>
+ </td>
+ </tr>
+
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ Instant Root HB
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:infoNOSPAM@instant-root.com">Info-Mail</a><br>
+ Box 1823 <br>
+ SE-58117 Linköping, Sweden<br>
+ <br>
+ Instant Root HB is a company specialized in Unix systems administration, network
+ design and implementation, as well as education in various computer-related fields.<br>
+ <br>
+ <a href="http://www.instant-root.com">http://www.instant-root.com</a><br>
+ </td>
+ </tr>
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ IT-Service Lehmann
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:infoNOSPAM@its-lehmann.de">Arno Lehmann</a><br>
+ Sandstr. 6<br>
+ 49080 Osnabrück</br>
+ Germany<br>
+ +49 (0) 541 5803396<br>
+ +49 (0) 160 92008971 (mobile)<br>
+ <br>
+ Storage, Communication, Backup and Monitoring using
+ Open-Source solutions. Services from
+ network design to system administration and
+ user education, with a focus on Small
+ Businesses looking for cost-effective solutions.
+ <br>
+ <a href="http://www.its-lehmann.de">http://www.its-lehmann.de</a>
+ </td>
+ </td>
+ </tr>
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ KDB Konsult AB
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:matsNOSPAM@kdb.se">Mats Vilhelmsson</a><br>
+ Tel: +46 708 901042<br>
+ <br>
+ Backup hosting - Internet backups, Bacula training, installations and support.<br>
+ <br>
+ <a href="http://www.kdb.se">http://www.kdb.se</a><br>
+ </td>
+ </tr>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ L. Strappazon
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:l.strappazonNOSPAM@free.fre">Ludovic Strappazon</a><br>
+ Strasbourg, France<br>
+ +33 685 27 93 39<br>
+ <br>
+ I offer engineering services and training around storage and Backup.
+ Planning and scaling of your hardware installation, Bacula implementation.
+ </td>
+ </tr>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ MATRIX-Computer
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ MATRIX-Computer GmbH<br>
+ Dachauer Str. 44<br>
+ 80335 München<br>
+ Germany<br>
+
+ +49-89-922 996 80<br>
+ <br>
+ We are a team of software developers with experience in C++, Windows, PHP,
+ Linux and more. We have done lots of the Think Tools software.<br>
+ <br>
+ <a href="http://www.matrix-computer.com">http://www.matrix-computer.com</a><br>
+ </td>
+ </tr>
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ NETWAYS GmbH
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:infoNOSPAM@netways.de">NETWAYS GmbH</a><br>
+ Deutschherrnstrasse 47a<br>
+ 90429 Nürnberg<br>
+ Germany<br>
+ <br>
+ Telephone +49 911 92885-0<br>
+ Fax +49 911 92885-77<br>
+ <br>
+ <br>
+ We support our customers managing complex and
+ heterogeneous networks. Our services and
+ solutions, based on Open Source software, help
+ you run your servers and applications
+ failure-free. Special focus on Nagios, Bacula,
+ Request Tracker, and cluster solutions. <br>
+ <br>
+ <a href="http://www.netways.de">http://www.netways.de</a><br>
+ </td>
+ </tr>
+
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ raptus ag
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:infoNOSPAM@raptus.com">raptus ag</a><br>
+ moderne kommunikation<br>
+ burgweg 1<br>
+ 2563 ipsach -- switzerland<br>
+ <br>
+ Telephone +41 (0)32 332 9200<br>
+ Fax +41 (0)32 332 9201<br>
+ <br>
+ <br>
+ Modern communications, Internet projects and IT services since 1996!
+ Specialized in heterogeneous networks (linux, mac, windows) and open
+ source solutions.<br>
+ <br>
+ <a href="http://www.raptus.com">http://www.raptus.com</a><br>
+ </td>
+ </tr>
+
+
+
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ Sine Nomine Associates
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:infoNOSPAM@sinenomine.net">Services Sales Dept.</a><br>
+ US:<br>
+ 43596 Blacksmith Square <br>
+ Ashburn, VA 20147 USA <br>
+ +1 703 723 6673<br>
+ <br>
+ EMEA:<br>
+ Na Dvorcich 17/Na Vrasni 18<br>
+ CZ - Praha 4, 14000 <br>
+ Czech Republic<br>
+ <br>
+ Design and implementation of system management tools and infrastructure,<br>
+ from small systems to enterprise-wide implementations on global scale.<br>
+ Special focus on Bacula for enterprise-class systems and mainframe.<br>
+ <br>
+ <a href="http://www.sinenomine.net">http://www.sinenomine.net</a><br>
+ </td>
+ </tr>
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ Thinxsolutions
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:infoNOSPAM@thinxsolutions.com">
+ Müller, Bender, Guth GbR</a><br>
+ Maarweg 139 <br>
+ 50825 Cologne, Germany <br>
+ <br>
+ +49 221 35503530<br>
+ <br>
+ We implement and manage corporate networks for our customers
+ and offer consulting and professional support for various open source
+ software solutions.<br>
+ <br>
+ <a href="http://www.thinxsolutions.com">http://www.thinxsolutions.com</a><br>
+ </td>
+ </tr>
+
+
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr>
+ <td style="font-weight: bold">
+ WinFix.IT
+ </td>
+ <td><img src="images/spacer.gif" width="50px" height="1px"></td>
+ <td>
+ <a href="mailto:JoNOSPAM@WinFix.IT">Jo at WinFix.IT</a><br>
+ <br>
+ In and around Leuven and Brussels (Belgium)
+ <br>
+ +32 (0)478-33 76 27<br>
+ <br>
+ Set up of SAMBA File and Print servers/domain controllers, mail
+ servers (Postfix) with spam/virus killers
+ (Spamassassin/Amavis/Clamav/BitDefender)
+ and backup (with Bacula of course). Network monitoring with Nagios.
+ <br>
+ <br>
+ <a href="http://www.WinFix.IT">http://www.WinFix.IT</a><br>
+ </td>
+ </tr>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+ <tr> <td colspan="3"><hr></td>
+ <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
+
+
+ </table>
+ </td>
+</tr>
+</table>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+</tr>
+<tr>
+ <td class="content">
+
+<pre>
+
+
+
+Projects:
+ Bacula Projects Roadmap
+ Status updated 7 July 2007
+ After re-ordering in vote priority
+
+Items Completed:
+Item: 2 Implement a Bacula GUI/management tool.
+Item: 18 Quick release of FD-SD connection after backup.
+Item: 23 Implement from-client and to-client on restore command line.
+Item: 25 Implement huge exclude list support using dlist
+Item: 41 Enable to relocate files and directories when restoring
+Item: 42 Batch attribute inserts (ten times faster)
+Item: 43 More concurrency in SD using micro-locking
+Item: 44 Performance enhancements (POSIX/Win32 OS file access hints).
+Item: 40 Include JobID in spool file name
+
+Summary:
+Item: 1 Accurate restoration of renamed/deleted files
+Item: 2* Implement a Bacula GUI/management tool.
+Item: 3 Allow FD to initiate a backup
+Item: 4 Merge multiple backups (Synthetic Backup or Consolidation).
+Item: 5 Deletion of Disk-Based Bacula Volumes
+Item: 6 Implement Base jobs.
+Item: 7 Implement creation and maintenance of copy pools
+Item: 8 Directive/mode to backup only file changes, not entire file
+Item: 9 Implement a server-side compression feature
+Item: 10 Improve Bacula's tape and drive usage and cleaning management.
+Item: 11 Allow skipping execution of Jobs
+Item: 12 Add a scheduling syntax that permits weekly rotations
+Item: 13 Archival (removal) of User Files to Tape
+Item: 14 Cause daemons to use a specific IP address to source communications
+Item: 15 Multiple threads in file daemon for the same job
+Item: 16 Add Plug-ins to the FileSet Include statements.
+Item: 17 Restore only file attributes (permissions, ACL, owner, group...)
+Item: 18* Quick release of FD-SD connection after backup.
+Item: 19 Implement a Python interface to the Bacula catalog.
+Item: 20 Archive data
+Item: 21 Split documentation
+Item: 22 Implement support for stacking arbitrary stream filters, sinks.
+Item: 23* Implement from-client and to-client on restore command line.
+Item: 24 Add an override in Schedule for Pools based on backup types.
+Item: 25* Implement huge exclude list support using hashing.
+Item: 26 Implement more Python events in Bacula.
+Item: 27 Incorporation of XACML2/SAML2 parsing
+Item: 28 Filesystem watch triggered backup.
+Item: 29 Allow inclusion/exclusion of files in a fileset by creation/mod times
+Item: 30 Tray monitor window cleanups
+Item: 31 Implement multiple numeric backup levels as supported by dump
+Item: 32 Automatic promotion of backup levels
+Item: 33 Clustered file-daemons
+Item: 34 Commercial database support
+Item: 35 Automatic disabling of devices
+Item: 36 An option to operate on all pools with update vol parameters
+Item: 37 Add an item to the restore option where you can select a pool
+Item: 38 Include timestamp of job launch in "stat clients" output
+Item: 39 Message mailing based on backup types
+Item: 40* Include JobID in spool file name
+Item: 41* Enable to relocate files and directories when restoring
+Item: 42* Batch attribute inserts (ten times faster)
+Item: 43* More concurrency in SD using micro-locking
+Item: 44* Performance enhancements (POSIX/Win32 OS file access hints).
+
+Item 1: Accurate restoration of renamed/deleted files
+ Date: 28 November 2005
+ Origin: Martin Simmons (martin at lispworks dot com)
+ Status: Robert Nelson will implement this
+
+ What: When restoring a fileset for a specified date (including "most
+ recent"), Bacula should give you exactly the files and directories
+ that existed at the time of the last backup prior to that date.
+
+ Currently this only works if the last backup was a Full backup.
+ When the last backup was Incremental/Differential, files and
+ directories that have been renamed or deleted since the last Full
+ backup are not currently restored correctly. Ditto for files with
+ extra/fewer hard links than at the time of the last Full backup.
+
+ Why: Incremental/Differential would be much more useful if this worked.
+
+ Notes: Merging of multiple backups into a single one seems to
+ rely on this working, otherwise the merged backups will not be
+ truly equivalent to a Full backup.
+
+ Kern: notes shortened. This can be done without the need for
+ inodes. It is essentially the same as the current Verify job,
+ but one additional database record must be written, which does
+ not need any database change.
+
+ Kern: see if we can correct restoration of directories if
+ replace=ifnewer is set. Currently, if the directory does not
+ exist, a "dummy" directory is created, then when all the files
+ are updated, the dummy directory is newer so the real values
+ are not updated.
+
+Item 2: Implement a Bacula GUI/management tool.
+ Origin: Kern
+ Date: 28 October 2005
+ Status: In progress
+
+ What: Implement a Bacula console, and management tools
+ probably using Qt3 and C++.
+
+ Why: Don't we already have a wxWidgets GUI? Yes, but
+ it is written in C++ and changes to the user interface
+ must be hand tailored using C++ code. By developing
+ the user interface using Qt designer, the interface
+ can be very easily updated and most of the new Python
+ code will be automatically created. The user interface
+ changes become very simple, and only the new features
+ must be implement. In addition, the code will be in
+ Python, which will give many more users easy (or easier)
+ access to making additions or modifications.
+
+ Notes: There is a partial Python-GTK implementation
+ Lucas Di Pentima <lucas at lunix dot com dot ar> but
+ it is no longer being developed.
+
+Item 3: Allow FD to initiate a backup
+ Origin: Frank Volf (frank at deze dot org)
+ Date: 17 November 2005
+ Status:
+
+ What: Provide some means, possibly by a restricted console that
+ allows a FD to initiate a backup, and that uses the connection
+ established by the FD to the Director for the backup so that
+ a Director that is firewalled can do the backup.
+
+ Why: Makes backup of laptops much easier.
+
+
+Item 4: Merge multiple backups (Synthetic Backup or Consolidation).
+ Origin: Marc Cousin and Eric Bollengier
+ Date: 15 November 2005
+ Status: Waiting implementation. Depends on first implementing
+ project Item 2 (Migration) which is now done.
+
+ What: A merged backup is a backup made without connecting to the Client.
+ It would be a Merge of existing backups into a single backup.
+ In effect, it is like a restore but to the backup medium.
+
+ For instance, say that last Sunday we made a full backup. Then
+ all week long, we created incremental backups, in order to do
+ them fast. Now comes Sunday again, and we need another full.
+ The merged backup makes it possible to do instead an incremental
+ backup (during the night for instance), and then create a merged
+ backup during the day, by using the full and incrementals from
+ the week. The merged backup will be exactly like a full made
+ Sunday night on the tape, but the production interruption on the
+ Client will be minimal, as the Client will only have to send
+ incrementals.
+
+ In fact, if it's done correctly, you could merge all the
+ Incrementals into single Incremental, or all the Incrementals
+ and the last Differential into a new Differential, or the Full,
+ last differential and all the Incrementals into a new Full
+ backup. And there is no need to involve the Client.
+
+ Why: The benefit is that :
+ - the Client just does an incremental ;
+ - the merged backup on tape is just as a single full backup,
+ and can be restored very fast.
+
+ This is also a way of reducing the backup data since the old
+ data can then be pruned (or not) from the catalog, possibly
+ allowing older volumes to be recycled
+
+Item 5: Deletion of Disk-Based Bacula Volumes
+ Date: Nov 25, 2005
+ Origin: Ross Boylan <RossBoylan at stanfordalumni dot org> (edited
+ by Kern)
+ Status:
+
+ What: Provide a way for Bacula to automatically remove Volumes
+ from the filesystem, or optionally to truncate them.
+ Obviously, the Volume must be pruned prior removal.
+
+ Why: This would allow users more control over their Volumes and
+ prevent disk based volumes from consuming too much space.
+
+ Notes: The following two directives might do the trick:
+
+ Volume Data Retention = <time period>
+ Remove Volume After = <time period>
+
+ The migration project should also remove a Volume that is
+ migrated. This might also work for tape Volumes.
+
+Item 6: Implement Base jobs.
+ Date: 28 October 2005
+ Origin: Kern
+ Status:
+
+ What: A base job is sort of like a Full save except that you
+ will want the FileSet to contain only files that are
+ unlikely to change in the future (i.e. a snapshot of
+ most of your system after installing it). After the
+ base job has been run, when you are doing a Full save,
+ you specify one or more Base jobs to be used. All
+ files that have been backed up in the Base job/jobs but
+ not modified will then be excluded from the backup.
+ During a restore, the Base jobs will be automatically
+ pulled in where necessary.
+
+ Why: This is something none of the competition does, as far as
+ we know (except perhaps BackupPC, which is a Perl program that
+ saves to disk only). It is big win for the user, it
+ makes Bacula stand out as offering a unique
+ optimization that immediately saves time and money.
+ Basically, imagine that you have 100 nearly identical
+ Windows or Linux machine containing the OS and user
+ files. Now for the OS part, a Base job will be backed
+ up once, and rather than making 100 copies of the OS,
+ there will be only one. If one or more of the systems
+ have some files updated, no problem, they will be
+ automatically restored.
+
+ Notes: Huge savings in tape usage even for a single machine.
+ Will require more resources because the DIR must send
+ FD a list of files/attribs, and the FD must search the
+ list and compare it for each file to be saved.
+
+Item 7: Implement creation and maintenance of copy pools
+ Date: 27 November 2005
+ Origin: David Boyes (dboyes at sinenomine dot net)
+ Status:
+
+ What: I would like Bacula to have the capability to write copies
+ of backed-up data on multiple physical volumes selected
+ from different pools without transferring the data
+ multiple times, and to accept any of the copy volumes
+ as valid for restore.
+
+ Why: In many cases, businesses are required to keep offsite
+ copies of backup volumes, or just wish for simple
+ protection against a human operator dropping a storage
+ volume and damaging it. The ability to generate multiple
+ volumes in the course of a single backup job allows
+ customers to simple check out one copy and send it
+ offsite, marking it as out of changer or otherwise
+ unavailable. Currently, the library and magazine
+ management capability in Bacula does not make this process
+ simple.
+
+ Restores would use the copy of the data on the first
+ available volume, in order of copy pool chain definition.
+
+ This is also a major scalability issue -- as the number of
+ clients increases beyond several thousand, and the volume
+ of data increases, transferring the data multiple times to
+ produce additional copies of the backups will become
+ physically impossible due to transfer speed
+ issues. Generating multiple copies at server side will
+ become the only practical option.
+
+ How: I suspect that this will require adding a multiplexing
+ SD that appears to be a SD to a specific FD, but 1-n FDs
+ to the specific back end SDs managing the primary and copy
+ pools. Storage pools will also need to acquire parameters
+ to define the pools to be used for copies.
+
+ Notes: I would commit some of my developers' time if we can agree
+ on the design and behavior.
+
+Item 8: Directive/mode to backup only file changes, not entire file
+ Date: 11 November 2005
+ Origin: Joshua Kugler <joshua dot kugler at uaf dot edu>
+ Marek Bajon <mbajon at bimsplus dot com dot pl>
+ Status:
+
+ What: Currently when a file changes, the entire file will be backed up in
+ the next incremental or full backup. To save space on the tapes
+ it would be nice to have a mode whereby only the changes to the
+ file would be backed up when it is changed.
+
+ Why: This would save lots of space when backing up large files such as
+ logs, mbox files, Outlook PST files and the like.
+
+ Notes: This would require the usage of disk-based volumes as comparing
+ files would not be feasible using a tape drive.
+
+Item 9: Implement a server-side compression feature
+ Date: 18 December 2006
+ Origin: Vadim A. Umanski , e-mail umanski@ext.ru
+ Status:
+ What: The ability to compress backup data on server receiving data
+ instead of doing that on client sending data.
+ Why: The need is practical. I've got some machines that can send
+ data to the network 4 or 5 times faster than compressing
+ them (I've measured that). They're using fast enough SCSI/FC
+ disk subsystems but rather slow CPUs (ex. UltraSPARC II).
+ And the backup server has got a quite fast CPUs (ex. Dual P4
+ Xeons) and quite a low load. When you have 20, 50 or 100 GB
+ of raw data - running a job 4 to 5 times faster - that
+ really matters. On the other hand, the data can be
+ compressed 50% or better - so losing twice more space for
+ disk backup is not good at all. And the network is all mine
+ (I have a dedicated management/provisioning network) and I
+ can get as high bandwidth as I need - 100Mbps, 1000Mbps...
+ That's why the server-side compression feature is needed!
+ Notes:
+
+Item 10: Improve Bacula's tape and drive usage and cleaning management.
+ Date: 8 November 2005, November 11, 2005
+ Origin: Adam Thornton <athornton at sinenomine dot net>,
+ Arno Lehmann <al at its-lehmann dot de>
+ Status:
+
+ What: Make Bacula manage tape life cycle information, tape reuse
+ times and drive cleaning cycles.
+
+ Why: All three parts of this project are important when operating
+ backups.
+ We need to know which tapes need replacement, and we need to
+ make sure the drives are cleaned when necessary. While many
+ tape libraries and even autoloaders can handle all this
+ automatically, support by Bacula can be helpful for smaller
+ (older) libraries and single drives. Limiting the number of
+ times a tape is used might prevent tape errors when using
+ tapes until the drives can't read it any more. Also, checking
+ drive status during operation can prevent some failures (as I
+ [Arno] had to learn the hard way...)
+
+ Notes: First, Bacula could (and even does, to some limited extent)
+ record tape and drive usage. For tapes, the number of mounts,
+ the amount of data, and the time the tape has actually been
+ running could be recorded. Data fields for Read and Write
+ time and Number of mounts already exist in the catalog (I'm
+ not sure if VolBytes is the sum of all bytes ever written to
+ that volume by Bacula). This information can be important
+ when determining which media to replace. The ability to mark
+ Volumes as "used up" after a given number of write cycles
+ should also be implemented so that a tape is never actually
+ worn out. For the tape drives known to Bacula, similar
+ information is interesting to determine the device status and
+ expected life time: Time it's been Reading and Writing, number
+ of tape Loads / Unloads / Errors. This information is not yet
+ recorded as far as I [Arno] know. A new volume status would
+ be necessary for the new state, like "Used up" or "Worn out".
+ Volumes with this state could be used for restores, but not
+ for writing. These volumes should be migrated first (assuming
+ migration is implemented) and, once they are no longer needed,
+ could be moved to a Trash pool.
+
+ The next step would be to implement a drive cleaning setup.
+ Bacula already has knowledge about cleaning tapes. Once it
+ has some information about cleaning cycles (measured in drive
+ run time, number of tapes used, or calender days, for example)
+ it can automatically execute tape cleaning (with an
+ autochanger, obviously) or ask for operator assistance loading
+ a cleaning tape.
+
+ The final step would be to implement TAPEALERT checks not only
+ when changing tapes and only sending the information to the
+ administrator, but rather checking after each tape error,
+ checking on a regular basis (for example after each tape
+ file), and also before unloading and after loading a new tape.
+ Then, depending on the drives TAPEALERT state and the known
+ drive cleaning state Bacula could automatically schedule later
+ cleaning, clean immediately, or inform the operator.
+
+ Implementing this would perhaps require another catalog change
+ and perhaps major changes in SD code and the DIR-SD protocol,
+ so I'd only consider this worth implementing if it would
+ actually be used or even needed by many people.
+
+ Implementation of these projects could happen in three distinct
+ sub-projects: Measuring Tape and Drive usage, retiring
+ volumes, and handling drive cleaning and TAPEALERTs.
+
+Item 11: Allow skipping execution of Jobs
+ Date: 29 November 2005
+ Origin: Florian Schnabel <florian.schnabel at docufy dot de>
+ Status:
+
+ What: An easy option to skip a certain job on a certain date.
+ Why: You could then easily skip tape backups on holidays. Especially
+ if you got no autochanger and can only fit one backup on a tape
+ that would be really handy, other jobs could proceed normally
+ and you won't get errors that way.
+
+Item 12: Add a scheduling syntax that permits weekly rotations
+ Date: 15 December 2006
+ Origin: Gregory Brauer (greg at wildbrain dot com)
+ Status:
+
+ What: Currently, Bacula only understands how to deal with weeks of the
+ month or weeks of the year in schedules. This makes it impossible
+ to do a true weekly rotation of tapes. There will always be a
+ discontinuity that will require disruptive manual intervention at
+ least monthly or yearly because week boundaries never align with
+ month or year boundaries.
+
+ A solution would be to add a new syntax that defines (at least)
+ a start timestamp, and repetition period.
+
+ Why: Rotated backups done at weekly intervals are useful, and Bacula
+ cannot currently do them without extensive hacking.
+
+ Notes: Here is an example syntax showing a 3-week rotation where full
+ Backups would be performed every week on Saturday, and an
+ incremental would be performed every week on Tuesday. Each
+ set of tapes could be removed from the loader for the following
+ two cycles before coming back and being reused on the third
+ week. Since the execution times are determined by intervals
+ from a given point in time, there will never be any issues with
+ having to adjust to any sort of arbitrary time boundary. In
+ the example provided, I even define the starting schedule
+ as crossing both a year and a month boundary, but the run times
+ would be based on the "Repeat" value and would therefore happen
+ weekly as desired.
+
+
+ Schedule {
+ Name = "Week 1 Rotation"
+ #Saturday. Would run Dec 30, Jan 20, Feb 10, etc.
+ Run {
+ Options {
+ Type = Full
+ Start = 2006-12-30 01:00
+ Repeat = 3w
+ }
+ }
+ #Tuesday. Would run Jan 2, Jan 23, Feb 13, etc.
+ Run {
+ Options {
+ Type = Incremental
+ Start = 2007-01-02 01:00
+ Repeat = 3w
+ }
+ }
+ }
+
+ Schedule {
+ Name = "Week 2 Rotation"
+ #Saturday. Would run Jan 6, Jan 27, Feb 17, etc.
+ Run {
+ Options {
+ Type = Full
+ Start = 2007-01-06 01:00
+ Repeat = 3w
+ }
+ }
+ #Tuesday. Would run Jan 9, Jan 30, Feb 20, etc.
+ Run {
+ Options {
+ Type = Incremental
+ Start = 2007-01-09 01:00
+ Repeat = 3w
+ }
+ }
+ }
+
+ Schedule {
+ Name = "Week 3 Rotation"
+ #Saturday. Would run Jan 13, Feb 3, Feb 24, etc.
+ Run {
+ Options {
+ Type = Full
+ Start = 2007-01-13 01:00
+ Repeat = 3w
+ }
+ }
+ #Tuesday. Would run Jan 16, Feb 6, Feb 27, etc.
+ Run {
+ Options {
+ Type = Incremental
+ Start = 2007-01-16 01:00
+ Repeat = 3w
+ }
+ }
+ }
+
+Item 13: Archival (removal) of User Files to Tape
+ Date: Nov. 24/2005
+ Origin: Ray Pengelly [ray at biomed dot queensu dot ca
+ Status:
+
+ What: The ability to archive data to storage based on certain parameters
+ such as age, size, or location. Once the data has been written to
+ storage and logged it is then pruned from the originating
+ filesystem. Note! We are talking about user's files and not
+ Bacula Volumes.
+
+ Why: This would allow fully automatic storage management which becomes
+ useful for large datastores. It would also allow for auto-staging
+ from one media type to another.
+
+ Example 1) Medical imaging needs to store large amounts of data.
+ They decide to keep data on their servers for 6 months and then put
+ it away for long term storage. The server then finds all files
+ older than 6 months writes them to tape. The files are then removed
+ from the server.
+
+ Example 2) All data that hasn't been accessed in 2 months could be
+ moved from high-cost, fibre-channel disk storage to a low-cost
+ large-capacity SATA disk storage pool which doesn't have as quick of
+ access time. Then after another 6 months (or possibly as one
+ storage pool gets full) data is migrated to Tape.
+
+Item 14: Cause daemons to use a specific IP address to source communications
+ Origin: Bill Moran <wmoran@collaborativefusion.com>
+ Date: 18 Dec 2006
+ Status:
+ What: Cause Bacula daemons (dir, fd, sd) to always use the ip address
+ specified in the [DIR|DF|SD]Addr directive as the source IP
+ for initiating communication.
+ Why: On complex networks, as well as extremely secure networks, it's
+ not unusual to have multiple possible routes through the network.
+ Often, each of these routes is secured by different policies
+ (effectively, firewalls allow or deny different traffic depending
+ on the source address)
+ Unfortunately, it can sometimes be difficult or impossible to
+ represent this in a system routing table, as the result is
+ excessive subnetting that quickly exhausts available IP space.
+ The best available workaround is to provide multiple IPs to
+ a single machine that are all on the same subnet. In order
+ for this to work properly, applications must support the ability
+ to bind outgoing connections to a specified address, otherwise
+ the operating system will always choose the first IP that
+ matches the required route.
+ Notes: Many other programs support this. For example, the following
+ can be configured in BIND:
+ query-source address 10.0.0.1;
+ transfer-source 10.0.0.2;
+ Which means queries from this server will always come from
+ 10.0.0.1 and zone transfers will always originate from
+ 10.0.0.2.
+
+Item 15: Multiple threads in file daemon for the same job
+ Date: 27 November 2005
+ Origin: Ove Risberg (Ove.Risberg at octocode dot com)
+ Status:
+
+ What: I want the file daemon to start multiple threads for a backup
+ job so the fastest possible backup can be made.
+
+ The file daemon could parse the FileSet information and start
+ one thread for each File entry located on a separate
+ filesystem.
+
+ A confiuration option in the job section should be used to
+ enable or disable this feature. The confgutration option could
+ specify the maximum number of threads in the file daemon.
+
+ If the theads could spool the data to separate spool files
+ the restore process will not be much slower.
+
+ Why: Multiple concurrent backups of a large fileserver with many
+ disks and controllers will be much faster.
+
+Item 16: Add Plug-ins to the FileSet Include statements.
+ Date: 28 October 2005
+ Origin:
+ Status: Partially coded in 1.37 -- much more to do.
+
+ What: Allow users to specify wild-card and/or regular
+ expressions to be matched in both the Include and
+ Exclude directives in a FileSet. At the same time,
+ allow users to define plug-ins to be called (based on
+ regular expression/wild-card matching).
+
+ Why: This would give the users the ultimate ability to control
+ how files are backed up/restored. A user could write a
+ plug-in knows how to backup his Oracle database without
+ stopping/starting it, for example.
+
+Item 17: Restore only file attributes (permissions, ACL, owner, group...)
+ Origin: Eric Bollengier
+ Date: 30/12/2006
+ Status:
+
+ What: The goal of this project is to be able to restore only rights
+ and attributes of files without crushing them.
+
+ Why: Who have never had to repair a chmod -R 777, or a wild update
+ of recursive right under Windows? At this time, you must have
+ enough space to restore data, dump attributes (easy with acl,
+ more complex with unix/windows rights) and apply them to your
+ broken tree. With this options, it will be very easy to compare
+ right or ACL over the time.
+
+ Notes: If the file is here, we skip restore and we change rights.
+ If the file isn't here, we can create an empty one and apply
+ rights or do nothing.
+
+Item 18: Quick release of FD-SD connection after backup.
+ Origin: Frank Volf (frank at deze dot org)
+ Date: 17 November 2005
+ Status: Done -- implemented by Kern -- in CVS 26Jan07
+
+ What: In the Bacula implementation a backup is finished after all data
+ and attributes are successfully written to storage. When using a
+ tape backup it is very annoying that a backup can take a day,
+ simply because the current tape (or whatever) is full and the
+ administrator has not put a new one in. During that time the
+ system cannot be taken off-line, because there is still an open
+ session between the storage daemon and the file daemon on the
+ client.
+
+ Although this is a very good strategy for making "safe backups"
+ This can be annoying for e.g. laptops, that must remain
+ connected until the backup is completed.
+
+ Using a new feature called "migration" it will be possible to
+ spool first to harddisk (using a special 'spool' migration
+ scheme) and then migrate the backup to tape.
+
+ There is still the problem of getting the attributes committed.
+ If it takes a very long time to do, with the current code, the
+ job has not terminated, and the File daemon is not freed up. The
+ Storage daemon should release the File daemon as soon as all the
+ file data and all the attributes have been sent to it (the SD).
+ Currently the SD waits until everything is on tape and all the
+ attributes are transmitted to the Director before signaling
+ completion to the FD. I don't think I would have any problem
+ changing this. The reason is that even if the FD reports back to
+ the Dir that all is OK, the job will not terminate until the SD
+ has done the same thing -- so in a way keeping the SD-FD link
+ open to the very end is not really very productive ...
+
+ Why: Makes backup of laptops much faster.
+
+Item 19: Implement a Python interface to the Bacula catalog.
+ Date: 28 October 2005
+ Origin: Kern
+ Status:
+
+ What: Implement an interface for Python scripts to access
+ the catalog through Bacula.
+
+ Why: This will permit users to customize Bacula through
+ Python scripts.
+
+Item 20: Archive data
+ Date: 15/5/2006
+ Origin: calvin streeting calvin at absentdream dot com
+ Status:
+
+ What: The abilty to archive to media (dvd/cd) in a uncompressed format
+ for dead filing (archiving not backing up)
+
+ Why: At my works when jobs are finished and moved off of the main file
+ servers (raid based systems) onto a simple linux file server (ide based
+ system) so users can find old information without contacting the IT
+ dept.
+
+ So this data dosn't realy change it only gets added to,
+ But it also needs backing up. At the moment it takes
+ about 8 hours to back up our servers (working data) so
+ rather than add more time to existing backups i am trying
+ to implement a system where we backup the acrhive data to
+ cd/dvd these disks would only need to be appended to
+ (burn only new/changed files to new disks for off site
+ storage). basialy understand the differnce between
+ achive data and live data.
+
+ Notes: Scan the data and email me when it needs burning divide
+ into predifind chunks keep a recored of what is on what
+ disk make me a label (simple php->mysql=>pdf stuff) i
+ could do this bit ability to save data uncompresed so
+ it can be read in any other system (future proof data)
+ save the catalog with the disk as some kind of menu
+ system
+
+Item 21: Split documentation
+ Origin: Maxx <maxxatworkat gmail dot com>
+ Date: 27th July 2006
+ Status:
+
+ What: Split documentation in several books
+
+ Why: Bacula manual has now more than 600 pages, and looking for
+ implementation details is getting complicated. I think
+ it would be good to split the single volume in two or
+ maybe three parts:
+
+ 1) Introduction, requirements and tutorial, typically
+ are useful only until first installation time
+
+ 2) Basic installation and configuration, with all the
+ gory details about the directives supported 3)
+ Advanced Bacula: testing, troubleshooting, GUI and
+ ancillary programs, security managements, scripting,
+ etc.
+
+
+Item 22: Implement support for stacking arbitrary stream filters, sinks.
+Date: 23 November 2006
+Origin: Landon Fuller <landonf@threerings.net>
+Status: Planning. Assigned to landonf.
+
+ What: Implement support for the following:
+ - Stacking arbitrary stream filters (eg, encryption, compression,
+ sparse data handling))
+ - Attaching file sinks to terminate stream filters (ie, write out
+ the resultant data to a file)
+ - Refactor the restoration state machine accordingly
+
+ Why: The existing stream implementation suffers from the following:
+ - All state (compression, encryption, stream restoration), is
+ global across the entire restore process, for all streams. There are
+ multiple entry and exit points in the restoration state machine, and
+ thus multiple places where state must be allocated, deallocated,
+ initialized, or reinitialized. This results in exceptional complexity
+ for the author of a stream filter.
+ - The developer must enumerate all possible combinations of filters
+ and stream types (ie, win32 data with encryption, without encryption,
+ with encryption AND compression, etc).
+
+ Notes: This feature request only covers implementing the stream filters/
+ sinks, and refactoring the file daemon's restoration implementation
+ accordingly. If I have extra time, I will also rewrite the backup
+ implementation. My intent in implementing the restoration first is to
+ solve pressing bugs in the restoration handling, and to ensure that
+ the new restore implementation handles existing backups correctly.
+
+ I do not plan on changing the network or tape data structures to
+ support defining arbitrary stream filters, but supporting that
+ functionality is the ultimate goal.
+
+ Assistance with either code or testing would be fantastic.
+
+Item 23: Implement from-client and to-client on restore command line.
+ Date: 11 December 2006
+ Origin: Discussion on Bacula-users entitled 'Scripted restores to
+ different clients', December 2006
+ Status: New feature request
+
+ What: While using bconsole interactively, you can specify the client
+ that a backup job is to be restored for, and then you can
+ specify later a different client to send the restored files
+ back to. However, using the 'restore' command with all options
+ on the command line, this cannot be done, due to the ambiguous
+ 'client' parameter. Additionally, this parameter means different
+ things depending on if it's specified on the command line or
+ afterwards, in the Modify Job screens.
+
+ Why: This feature would enable restore jobs to be more completely
+ automated, for example by a web or GUI front-end.
+
+ Notes: client can also be implied by specifying the jobid on the command
+ line
+
+Item 24: Add an override in Schedule for Pools based on backup types.
+Date: 19 Jan 2005
+Origin: Chad Slater <chad.slater@clickfox.com>
+Status:
+
+ What: Adding a FullStorage=BigTapeLibrary in the Schedule resource
+ would help those of us who use different storage devices for different
+ backup levels cope with the "auto-upgrade" of a backup.
+
+ Why: Assume I add several new device to be backed up, i.e. several
+ hosts with 1TB RAID. To avoid tape switching hassles, incrementals are
+ stored in a disk set on a 2TB RAID. If you add these devices in the
+ middle of the month, the incrementals are upgraded to "full" backups,
+ but they try to use the same storage device as requested in the
+ incremental job, filling up the RAID holding the differentials. If we
+ could override the Storage parameter for full and/or differential
+ backups, then the Full job would use the proper Storage device, which
+ has more capacity (i.e. a 8TB tape library.
+
+Item 25: Implement huge exclude list support using hashing (dlists).
+ Date: 28 October 2005
+ Origin: Kern
+ Status: Done in 2.1.2 but was done with dlists (doubly linked lists
+ since hashing will not help. The huge list also supports
+ large include lists).
+
+ What: Allow users to specify very large exclude list (currently
+ more than about 1000 files is too many).
+
+ Why: This would give the users the ability to exclude all
+ files that are loaded with the OS (e.g. using rpms
+ or debs). If the user can restore the base OS from
+ CDs, there is no need to backup all those files. A
+ complete restore would be to restore the base OS, then
+ do a Bacula restore. By excluding the base OS files, the
+ backup set will be *much* smaller.
+
+Item 26: Implement more Python events in Bacula.
+ Date: 28 October 2005
+ Origin: Kern
+ Status:
+
+ What: Allow Python scripts to be called at more places
+ within Bacula and provide additional access to Bacula
+ internal variables.
+
+ Why: This will permit users to customize Bacula through
+ Python scripts.
+
+ Notes: Recycle event
+ Scratch pool event
+ NeedVolume event
+ MediaFull event
+
+ Also add a way to get a listing of currently running
+ jobs (possibly also scheduled jobs).
+
+
+Item 27: Incorporation of XACML2/SAML2 parsing
+ Date: 19 January 2006
+ Origin: Adam Thornton <athornton@sinenomine.net>
+ Status: Blue sky
+
+ What: XACML is "eXtensible Access Control Markup Language" and
+ "SAML is the "Security Assertion Markup Language"--an XML standard
+ for making statements about identity and authorization. Having these
+ would give us a framework to approach ACLs in a generic manner, and
+ in a way flexible enough to support the four major sorts of ACLs I
+ see as a concern to Bacula at this point, as well as (probably) to
+ deal with new sorts of ACLs that may appear in the future.
+
+ Why: Bacula is beginning to need to back up systems with ACLs
+ that do not map cleanly onto traditional Unix permissions. I see
+ four sets of ACLs--in general, mutually incompatible with one
+ another--that we're going to need to deal with. These are: NTFS
+ ACLs, POSIX ACLs, NFSv4 ACLS, and AFS ACLS. (Some may question the
+ relevance of AFS; AFS is one of Sine Nomine's core consulting
+ businesses, and having a reputable file-level backup and restore
+ technology for it (as Tivoli is probably going to drop AFS support
+ soon since IBM no longer supports AFS) would be of huge benefit to
+ our customers; we'd most likely create the AFS support at Sine Nomine
+ for inclusion into the Bacula (and perhaps some changes to the
+ OpenAFS volserver) core code.)
+
+ Now, obviously, Bacula already handles NTFS just fine. However, I
+ think there's a lot of value in implementing a generic ACL model, so
+ that it's easy to support whatever particular instances of ACLs come
+ down the pike: POSIX ACLS (think SELinux) and NFSv4 are the obvious
+ things arriving in the Linux world in a big way in the near future.
+ XACML, although overcomplicated for our needs, provides this
+ framework, and we should be able to leverage other people's
+ implementations to minimize the amount of work *we* have to do to get
+ a generic ACL framework. Basically, the costs of implementation are
+ high, but they're largely both external to Bacula and already sunk.
+
+Item 28: Filesystem watch triggered backup.
+ Date: 31 August 2006
+ Origin: Jesper Krogh <jesper@krogh.cc>
+ Status: Unimplemented, depends probably on "client initiated backups"
+
+ What: With inotify and similar filesystem triggeret notification
+ systems is it possible to have the file-daemon to monitor
+ filesystem changes and initiate backup.
+
+ Why: There are 2 situations where this is nice to have.
+ 1) It is possible to get a much finer-grained backup than
+ the fixed schedules used now.. A file created and deleted
+ a few hours later, can automatically be caught.
+
+ 2) The introduced load on the system will probably be
+ distributed more even on the system.
+
+ Notes: This can be combined with configration that specifies
+ something like: "at most every 15 minutes or when changes
+ consumed XX MB".
+
+Kern Notes: I would rather see this implemented by an external program
+ that monitors the Filesystem changes, then uses the console
+ to start the appropriate job.
+
+Item 29: Allow inclusion/exclusion of files in a fileset by creation/mod times
+ Origin: Evan Kaufman <evan.kaufman@gmail.com>
+ Date: January 11, 2006
+ Status:
+
+ What: In the vein of the Wild and Regex directives in a Fileset's
+ Options, it would be helpful to allow a user to include or exclude
+ files and directories by creation or modification times.
+
+ You could factor the Exclude=yes|no option in much the same way it
+ affects the Wild and Regex directives. For example, you could exclude
+ all files modified before a certain date:
+
+ Options {
+ Exclude = yes
+ Modified Before = ####
+ }
+
+ Or you could exclude all files created/modified since a certain date:
+
+ Options {
+ Exclude = yes
+ Created Modified Since = ####
+ }
+
+ The format of the time/date could be done several ways, say the number
+ of seconds since the epoch:
+ 1137008553 = Jan 11 2006, 1:42:33PM # result of `date +%s`
+
+ Or a human readable date in a cryptic form:
+ 20060111134233 = Jan 11 2006, 1:42:33PM # YYYYMMDDhhmmss
+
+ Why: I imagine a feature like this could have many uses. It would
+ allow a user to do a full backup while excluding the base operating
+ system files, so if I installed a Linux snapshot from a CD yesterday,
+ I'll *exclude* all files modified *before* today. If I need to
+ recover the system, I use the CD I already have, plus the tape backup.
+ Or if, say, a Windows client is hit by a particularly corrosive
+ virus, and I need to *exclude* any files created/modified *since* the
+ time of infection.
+
+ Notes: Of course, this feature would work in concert with other
+ in/exclude rules, and wouldnt override them (or each other).
+
+ Notes: The directives I'd imagine would be along the lines of
+ "[Created] [Modified] [Before|Since] = <date>".
+ So one could compare against 'ctime' and/or 'mtime', but ONLY 'before'
+ or 'since'.
+
+
+Item 30: Tray monitor window cleanups
+ Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
+ Date: 24 July 2006
+ Status:
+ What: Resizeable and scrollable windows in the tray monitor.
+
+ Why: With multiple clients, or with many jobs running, the displayed
+ window often ends up larger than the available screen, making
+ the trailing items difficult to read.
+
+
+Item 31: Implement multiple numeric backup levels as supported by dump
+Date: 3 April 2006
+Origin: Daniel Rich <drich@employees.org>
+Status:
+What: Dump allows specification of backup levels numerically instead of just
+ "full", "incr", and "diff". In this system, at any given level, all
+ files are backed up that were were modified since the last backup of a
+ higher level (with 0 being the highest and 9 being the lowest). A
+ level 0 is therefore equivalent to a full, level 9 an incremental, and
+ the levels 1 through 8 are varying levels of differentials. For
+ bacula's sake, these could be represented as "full", "incr", and
+ "diff1", "diff2", etc.
+
+Why: Support of multiple backup levels would provide for more advanced backup
+ rotation schemes such as "Towers of Hanoi". This would allow better
+ flexibility in performing backups, and can lead to shorter recover
+ times.
+
+Notes: Legato Networker supports a similar system with full, incr, and 1-9 as
+ levels.
+
+Item 32: Automatic promotion of backup levels
+ Date: 19 January 2006
+ Origin: Adam Thornton <athornton@sinenomine.net>
+ Status:
+
+ What: Amanda has a feature whereby it estimates the space that a
+ differential, incremental, and full backup would take. If the
+ difference in space required between the scheduled level and the next
+ level up is beneath some user-defined critical threshold, the backup
+ level is bumped to the next type. Doing this minimizes the number of
+ volumes necessary during a restore, with a fairly minimal cost in
+ backup media space.
+
+ Why: I know at least one (quite sophisticated and smart) user
+ for whom the absence of this feature is a deal-breaker in terms of
+ using Bacula; if we had it it would eliminate the one cool thing
+ Amanda can do and we can't (at least, the one cool thing I know of).
+
+Item 33: Clustered file-daemons
+ Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
+ Date: 24 July 2006
+ Status:
+ What: A "virtual" filedaemon, which is actually a cluster of real ones.
+
+ Why: In the case of clustered filesystems (SAN setups, GFS, or OCFS2, etc)
+ multiple machines may have access to the same set of filesystems
+
+ For performance reasons, one may wish to initate backups from
+ several of these machines simultaneously, instead of just using
+ one backup source for the common clustered filesystem.
+
+ For obvious reasons, normally backups of $A-FD/$PATH and
+ B-FD/$PATH are treated as different backup sets. In this case
+ they are the same communal set.
+
+ Likewise when restoring, it would be easier to just specify
+ one of the cluster machines and let bacula decide which to use.
+
+ This can be faked to some extent using DNS round robin entries
+ and a virtual IP address, however it means "status client" will
+ always give bogus answers. Additionally there is no way of
+ spreading the load evenly among the servers.
+
+ What is required is something similar to the storage daemon
+ autochanger directives, so that Bacula can keep track of
+ operating backups/restores and direct new jobs to a "free"
+ client.
+
+ Notes:
+
+Item 34: Commercial database support
+ Origin: Russell Howe <russell_howe dot wreckage dot org>
+ Date: 26 July 2006
+ Status:
+
+ What: It would be nice for the database backend to support more
+ databases. I'm thinking of SQL Server at the moment, but I guess Oracle,
+ DB2, MaxDB, etc are all candidates. SQL Server would presumably be
+ implemented using FreeTDS or maybe an ODBC library?
+
+ Why: We only really have one database server, which is MS SQL Server
+ 2000. Maintaining a second one for the backup software (we grew out of
+ SQLite, which I liked, but which didn't work so well with our database
+ size). We don't really have a machine with the resources to run
+ postgres, and would rather only maintain a single DBMS. We're stuck with
+ SQL Server because pretty much all the company's custom applications
+ (written by consultants) are locked into SQL Server 2000. I can imagine
+ this scenario is fairly common, and it would be nice to use the existing
+ properly specced database server for storing Bacula's catalog, rather
+ than having to run a second DBMS.
+
+Item 35: Automatic disabling of devices
+ Date: 2005-11-11
+ Origin: Peter Eriksson <peter at ifm.liu dot se>
+ Status:
+
+ What: After a configurable amount of fatal errors with a tape drive
+ Bacula should automatically disable further use of a certain
+ tape drive. There should also be "disable"/"enable" commands in
+ the "bconsole" tool.
+
+ Why: On a multi-drive jukebox there is a possibility of tape drives
+ going bad during large backups (needing a cleaning tape run,
+ tapes getting stuck). It would be advantageous if Bacula would
+ automatically disable further use of a problematic tape drive
+ after a configurable amount of errors has occurred.
+
+ An example: I have a multi-drive jukebox (6 drives, 380+ slots)
+ where tapes occasionally get stuck inside the drive. Bacula will
+ notice that the "mtx-changer" command will fail and then fail
+ any backup jobs trying to use that drive. However, it will still
+ keep on trying to run new jobs using that drive and fail -
+ forever, and thus failing lots and lots of jobs... Since we have
+ many drives Bacula could have just automatically disabled
+ further use of that drive and used one of the other ones
+ instead.
+
+Item 36: An option to operate on all pools with update vol parameters
+ Origin: Dmitriy Pinchukov <absh@bossdev.kiev.ua>
+ Date: 16 August 2006
+ Status:
+
+ What: When I do update -> Volume parameters -> All Volumes
+ from Pool, then I have to select pools one by one. I'd like
+ console to have an option like "0: All Pools" in the list of
+ defined pools.
+
+ Why: I have many pools and therefore unhappy with manually
+ updating each of them using update -> Volume parameters -> All
+ Volumes from Pool -> pool #.
+
+Item 37: Add an item to the restore option where you can select a pool
+ Origin: kshatriyak at gmail dot com
+ Date: 1/1/2006
+ Status:
+
+ What: In the restore option (Select the most recent backup for a
+ client) it would be useful to add an option where you can limit
+ the selection to a certain pool.
+
+ Why: When using cloned jobs, most of the time you have 2 pools - a
+ disk pool and a tape pool. People who have 2 pools would like to
+ select the most recent backup from disk, not from tape (tape
+ would be only needed in emergency). However, the most recent
+ backup (which may just differ a second from the disk backup) may
+ be on tape and would be selected. The problem becomes bigger if
+ you have a full and differential - the most "recent" full backup
+ may be on disk, while the most recent differential may be on tape
+ (though the differential on disk may differ even only a second or
+ so). Bacula will complain that the backups reside on different
+ media then. For now the only solution now when restoring things
+ when you have 2 pools is to manually search for the right
+ job-id's and enter them by hand, which is a bit fault tolerant.
+
+Item 38: Include timestamp of job launch in "stat clients" output
+ Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
+ Date: Tue Aug 22 17:13:39 EDT 2006
+ Status:
+
+ What: The "stat clients" command doesn't include any detail on when
+ the active backup jobs were launched.
+
+ Why: Including the timestamp would make it much easier to decide whether
+ a job is running properly.
+
+ Notes: It may be helpful to have the output from "stat clients" formatted
+ more like that from "stat dir" (and other commands), in a column
+ format. The per-client information that's currently shown (level,
+ client name, JobId, Volume, pool, device, Files, etc.) is good, but
+ somewhat hard to parse (both programmatically and visually),
+ particularly when there are many active clients.
+
+
+Item 39: Message mailing based on backup types
+ Origin: Evan Kaufman <evan.kaufman@gmail.com>
+ Date: January 6, 2006
+ Status:
+
+ What: In the "Messages" resource definitions, allowing messages
+ to be mailed based on the type (backup, restore, etc.) and level
+ (full, differential, etc) of job that created the originating
+ message(s).
+
+ Why: It would, for example, allow someone's boss to be emailed
+ automatically only when a Full Backup job runs, so he can
+ retrieve the tapes for offsite storage, even if the IT dept.
+ doesn't (or can't) explicitly notify him. At the same time, his
+ mailbox wouldnt be filled by notifications of Verifies, Restores,
+ or Incremental/Differential Backups (which would likely be kept
+ onsite).
+
+ Notes: One way this could be done is through additional message types, for example:
+
+ Messages {
+ # email the boss only on full system backups
+ Mail = boss@mycompany.com = full, !incremental, !differential, !restore,
+ !verify, !admin
+ # email us only when something breaks
+ MailOnError = itdept@mycompany.com = all
+ }
+
+
+Item 40: Include JobID in spool file name ****DONE****
+ Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
+ Date: Tue Aug 22 17:13:39 EDT 2006
+ Status: Done. (patches/testing/project-include-jobid-in-spool-name.patch)
+ No need to vote for this item.
+
+ What: Change the name of the spool file to include the JobID
+
+ Why: JobIDs are the common key used to refer to jobs, yet the
+ spoolfile name doesn't include that information. The date/time
+ stamp is useful (and should be retained).
+
+============= New Freature Requests after vote of 26 Jan 2007 ========
+Item 41: Enable to relocate files and directories when restoring
+ Date: 2007-03-01
+ Origin: Eric Bollengier <eric@eb.homelinux.org>
+ Status: Done.
+
+ What: The where= option is not powerful enough. It will be
+ a great feature if bacula can restore a file in the
+ same directory, but with a different name, or in
+ an other directory without recreating the full path.
+
+ Why: When i want to restore a production environment to a
+ development environment, i just want change the first
+ directory. ie restore /prod/data/file.dat to /rect/data/file.dat.
+ At this time, i have to move by hand files. You must have a big
+ dump space to restore and move data after.
+
+ When i use Linux or SAN snapshot, i mount them to /mnt/snap_xxx
+ so, when a restore a file, i have to move by hand
+ from /mnt/snap_xxx/file to /xxx/file. I can't replace a file
+ easily.
+
+ When a user ask me to restore a file in its personal folder,
+ (without replace the existing one), i can't restore from
+ my_file.txt to my_file.txt.old witch is very practical.
+
+
+ Notes: I think we can enhance the where= option very easily by
+ allowing regexp expression.
+
+ Since, many users think that regexp are not user friendly, i think
+ that bat, bconsole or brestore must provide a simple way to
+ configure where= option (i think to something like in
+ openoffice "search and replace").
+
+ Ie, if user uses where=/tmp/bacula-restore, we keep the old
+ fashion.
+
+ If user uses something like where=s!/prod!/test!, files will
+ be restored from /prod/xxx to /test/xxx.
+
+ If user uses something like where=s/$/.old/, files will
+ be restored from /prod/xxx.txt to /prod/xxx.txt.old.
+
+ If user uses something like where=s/txt$/old.txt/, files will
+ be restored from /prod/xxx.txt to /prod/xxx.old.txt
+
+ if user uses something like where=s/([a-z]+)$/old.$1/, files will
+ be restored from /prod/xxx.ext to /prod/xxx.old.ext
+
+Item n: Implement Catalog directive for Pool resource in Director
+configuration
+ Origin: Alan Davis adavis@ruckus.com
+ Date: 6 March 2007
+ Status: Submitted
+
+ What: The current behavior is for the director to create all pools
+ found in the configuration file in all catalogs. Add a
+ Catalog directive to the Pool resource to specify which
+ catalog to use for each pool definition.
+
+ Why: This allows different catalogs to have different pool
+ attributes and eliminates the side-effect of adding
+ pools to catalogs that don't need/use them.
+
+ Notes:
+
+
+Item n: Implement NDMP protocol support
+ Origin: Alan Davis
+ Date: 06 March 2007
+ Status: Submitted
+
+ What: Network Data Management Protocol is implemented by a number of
+ NAS filer vendors to enable backups using third-party
+ software.
+
+ Why: This would allow NAS filer backups in Bacula without incurring
+ the overhead of NFS or SBM/CIFS.
+
+ Notes: Further information is available:
+ http://www.ndmp.org
+ http://www.ndmp.org/wp/wp.shtml
+ http://www.traakan.com/ndmjob/index.html
+
+ There are currently no viable open-source NDMP
+ implementations. There is a reference SDK and example
+ app available from ndmp.org but it has problems
+ compiling on recent Linux and Solaris OS'. The ndmjob
+ reference implementation from Traakan is known to
+ compile on Solaris 10.
+
+ Notes (Kern): I am not at all in favor of this until NDMP becomes
+ an Open Standard or until there are Open Source libraries
+ that interface to it.
+
+Item n: make changing "spooldata=yes|no" possible for
+ manual/interactive jobs
+
+Origin: Marc Schiffbauer <marc@schiffbauer.net>
+
+Date: 12 April 2007)
+
+Status: NEW
+
+What: Make it possible to modify the spooldata option
+ for a job when being run from within the console.
+ Currently it is possible to modify the backup level
+ and the spooldata setting in a Schedule resource.
+ It is also possible to modify the backup level when using
+ the "run" command in the console.
+ But it is currently not possible to to the same
+ with "spooldata=yes|no" like:
+
+ run job=MyJob level=incremental spooldata=yes
+
+Why: In some situations it would be handy to be able to switch
+ spooldata on or off for interactive/manual jobs based on
+ which data the admin expects or how fast the LAN/WAN
+ connection currently is.
+
+Notes: ./.
+
+============= Empty Feature Request form ===========
+Item n: One line summary ...
+ Date: Date submitted
+ Origin: Name and email of originator.
+ Status:
+
+ What: More detailed explanation ...
+
+ Why: Why it is important ...
+
+ Notes: Additional notes or features (omit if not used)
+============== End Feature Request form ==============
+
+</pre>
+
+ </td>
+</tr>
+</table>
+
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic">
+ System Requirements
+ </td>
+</tr>
+<tr>
+ <td class="content">
+
+ <ul class="hardware">
+ <li><b>Bacula</b> has been compiled and run on Linux, FreeBSD,
+ and Solaris systems.</li>
+ <li>It requires GNU C++ version 2.95 or higher to compile. You can try
+ with other compilers and older versions, but you are on your
+ own. We have successfully compiled and used Bacula on
+ RH8.0/RH9/RHEL 3.0 with GCC 3.2. Note, in general GNU C++ is a
+ separate package (e.g. RPM) from GNU C, so you need them both
+ loaded. On RedHat systems, the C++ compiler is part of the
+ <b>gcc-c++</b> rpm package. </li>
+ <li>There are certain third party packages that Bacula needs.
+ Except for MySQL and PostgreSQL, they can all be found in the
+ <b>depkgs</b> and <b>depkgs1</b> releases.</li>
+ <li>If you want to build the Win32 binaries, you should know
+ that they are cross-compiled on a Linux machine. For
+ more information, please see the src/win32/README.mingw32
+ file in the source distribution.
+ Although we document it, we do not support building the
+ Win32 binaries. Only the Win32 File daemon is officially
+ supported, though the other daemons are available in the
+ binary release.</li>
+ <li><b>Bacula</b> requires a good implementation of pthreads to work.
+ This is not the case on some of the BSD systems.</li>
+ <li>The source code has been written with portability in mind and is
+ mostly POSIX compatible. Thus porting to any POSIX compatible
+ operating system should be relatively easy.</li>
+ <li>The GNOME Console program is developed and tested under GNOME 2.x.
+ </li>
+ <li>The wxWidgets Console program is developed and tested with the
+ latest stable version of <a
+ href="http://www.wxwidgets.org/">wxWidgets</a> (2.6). It
+ works fine with the Windows and GTK+-2.x version of wxWidgets,
+ and should also works on other platforms supported by
+ wxWidgets.</li>
+ <li>The Tray Monitor program is developed for GTK+-2.x. It needs
+ Gnome >=2.2, KDE >=3.1 or any window manager supporting the
+ <a href="http://www.freedesktop.org/Standards/systemtray-spec">
+ FreeDesktop system tray standard</a>.</li>
+ <li>If you want to enable command line editing and history, you will
+ need to have /usr/include/termcap.h and either the termcap or the
+ ncurses library loaded (libtermcap-devel or ncurses-devel).</li>
+ </ul>
+
+ </td>
+</tr>
+</table>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic"> Support for Bacula </td>
+</tr>
+<tr>
+ <td class="content">
+
+ Please keep in mind that we are not getting paid for this.
+ Nevertheless, our desire is to see as many people using
+ <b>Bacula</b> as possible. So we are very willing to
+ provide a reasonable level of email support.
+
+ <p>Before asking for help, it could be useful to check against the
+ email archive as often solution to your problem has been discussed
+ or a patch has been released. Please see:
+ <a href="http://news.gmane.org/search.php?match=bacula">
+ http://news.gmane.org/search.php?match=bacula</a>.
+
+ Also, if you are using Bacula in production, we highly recommend
+ subscribing to the bugs database at: <a href="http://bugs.bacula.org">
+ http://bugs.bacula.org</a> to keep informed of problems and
+ patches.
+
+ <p>For support, send an email to
+ <b>bacula-users at lists.sourceforge.net</b>, and if you are
+ specific enough, some kind Bacula user will help you. Please
+ note that if you don't at least specify what version of Bacula
+ and what platform you are using, it will not be easy to get a
+ valid answer. The email address noted above
+ was modified to prevent easy use by spammers.
+ To use it, you must replace the <b>at</b> with an @ symbol. Due
+ to the increasing volumes of spam on the list, you must
+ be subscribed to it to be able to send and email to it. The
+ link to your left entitled <b>Email Lists</b> provides links
+ to where you can subscribe to each of the Bacula email lists.
+
+ The users constantly monitor this list and will generally provide
+ support. Please see <b>Information Needed</b> below for what to
+ include in your support request. If you don't supply the necessary
+ information, it will take longer to respond to your request, and
+ users may be afraid to try to respond,
+ if your request is too complicated or not well formulated.
+
+
+ <p>I (Kern) get a number of "off-list" emails sent
+ directly to me. Unfortunately, I am no longer able to provide
+ direct user support. However, I do read all the email sent and
+ occasionally provide a tip or two. If you do send email to me,
+ please always copy the appropriate list, if you
+ do not copy the list, I may not answer you, or I will answer by copying
+ the list. If you <em>really</em> have something confidential,
+ please clearly indicate it.</p>
+
+ <p>If you send a bug report or minor enhancement request because of a
+ problem to the bacula-devel list, and you do not provide the information
+ requested below, particularly the Bacula version, it is <b>very</b>
+ frustrating for us, because it is quite often the case that your problem is
+ version dependent, and likely already fixed. In such case, we will note
+ the problem, but you will be unlikely to get a response, especially if we
+ are busy, because it forces us to first ask you what version you are using
+ (or other information), then deal with your response, thus doubling the
+ time for us. If we do ask you for information, please include <b>all</b>
+ the previous correspondence in each email, otherwise you force us to search
+ the archives to find what you previously wrote. In short, if you want a
+ response, please see "Information Needed" below.
+
+ <p>If you are looking for live-support you might check out our irc-channel
+ in the <a href="http://www.freenode.net">Freenode</a> net, called #bacula.
+
+<h3>Information Needed</h3>
+For us to respond to a bug report, we normally need the following
+as the minimum information, which you can enter into the appropriate
+fields of the bug reporting system:
+<ul>
+<li>Your operating system</li>
+<li>The version of Bacula you are using</li>
+<li>A <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">clear and concise</a> description of the problem</li>
+<li>If you say "it crashes", "it doesn't work" or something
+ similar, you should include some output from Bacula that shows this.</li>
+<li>If we respond to your email, and you answer, possibly supplying more
+ information, please be sure to include the <b>full</b> text of previous
+ emails so that we have all the information in one place.</li>
+</ul>
+If you are having tape problems, please include:
+<ul>
+ <li>The kind of tape drive you have </li>
+ <li>Have you run the <b>btape</b> "test" command?</li>
+</ul>
+
+If you are having database problems, please include:
+<ul>
+ <li>The database you are using: MySQL, PostgreSQL, SQLite, SQLite3 </li>
+ <li>The version of the database you are using</li>
+</ul>
+
+The first two of these items can be fulfilled by sending
+us a copy of your <b>config.out</b> file, which is in the
+main <b>Bacula</b> source directory after you have done
+your <b>./configure</b>.
+<p>In addition, we will sometimes need a copy of your Bacula
+configuration files (especially bacula-dir.conf). If you
+think it is a configuration problem, please don't hesitate
+to send them if necessary.</td>
+</tr>
+<tr>
+ <td style="font-size: 14px; padding: 0px 20px 0px 20px">
+ Please read that little Bug-Report-<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">HowTo</a> as well.
+ </td>
+</tr>
+
+</table>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<?
+$dat_dir = '../testimonials';
+
+$org_type_lst = array(
+ '0' => "SELECT ONE",
+ '15' => "Church / Religious Organization",
+ '3' => "Corporation",
+ '14' => "Educational Institution",
+ '5' => "Government",
+ '6' => "Military",
+ '13' => "Non-Profit Organization",
+ '10' => "Other",
+ '4' => "Small Business"
+);
+
+$version_lst = array(
+ '0' => "SELECT ONE",
+ '1' => "1.36.x",
+ '2' => "1.38.x",
+ '3' => "2.0.x",
+ '4' => "2.2.x",
+ '5' => "SVN version"
+);
+
+$catalog_lst = array(
+ '0' => "SELECT ONE",
+ '1' => "MySQL",
+ '2' => "PostgreSQL",
+ '3' => "SqLite"
+);
+
+$org_industry_lst = array(
+ '0' => 'SELECT ONE', '25' => 'Aerospace / Aeronautical',
+ '11' => 'Agriculture / Farming', '38' => 'Architecture / Design',
+ '44' => 'Arts', '5' => 'ASP',
+ '54' => 'Banking',
+ '42' => 'Church / Religious Organization', '45' => 'Coaching',
+ '10' => 'Construction', '22' => 'Consulting (General)',
+ '21' => 'Consulting (Information Technology)', '31' => 'Defense Industry',
+ '51' => 'Education / Training', '37' => 'Energy Industry',
+ '46' => 'Engineering', '35' => 'Entertainment (Film)',
+ '34' => 'Entertainment (Music)', '36' => 'Entertainment (Other)',
+ '47' => 'Event Management / Conferences', '7' => 'Finance / Banking / Accounting',
+ '12' => 'Food Service Industry', '29' => 'Government',
+ '3' => 'Healthcare / Medicine', '8' => 'Higher Education',
+ '6' => 'Insurance', '4' => 'Internet Service Provider',
+ '2' => 'K-12 Education', '48' => 'Law Enforcement / Emergency Management',
+ '14' => 'Legal', '24' => 'Manufacturing (Computer Equipment)',
+ '23' => 'Manufacturing (General)', '53' => 'Media (Publishing, Broadcasting, etc)',
+ '30' => 'Military', '9' => 'Mining',
+ '18' => 'Natural Resources / Environment', '15' => 'Pharmaceuticals',
+ '49' => 'Public Relations / Advertising', '13' => 'Real Estate',
+ '41' => 'Retail / Consumer Goods', '52' => 'Sales / Marketing',
+ '32' => 'Scientific Research', '33' => 'Sports / Recreation',
+ '43' => 'Technical College / Trade School', '40' => 'Telecommunications',
+ '27' => 'Transportation Industry (Air)', '28' => 'Transportation Industry (General)',
+ '26' => 'Transportation Industry (Marine)', '50' => 'Travel / Tourism / Lodging',
+ '17' => 'Travel Industry', '39' => 'Utilities / Public Works',
+ '16' => 'Other'
+);
+
+$os_lst = array(
+ '0' => 'SELECT ONE', '20' => 'AIX',
+ '21' => 'FreeBSD', '14' => 'HP-UX',
+ '2' => 'Linux (Debian)', '27' => 'Linux (Fedora)',
+ '25' => 'Linux (Gentoo)', '4' => 'Linux (Mandrake)',
+ '5' => 'Linux (Other)', '1' => 'Linux (RedHat)',
+ '26' => 'Linux (Slackware)', '3' => 'Linux (Suse)',
+ '18' => 'Mac OS X', '22' => 'NetBSD',
+ '23' => 'OpenBSD', '24' => 'Other',
+ '13' => 'Solaris', '15' => 'Windows 2000',
+ '16' => 'Windows 2003', '17' => 'Windows XP'
+);
+
+$country_lst = array(
+ '0' => 'SELECT ONE', '1' => 'Afghanistan',
+ '2' => 'Albania', '3' => 'Algeria',
+ '4' => 'American Samoa', '5' => 'Andorra',
+ '6' => 'Angola', '7' => 'Anguilla',
+ '8' => 'Antarctica', '9' => 'Antigua and Barbuda',
+ '10' => 'Argentina', '11' => 'Armenia',
+ '12' => 'Aruba', '13' => 'Australia',
+ '14' => 'Austria', '15' => 'Azerbaijan',
+ '16' => 'Bahamas', '17' => 'Bahrain',
+ '18' => 'Bangladesh', '19' => 'Barbados',
+ '20' => 'Belarus', '21' => 'Belgium',
+ '22' => 'Belize', '23' => 'Benin',
+ '24' => 'Bermuda', '25' => 'Bhutan',
+ '26' => 'Bolivia', '27' => 'Bosnia and Herzegovina',
+ '28' => 'Botswana', '29' => 'Bouvet Island',
+ '30' => 'Brazil', '31' => 'Brunei Darussalam',
+ '32' => 'Bulgaria', '33' => 'Burkina Faso',
+ '34' => 'Burundi', '35' => 'Cambodia',
+ '36' => 'Cameroon', '37' => 'Canada',
+ '38' => 'Cape Verde', '39' => 'Cayman Islands',
+ '40' => 'Central African Republic','41' => 'Chad',
+ '42' => 'Chile', '43' => 'China',
+ '44' => 'Christmas Island', '45' => 'Colombia',
+ '46' => 'Comoros', '47' => 'Congo',
+ '48' => 'Cook Islands', '49' => 'Costa Rica',
+ '54' => "Ivory Coast", '50' => 'Croatia',
+ '51' => 'Cuba', '52' => 'Cyprus',
+ '53' => 'Czech Republic', '55' => 'Denmark',
+ '56' => 'Djibouti', '57' => 'Dominica',
+ '58' => 'Dominican Republic', '59' => 'East Timor',
+ '60' => 'Ecuador', '61' => 'Egypt',
+ '62' => 'El Salvador', '63' => 'Equatorial Guinea',
+ '64' => 'Eritrea', '65' => 'Estonia',
+ '66' => 'Ethiopia', '67' => 'Falkland Islands',
+ '68' => 'Faroe Islands', '69' => 'Fiji',
+ '70' => 'Finland', '71' => 'France',
+ '72' => 'French Guiana', '73' => 'French Polynesia',
+ '74' => 'Gabon', '75' => 'Gambia',
+ '76' => 'Georgia', '77' => 'Germany',
+ '78' => 'Ghana', '79' => 'Gibraltar',
+ '80' => 'Greece', '81' => 'Greenland',
+ '82' => 'Grenada', '83' => 'Guadeloupe',
+ '84' => 'Guam', '85' => 'Guatemala',
+ '86' => 'Guinea', '87' => 'Guinea-Bissau',
+ '88' => 'Guyana', '89' => 'Haiti',
+ '90' => 'Honduras', '91' => 'Hong Kong',
+ '92' => 'Hungary', '93' => 'Iceland',
+ '94' => 'India', '95' => 'Indonesia',
+ '96' => 'Iran', '97' => 'Iraq',
+ '98' => 'Ireland', '99' => 'Israel',
+ '100' => 'Italy', '101' => 'Jamaica',
+ '102' => 'Japan', '103' => 'Jordan',
+ '104' => 'Kazakstan', '105' => 'Kenya',
+ '106' => 'Kiribati', '107' => 'Kuwait',
+ '108' => 'Kyrgystan', '109' => 'Lao',
+ '110' => 'Latvia', '111' => 'Lebanon',
+ '112' => 'Lesotho', '113' => 'Liberia',
+ '232' => 'Libya', '114' => 'Liechtenstein',
+ '115' => 'Lithuania', '116' => 'Luxembourg',
+ '117' => 'Macau', '118' => 'Macedonia (FYR)',
+ '119' => 'Madagascar', '120' => 'Malawi',
+ '121' => 'Malaysia', '122' => 'Maldives',
+ '123' => 'Mali', '124' => 'Malta',
+ '125' => 'Marshall Islands', '126' => 'Martinique',
+ '127' => 'Mauritania', '128' => 'Mauritius',
+ '129' => 'Mayotte', '130' => 'Mexico',
+ '131' => 'Micronesia', '132' => 'Moldova',
+ '133' => 'Monaco', '134' => 'Mongolia',
+ '135' => 'Montserrat', '136' => 'Morocco',
+ '137' => 'Mozambique', '138' => 'Myanmar',
+ '139' => 'Namibia', '140' => 'Nauru',
+ '141' => 'Nepal', '142' => 'Netherlands',
+ '143' => 'Netherlands Antilles', '144' => 'Neutral Zone',
+ '145' => 'New Caledonia', '146' => 'New Zealand',
+ '147' => 'Nicaragua', '148' => 'Niger',
+ '149' => 'Nigeria', '150' => 'Niue',
+ '151' => 'Norfolk Island', '152' => 'North Korea',
+ '153' => 'Northern Mariana Islands','154' => 'Norway',
+ '155' => 'Oman', '156' => 'Pakistan',
+ '157' => 'Palau', '158' => 'Panama',
+ '159' => 'Papua New Guinea', '160' => 'Paraguay',
+ '161' => 'Peru', '162' => 'Philippines',
+ '163' => 'Pitcairn', '164' => 'Poland',
+ '165' => 'Portugal', '166' => 'Puerto Rico',
+ '167' => 'Qatar', '168' => 'Reunion',
+ '169' => 'Romania', '170' => 'Russian Federation',
+ '171' => 'Rwanda', '172' => 'Saint Helena',
+ '173' => 'Saint Kitts and Nevis', '174' => 'Saint Lucia',
+ '175' => 'Saint Pierre and Miquelon','231' => 'Saint Vincent and the Grenadines',
+ '176' => 'Samoa', '177' => 'San Marino',
+ '178' => 'Sao Tome and Principe', '179' => 'Saudi Arabia',
+ '180' => 'Senegal', '227' => 'Serbia and Montenegro',
+ '181' => 'Seychelles', '182' => 'Sierra Leone',
+ '183' => 'Singapore', '184' => 'Slovakia',
+ '185' => 'Slovenia', '186' => 'Solomon Islands',
+ '187' => 'Somalia', '188' => 'South Africa',
+ '189' => 'South Georgia', '190' => 'South Korea',
+ '191' => 'Spain', '192' => 'Sri Lanka',
+ '193' => 'Sudan', '194' => 'Suriname',
+ '195' => 'Swaziland', '196' => 'Sweden',
+ '197' => 'Switzerland', '198' => 'Syria',
+ '199' => 'Taiwan', '200' => 'Tajikistan',
+ '201' => 'Tanzania', '202' => 'Thailand',
+ '203' => 'Togo', '204' => 'Tokelau',
+ '205' => 'Tonga', '206' => 'Trinidad and Tobago',
+ '207' => 'Tunisia', '208' => 'Turkey',
+ '209' => 'Turkmenistan', '210' => 'Turks and Caicos Islands',
+ '211' => 'Tuvalu', '212' => 'Uganda',
+ '213' => 'Ukraine', '214' => 'United Arab Emirates',
+ '215' => 'United Kingdom', '216' => 'United States of America',
+ '217' => 'Uruguay', '218' => 'Uzbekistan',
+ '219' => 'Vanuatu', '233' => 'Vatican City',
+ '220' => 'Venezuela', '221' => 'Vietnam',
+ '222' => 'Virgin Islands (British)','223' => 'Virgin Islands (U.S.)',
+ '224' => 'Wallis and Futuna Islands','225' => 'Western Sahara',
+ '226' => 'Yemen', '228' => 'Zaire',
+ '229' => 'Zambia', '230' => 'Zimbabwe'
+);
+
+if ($_REQUEST['btnSubmit'] == 'Add' or $_REQUEST['btnSubmit'] == 'Modify')
+{
+
+?>
+<table>
+<tr>
+ <td class="contentTopic">
+ <? echo $_REQUEST['btnSubmit'] ?> Testimonial
+ </td>
+</tr>
+<tr>
+ <td class="content">
+
+Want to let others know you're using Bacula? Submit a user profile! Your
+submission will be reviewed before being made publicly available. We reserve
+the right to edit your submission for spelling, grammar, etc. You will receive
+an email when your profile has been approved for public viewing. Note that
+while your contact name and email address are required (to verify
+information if necessary), you can choose to have them not be published along
+with your profile information.
+<br/><br/>
+Fields marked with a * are required. Read the privacy notice below for
+information about how this data will be used.
+
+ </td>
+</tr>
+
+<tr>
+ <td class="content">
+<form enctype="multipart/form-data" method='post' action='?page=testimonial'>
+<input type='hidden' name='page' value='testimonial'>
+<table border='0' class='Content'>
+
+<td class='ItemName'>
+<font color='red'>*</font>Contact Name:</td>
+<td class='ItemValue'><input type='text' class='ItemValue' id='contact_name'
+name='contact_name' size='30' maxlength='100' value=''></td>
+<td class='ItemName'>Publish Contact Name?</td>
+<td class='ItemValue'><select name='publish_contact' class='ItemValue'>
+<option id='publish_contact_0' value='0' SELECTED>No
+<option id='publish_contact_1' value='1'>Yes
+</select></td>
+</tr>
+
+<tr>
+<td class='ItemName'><font color='red'>*</font>Email Address:</td>
+<td class='ItemValue'><input type='text' class='ItemValue' name='email_address'
+id='email_address' size='30' maxlength='150' value=''></td>
+<td class='ItemName'>Publish Email Address?</td><td class='ItemValue'>
+<select name='publish_email' class='ItemValue'>
+<option value='0' id='publish_email_0' SELECTED>No
+<option value='1' id='publish_email_1' >Yes
+</select></td>
+</tr>
+
+<tr><td class='ItemName'>Job Description/Title:</td>
+<td class='ItemValue'>
+<input type='text' name='title' id='title' size='30' maxlength='100' value=''></td></tr>
+<tr><td colspan=4><br></td></tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Organization Name:</td>
+<td class='ItemValue'>
+<input type='text' class='ItemValue' name='org_name' id='org_name'
+size='30' maxlength='100' value=''>
+</td><td class='ItemName'>Publish Org Name?</td><td class='ItemValue'>
+<select name='publish_orgname' class='ItemValue'>
+<option value='0' id='publish_orgname_0' >No
+<option value='1' id='publish_orgname_1' SELECTED>Yes
+</select></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Organization Type:</td>
+<td class='ItemValue' colspan='3'>
+<select name='orgtype_id' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($org_type_lst))
+{
+ echo "<option id='orgtype_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Organization Industry/Function:</td>
+<td class='ItemValue' colspan='3'>
+<select name='orgindustry_id' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($org_industry_lst))
+{
+ echo "<option id='orgindustry_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+
+<tr><td class='ItemName'>
+<font color='red'>*</font>Approx. Organization Size (# of Users):</td>
+<td class='ItemValue'>
+<input type='text' id='org_size' class='ItemValue' name='org_size'
+size='4' maxlength='6' value=''></td>
+<td class='ItemName'>Publish Org Size?</td><td class='ItemValue'><select name='publish_orgsize' class='ItemValue'>
+<option id='publish_orgsize_0' value='0' >No
+<option id='publish_orgsize_1' value='1' SELECTED>Yes
+</select></td>
+</tr>
+<tr>
+
+<td class='ItemName'>Website URL:</td>
+<td class='ItemValue'>
+<input type='text' class='ItemValue' id='website' name='website' size='30'
+ maxlength='150' value=''></td>
+<td class='ItemName'>Publish Website?</td><td class='ItemValue'>
+<select name='publish_website' class='ItemValue'>
+<option id='publish_website_0' value='0' >No
+<option id='publish_website_1' value='1' SELECTED>Yes
+</select></td>
+</tr>
+
+<tr>
+<td class='ItemName'>Organization Logo :</td>
+<td class='ItemValue'>
+<input type="file" name="org_logo" title="png, gif or jpeg file only please"/>
+</td><td><i>max width 150px. png, gif or jpeg only</i></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Country:</td>
+<td class='ItemValue'>
+<select name='country_id' class='ItemValue'>
+<?
+while(list ($key, $val) = each ($country_lst))
+{
+ echo "<option id='country_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+
+<tr><td colspan=4><br></td></tr>
+<tr><td class='ItemName'><font color='red'>*</font>Bacula version:</td>
+<td class='ItemValue'>
+<select name='bacula_version' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($version_lst))
+{
+ echo "<option id='bacula_version_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+<tr><td class='ItemName'><font color='red'>*</font>Director OS:</td>
+<td class='ItemValue'>
+<select name='ostype_id' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($os_lst))
+{
+ echo "<option id='ostype_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+<tr><td class='ItemName'><font color='red'>*</font>Catalog DB:</td>
+<td class='ItemValue'>
+<select name='catalog_id' class='ItemValue'>
+<?
+
+while(list ($key, $val) = each ($catalog_lst))
+{
+ echo "<option id='catalog_id_$key' value='$key'>$val\n";
+}
+
+?>
+</select>
+</td></tr>
+<tr>
+<td class='ItemName'><font color='red'>*</font>Redundant/Failover Backup Setup?</td>
+<td class='ItemValue'><select name='redundant_setup' class='ItemValue'>
+<option value='0' id='redundant_setup_0' SELECTED>No
+<option value='1' id='redundant_setup_1' >Yes
+</select></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Number of Clients (Running bacula-fd):</td>
+<td class='ItemValue'>
+<input type='text' class='ItemValue' id='number_fd' name='number_fd'
+ size='5' maxlength='10' value=''></td>
+</tr>
+
+<tr><td class='ItemName'>
+<font color='red'>*</font>Number of Storage Daemons (Running bacula-sd):</td>
+<td class='ItemValue'>
+<input type='text' class='ItemValue' id='number_sd' name='number_sd' size='5'
+ maxlength='10' value=''></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Total # of GB saved every month:</td>
+<td class='ItemValue'><input type='text' class='ItemValue' name='month_gb' size='5'
+ id='month_gb' maxlength='10' value=''></td>
+</tr>
+
+<tr><td class='ItemName'><font color='red'>*</font>Number # of Files:</td>
+<td class='ItemValue'><input type='text' class='ItemValue' name='number_files'
+ id='number_files' title='select count(1) from File;' size='10' maxlength='15' value=''></td>
+</tr>
+<tr>
+
+<td class='ItemName'>Need professional support:</td>
+<td class='ItemValue'>
+<select name='support' class='ItemValue'>
+<option id='support_0' value='0' SELECTED>No
+<option id='support_1' value='1'>Yes
+</select></td>
+</tr>
+
+<tr><td colspan=4><br></td></tr>
+
+<tr><td class='ItemName' valign='top'>Applicable Hardware and Network Information:</td>
+<td class='ItemValue' colspan='3'>
+<textarea name='hardware_comments' wrap='virtual' rows='4' id='hardware_comments'
+ cols='60' class='ItemValue'>Loader Description:
+Barcode Reader: Yes/No
+Number of Storage Elements:
+Number of Import/Export Elements:
+--
+Nics:
+...
+</textarea>
+</tr>
+
+<tr><td class='ItemName' valign='top'>General Comments:</td>
+<td class='ItemValue' colspan='3'>
+<textarea name='comments' id='comments' wrap='virtual' rows='4' cols='60'
+ class='ItemValue'></textarea></tr>
+
+<tr><td></td><td>
+<?
+ if ($_REQUEST['btnSubmit'] == 'Modify') {
+ echo "<input type='text' title='testimonial id' id='id' name='id' class='ItemValue' value=''>";
+ echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Save'>";
+ echo "<input type='submit' name='btnSubmit' class='ItemValue' onclick='confirm(\"Are you sure ?\");' value='Delete'><br>";
+ echo "<input type='hidden' name='page' class='ItemValue' value='testimonial'><br>";
+
+} else {
+ echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Review Profile Submission'>";
+}
+?>
+
+</td></tr>
+</table>
+</form>
+
+</td>
+</tr>
+<tr>
+
+ <td class="content">
+ <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Privacy Notice </h3>
+
+The following information is required, but you may choose to not have it
+published for public viewing if you wish: contact name, email address,
+organization name. We may use this information to verify the data you submit if
+we find the need.
+ </td>
+</tr>
+
+
+</table>
+<?
+
+}
+
+if ($_REQUEST['btnSubmit'] == 'Modify') {
+ $filename = get_file_from_id();
+
+ if (!$filename) {
+ return (0);
+ }
+
+ $formul = load_formul($filename);
+
+ echo "<script type='text/javascript' language='JavaScript'>\n";
+ $attribs = array('contact_name','email_address', 'org_name','title','website',
+ 'month_gb','number_files', 'number_fd','number_sd',
+ 'org_size','comments', 'hardware_comments', 'id');
+ foreach ($attribs as $arr) {
+ form_set_value($formul, $arr);
+ }
+
+ $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id',
+ 'orgindustry_id', 'publish_orgsize','publish_website', 'bacula_version',
+ 'country_id','ostype_id', 'redundant_setup', 'catalog_id', 'support');
+ foreach ($attribs as $arr) {
+ form_set_selection($formul, $arr);
+ }
+
+ echo "</script>\n";
+
+} elseif ($_REQUEST['btnSubmit'] == 'Review Profile Submission') {
+
+ $form = get_formul();
+ if (!$form) {
+ echo "Sorry, something is missing, I cannot accept your submission";
+ } else {
+ $token = uniqid(md5(rand()), true);
+ $filename = "$dat_dir/profile.$token";
+
+ $form['filename'] = $filename;
+ $form['id'] = $token;
+ save_formul($form);
+
+ send_email($form['id'], $form['email_address']);
+ echo "You can modify your profile <a href='?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "'>here</a> (keep this link as bookmark)<br><br>";
+ print_formul($form);
+ }
+
+} elseif ($_REQUEST['btnSubmit'] == 'View') {
+
+ $file = get_file_from_id();
+
+ if ($file) {
+ print_formul_file($filename,true);
+ }
+
+} elseif ($_REQUEST['btnSubmit'] == 'Delete') {
+
+ $filename = get_file_from_id();
+
+ if (!$filename) {
+ return (0);
+ }
+
+ $form = load_formul($filename);
+
+ if ($form['org_logo'] && file_exists($form['org_logo'])) {
+ unlink($form['org_logo']);
+ }
+ if (file_exists($filename)) {
+ unlink($filename);
+ echo "Profile deleted";
+ }
+
+} elseif ($_REQUEST['btnSubmit'] == 'Accept' && is_admin()) {
+
+ $filename = get_file_from_id();
+
+ if (!$filename) {
+ return (0);
+ }
+
+ $form = load_formul($filename);
+
+ $hide = $_REQUEST['hide'];
+
+ if ($hide) {
+ $form['visible']=0;
+ } else {
+ $form['visible']=1;
+ }
+ save_formul($form);
+ echo $form['id'] . " is now " . ($hide?"un":"") . "visible";
+ print_formul($form);
+
+} elseif ($_REQUEST['btnSubmit'] == 'Save') {
+
+ $filename = get_file_from_id();
+
+ if (!$filename) {
+ return (0);
+ }
+
+ $form = get_formul();
+
+ $form['filename'] = $filename;
+ $form['id'] = $_REQUEST['id']; // id is clean
+// $form['visible'] = false;
+
+ if (!$form['org_logo']) {
+ $form_old = load_formul($filename);
+ $form['org_logo'] = $form_old['org_logo'];
+ }
+
+ save_formul($form);
+
+ echo "Your profile has been modified.<br>";
+ print_formul($form);
+
+} elseif ($_REQUEST['btnSubmit'] == 'Admin' && is_admin()) {
+
+
+ $pass = $_REQUEST['passwd']; // passwd is clean
+ $waiting = $_REQUEST['waiting'];
+
+ if ($waiting) {
+ print '<a href="?page=testimonial&btnSubmit=Admin&passwd=' . $pass . '"> View all</a><br>';
+ print "<h1>View all waiting testimonials</h1>";
+ } else {
+ print '<a href="?page=testimonial&btnSubmit=Admin&waiting=1&passwd=' . $pass . '"> View Waiting</a><br>';
+ print "<h1>View all testimonials</h1>";
+ }
+
+ if ($handle = opendir($dat_dir)) {
+ /* Ceci est la facon correcte de traverser un dossier. */
+ while (false !== ($file = readdir($handle))) {
+ if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
+ $form = load_formul("$dat_dir/$file") ;
+ // on affiche ceux qui sont en attente ou bien tous
+ if (!$waiting || !$form['visible']) {
+ print_formul($form);
+ if ($form['visible']) {
+ print "<a href=\"?page=testimonial&btnSubmit=Accept&hide=1&passwd=" . $pass . "&id=" . $form['id'] . "\"> Hide </a> | \n";
+ } else {
+ print "<a href=\"?page=testimonial&btnSubmit=Accept&passwd=" . $pass . "&id=" . $form['id'] . "\"> Accept </a> | \n";
+ }
+ print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "\"> Modify </a> | \n";
+ print "<a href=\"?page=testimonial&btnSubmit=AdminExport&passwd=" . $pass . "&id=" . $form['id'] . "\"> Export </a><br><br>\n";
+
+ }
+ }
+ }
+ closedir($handle);
+ }
+
+} elseif (!$_REQUEST['btnSubmit'] || $_REQUEST['btnSubmit'] == 'ViewAll') {
+
+ $limit = $_REQUEST['limit'];
+ $offset = $_REQUEST['offset'];
+
+ $limit = is_int($limit)?$limit:10;
+ $offset = is_int($offset)?$limit:0;
+
+ $admin = is_admin();
+
+ if ($limit > 20) { $limit = 20 ;}
+
+ echo "<a href='?page=testimonial&btnSubmit=Add'>Add a testimonial</a><br><br>";
+
+ if ($handle = opendir($dat_dir)) {
+ /* Ceci est la facon correcte de traverser un dossier. */
+ $i = 0 ;
+ while (false !== ($file = readdir($handle))) {
+ if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
+ if ($i >= $offset && $i < ($offset + $limit)) {
+ $i += print_formul_file("$dat_dir/$file",$admin);
+ }
+
+ if ($i > ($offset + $limit)) {
+ break;
+ }
+ }
+ }
+ closedir($handle);
+ }
+
+} elseif ($_REQUEST['btnSubmit'] == 'AdminExport' && is_admin()) {
+
+ $file = get_file_from_id();
+ if (!$file) {
+ return 0;
+ }
+ $form = load_formul($file);
+ if ($form) {
+ export_form($form);
+ }
+} else {
+ print "Invalid btnSubmit<br>";
+}
+
+function export_form($formul)
+{
+ global $country_lst, $org_type_lst, $org_industry_lst, $os_lst, $catalog_lst;
+
+ $attribs = array('contact_name','email_address', 'org_name','title','website',
+ 'hardware_comments','comments',
+ 'publish_contact','publish_email', 'publish_orgname','org_size','redundant_setup',
+ 'date','visible', 'support',
+ 'number_fd','number_sd','month_gb','number_files','publish_orgsize','publish_website');
+ print "<pre>\n";
+ foreach ($attribs as $arr) {
+ print "$arr = " . $formul[$arr] . "\n";
+ }
+
+ print "orgtype = " . $org_type_lst[$formul['orgtype_id']] . "\n";
+ print "orgindustry = " . $org_industry_lst[$formul['orgindustry_id']] . "\n";
+ print "bacula_version = " . $version_lst[$formul['bacula_version']] . "\n";
+ print "country = " . $country_lst[$formul['country_id']] . "\n";
+ print "ostype = " . $os_lst[$formul['ostype_id']] . "\n";
+ print "catalog = " . $catalog_lst[$formul['catalog_id']] . "\n";
+
+ print "<pre>\n";
+}
+
+function get_file_from_id()
+{
+ global $dat_dir;
+ $id = $_REQUEST['id'];
+
+ if (!ereg('^[a-zA-Z0-9\.]+$',$id)) {
+ return(0) ;
+ }
+
+ $filename="$dat_dir/profile.$id";
+
+ if (!file_exists($filename)) {
+ echo "Can't verify your id";
+ return (0);
+ }
+
+ return $filename;
+}
+
+function send_email($id, $email)
+{
+ // Your email address
+ $from = 'kern@sibbald.com';
+// $from = 'eric@eb.homelinux.org';
+
+ // The subject
+ $subject = "[BACULA] New testimonial";
+
+ // The message
+ $message = "Hello,
+You can modify your new testimonial at http://www.bacula.org/?page=testimonial&btnSubmit=Modify&id=$id
+
+Best regards.
+";
+
+ mail($email, $subject, $message, "From: Bacula WebMaster <$from>");
+ mail($from, $subject, $message, "From: Bacula WebMaster <$from>");
+ mail('eric@eb.homelinux.org', $subject, $message, "From: Bacula WebMaster <$from>");
+
+ echo "The email has been sent for approval.<br/>";
+}
+
+function save_formul($form)
+{
+ $fp = fopen($form['filename'], 'w');
+ fwrite($fp, serialize($form));
+ fclose($fp);
+}
+
+function get_formul()
+{
+ global $dat_dir;
+ $formul = array();
+ $attribs = array('contact_name','email_address', 'org_name');
+ foreach ($attribs as $arr) {
+ if (!$_REQUEST[$arr]) {
+ echo "Can't get $arr<br/>";
+ return '';
+ }
+ $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@\n -]/', " ", $_REQUEST[$arr]);
+ }
+
+ $attribs = array('title','website','hardware_comments','comments');
+ foreach ($attribs as $arr) {
+ $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@ -]/', " ", $_REQUEST[$arr]);
+ }
+
+ $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id',
+ 'orgindustry_id','org_size', 'publish_orgsize','publish_website', 'bacula_version',
+ 'country_id','ostype_id', 'redundant_setup','number_fd','number_sd','support',
+ 'month_gb','number_files','catalog_id');
+ foreach ($attribs as $arr) {
+ if (preg_match("/^[0-9]+$/", $_REQUEST[$arr])) {
+ $formul[$arr] = $_REQUEST[$arr];
+ }
+ }
+
+ $attribs = array('orgtype_id', 'orgindustry_id', 'org_size', 'country_id','bacula_version',
+ 'catalog_id', 'ostype_id','number_fd','number_sd', 'month_gb','number_files');
+ foreach ($attribs as $arr) {
+ if (!$formul[$arr]) {
+ echo "Can't get $arr<br/>";
+ return '';
+ }
+ }
+
+ if ($_FILES['org_logo']) {
+ $token = uniqid(md5(rand()), true);
+ $image = "upload/$token";
+
+ if (preg_match("/(jpg|jpeg)$/i", $_FILES['org_logo']['name'])) {
+ $image = "$image.jpg";
+ } elseif (preg_match("/png$/i", $_FILES['org_logo']['name'])) {
+ $image = "$image.png";
+ } elseif (preg_match("/gif$/i", $_FILES['org_logo']['name'])) {
+ $image = "$image.gif";
+ } else {
+ $image = '';
+ }
+ if ($image) {
+ $ret=move_uploaded_file($_FILES['org_logo']['tmp_name'], $image);
+ $formul['org_logo'] = $image;
+ }
+ }
+ $formul['date'] = time();
+ $formul['visible'] = false;
+
+ return $formul;
+}
+
+function form_set_value($formul,$val)
+{
+ echo "document.getElementById('$val').value = '" . $formul[$val] . "';\n";
+}
+
+function form_set_selection($formul,$val)
+{
+ echo "document.getElementById('${val}_" . $formul[$val] . "').selected =true;\n";
+}
+
+// passwd file must exist in dat directory
+function is_admin()
+{
+ global $dat_dir;
+ $id = $_REQUEST['passwd'];
+
+ if (!ereg('^[a-zA-Z]+$',$id)) {
+ return(false) ;
+ }
+
+ if (file_exists("$dat_dir/$id")) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+function load_formul($filename)
+{
+ if (!file_exists($filename)) {
+ return array();
+ }
+
+ if (!filesize($filename) || filesize($filename) > 10*1024*1024) {
+ return undef;
+ }
+ $fp = fopen($filename, 'r');
+ $contents = fread ($fp, filesize ($filename));
+ fclose ($fp);
+
+ $formul = unserialize($contents);
+ if (!is_array($formul)) {
+ return undef;
+ }
+
+ return $formul;
+}
+
+function print_formul_file($filename, $admin) {
+
+ $formul = load_formul($filename);
+ if (!$formul) {
+ return 0;
+ }
+
+ if (!$admin) {
+ if (!$formul['visible']) {
+ return 0;
+ }
+ } else {
+ print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $formul['id'] . "\">Modify</a><br>\n";
+ }
+
+ return print_formul($formul);
+}
+
+function print_formul($formul)
+{
+ global $country_lst, $org_type_lst, $org_industry_lst, $os_lst,$catalog_lst;
+
+ ?>
+ <table width="80%">
+ <td>
+ <b><? echo ($formul['publish_orgname'])?$formul['org_name']:'N/A' ?></b><br>
+ <table>
+ <tr><td> Location: </td><td><? $a = $formul['country_id'] ; echo $country_lst[$a] ?> </td></tr>
+ <tr><td> Organization Type: </td><td><? echo $org_type_lst[$formul['orgtype_id']] ?> </td></tr>
+ <tr><td> Industry/Function: </td><td><? echo $org_industry_lst[$formul['orgindustry_id']] ?> </td></tr>
+
+ <? if ($formul['publish_orgsize']) { ?>
+ <tr><td> Organisation Size: </td><td><? echo $formul['org_size'] ?> </td></tr>
+ <? } ?>
+
+ <? if ($formul['publish_website']) { ?>
+ <tr><td> Website: </td><td><? echo $formul['website'] ?> </td></tr>
+ <? } ?>
+
+ <? if ($formul['number_fd'] > 1) { ?>
+ <tr><td> Number of fd: </td><td><? echo $formul['number_fd'] ?> </td></tr>
+ <? } ?>
+
+ <? if ($formul['month_gb'] > 1) { ?>
+ <tr><td> GB/Month: </td><td><? echo $formul['month_gb'] ?> </td></tr>
+ <? } ?>
+
+ <tr><td> Comments: </td><td width='450'><i><? echo $formul['comments'] ?> </i></td></tr>
+ <? if ($formul['publish_contact']) { ?>
+ <tr align='right'><td></td><td><i><? echo $formul['contact_name'] ?> </i></td></tr>
+ <? } ?>
+ </table>
+ </td>
+ <td>
+ <? if ($formul['org_logo']) { ?>
+ <a href="<? echo $formul['org_logo'] ?>" ><img width='150' src="<? echo $formul['org_logo'] ?>"></a>
+ <? } ?>
+ </td>
+ </table>
+<?
+ return 1;
+}
+
+?>
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic">
+ Testimonials
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ Below, you will find excerpts from email that users have sent us.
+ The purpose is to give you some idea of what kinds of
+ sites are running Bacula and how they are using it.
+ These testimonials are used with permission of the author.
+ </td>
+</tr>
+
+<tr>
+ <td class="content">
+ <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Norm Dressler - 2004/06/15 </h3>
+ Bacula has been awesome for us. We used to use Ar**** but I
+ have always hated the interface. And the cost was outrageous.
+ Then I found bacula and wow! Everything in Ar**** and then
+ some! The console is easy to use, easy to understand once you
+ get the hang of it, and I usually don't have any problems
+ restoring files! :)
+ <br>
+ I have 15+ machines I backup with Bacula
+ with an autoloader, and I'm extremely happy with the product.
+ Whenever someone asks me about what to use, I point them at
+ Bacula.
+ <p> Norm Dressler, Senior Network Architect</p>
+ </td>
+</tr>
+
+<tr>
+ <td class="content">
+ <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Michael Scherer - 2005/02/09 </h3>
+ Our former backup-system was ARGHserve running on NT4.
+ Due to the fact that we replaced most of our servers with
+ Linux machines we had to find some other solution.<br> At
+ first we tried ARGHserve on Linux, without much comfort.
+ Database updates took days to complete, the database
+ itself grew enormously large, ... not really something
+ you except from such an expensive piece of software.<br>
+ I began the quest for a new backup-solution, testing
+ almost anything I could find on Sourceforge and Freshmeat
+ and finally decided to go with Bacula.<br> It's perfectly
+ maintained by Kern and many others, is an (very) active
+ project with good support through maillists and an
+ irc-channel, which can be found on Freenode.<br>
+ <br>
+ Today we run Bacula on a SuSE based x86 machine with a
+ 2.6 kernel, some RAID5-Systems and IBM Ultrium
+ Tapelibrary. Without any issues and without more work
+ than changing two tapes in the morning.<br>
+ <br>
+ Recoveries aren't complicated as well, you either choose
+ a jobid to restore from or let Bacula find the correct
+ jobid for a file or directory you need to recover. You
+ mark everything you need, Bacula tells you which tapes it
+ needs, done.<br>
+ You don't even have to wait for any daemon to finish
+ database updates for backuped files, you can start with
+ the recovery right after the backup-job is done.
+ Perfect. <br>
+
+ <br>
+ <p> Michael Scherer, some admin </p>
+ </td>
+</tr>
+<tr>
+ <td class="content">
+ <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Ludovicz Strappazon - 2005/03/05</h3>
+ I had previously used Veritas Netbackup, but it was really too expensive
+ for our University. Bacula permitted us to buy a library. Now, we use
+ Bacula since 10/2002 with an ADIC Scalar 24 library and LTO ultrium,
+ without any problems. I think it can do anything Netbackup could do with our
+ configuration. We backup seven Linux servers, one NT server, four
+ Windows 2003 servers and a few XP workstations. Some of these servers
+ are backed up across a firewall using ssh; some others are on a private
+ network. We tried succesfully the disaster recovery procedure on Linux
+ and had some good results in restoring Windows "from bare metal". What do I
+ like in Bacula ? It is very flexible and reliable. With its light
+ interface console, I can manage the backups from everywhere. A few words
+ about the support : it is free but efficient. I don't have to cross a
+ level 1, level 2 helpdesk to have some help, I never felt alone, and the
+ bacula-users mailing list is a mix of courtesy and honest speech. At
+ last, you don't need to be a big company to have your features requests
+ heard.<br>
+ Thanks to Kern Sibbald and the others who give so much work and time
+ for this project.<br>
+ <br>
+ Ludovic Strappazon<br>
+ University Marc Bloch de Strasbourg.<br>
+ </td>
+</tr>
+
+<tr>
+ <td class="content">
+ <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Jeff Richards - 2006/08/26</h3>
+ I used Bacula at my previous employer to backup: Linux, OpenBSD, Windows 2000,XP,2003, and AIX 5.1
+ <br> <br>
+ Bacula provided a solution when I had no budget for backup
+ software. The Linux systems (about 30) acted as Tivoli (TMF)
+ gateways. The Linux systems were commodity PCs, so when the IDE
+ HDs failed it took hours (usually at least 4) to clean up the
+ Tivoli environment and rebuild the failed gateway. Using Bacula
+ and mkCDrec I cut that time down to under an hour, and most of
+ that time was not spent doing anything except waiting for the
+ restore to finish. I recovered 2 failed Linux systems with
+ Bacula.
+ <br>
+ I would like to thank you and the entire Bacula team for an
+ excellent piece of software.
+ <br> <br>
+ Jeff Richards<br>
+ Consultant<br>
+ </td>
+</tr>
+
+</table>
+
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+</tr>
+<tr>
+ <td class="content">
+ <p>
+ <img src="images/1.39-wishlist-votes.png">
+ </td>
+</tr>
+</table>
+
+<? require_once("inc/footer.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+<table>
+<tr>
+ <td class="contentTopic">
+ What is Bacula?
+ </td>
+</tr>
+<tr>
+ <td class="content">
+
+<b>Bacula</b> is a set of computer programs that permit you (or the
+system administrator) to manage backup, recovery, and verification of
+computer data across a network of computers of different kinds. In
+technical terms, it is a network Client/Server based backup program.
+Bacula is relatively easy to use and efficient, while offering many
+advanced storage management features that make it easy to find and
+recover lost or damaged files. Due to its modular design, Bacula is
+scalable from small single computer systems to systems consisting of
+hundreds of computers located over a large network.
+<h3>Who Needs Bacula?</h3>
+If you are currently using a program such as <b>tar</b>, <b>dump</b>, or
+<b>bru</b> to backup your computer data, and you would like a network
+solution, more flexibility, or catalog services, Bacula will most
+likely provide the additional features you want. However, if you are
+new to Unix systems or do not have offsetting experience with a sophisticated
+backup package, we do not recommend using Bacula as it is
+much more difficult to setup and use than <b>tar</b> or <b>dump</b>.
+<p>If you are running <b>Amanda</b> and would like a backup program that
+can write to multiple volumes (i.e. is not limited by your tape drive
+capacity), Bacula can most likely fill your needs. In addition,
+quite a number of our users report that Bacula is simpler to
+setup and use than other equivalent programs.
+<p>If you are
+currently using a sophisticated commercial package such as Legato
+Networker. ARCserveIT, Arkeia, or PerfectBackup+, you may be interested
+in Bacula, which provides many of the same features, and is free
+software available under the GNU Version 2 software license.
+
+<h3>Bacula Components or Services</h3>
+Bacula is made up of the following five major components or services:
+<p style="text-align: center; font-size: small">
+ <img src="images/manual/bacula-applications.png" alt="" width="576" height="734"><br>
+ thanks to Aristedes Maniatis for this graphic and the one below
+</p>
+<p>
+<ul>
+<li><a name="DirDef"></a>
+ <b>Bacula Director</b> service consists of the program that
+ supervises all the backup, restore, verify and archive operations.
+ The system administrator uses the Bacula Director to schedule
+ backups and to recover files. For more details see the <a
+ href="rel-manual/director.html">Director Services Daemon Design Document</a>.
+ The Director runs as a daemon or a service (i.e. in the background).
+</li>
+<li><a name="UADef"></a>
+ <b>Bacula Console</b> services is the program that allows the
+ administrator or user to communicate with the <b>Bacula Director</b>
+ (see above). Currently, the Bacula Console is available in three
+ versions. The first and simplest is to run the Console program in a
+ shell window (i.e. TTY interface). Most system administrators will
+ find this completely adequate. The second version is a GNOME GUI
+ interface that for the moment (23 November 2003) is far from complete,
+ but quite functional as it has most the capabilities of the shell
+ Console. The third version is a wxWidgets GUI with an interactive file
+ restore. It also has most the capabilities of the shell console,
+ allows command completion with tabulation, and gives you instant
+ help about the command you are typing. For more details see the
+ <a href="rel-manual/console.html">Bacula Console Design Document</a>.
+</li>
+<li><a name="FDDef"></a>
+ <b>Bacula File</b> services (or Client program) is the software
+ program that is installed on the machine to be backed up. It is
+ specific to the operating system on which it runs and is responsible
+ for providing the file attributes and data when requested by the
+ Director. The File services are also responsible for the file
+ system dependent part of restoring the file attributes and data
+ during a recovery operation. For more details see the <a
+ href="rel-manual/file.html">File Services Daemon Design Document</a>. This
+ program runs as a daemon on the machine to be backed up, and in some
+ of the documentation, the File daemon is referred to as the Client
+ (for example in Bacula's configuration file). In addition to
+ Unix/Linux File daemons, there is a Windows File daemon (normally
+ distributed in binary format). The Windows File daemon runs on
+ all currently known Windows versions (95, 98, Me, NT, 2000, XP).
+</li>
+<li><a name="SDDef"></a>
+ <b>Bacula Storage</b> services consist of the software programs that
+ perform the storage and recovery of the file attributes and data to
+ the physical backup media or volumes. In other words, the Storage daemon
+ is responsible for reading and writing your tapes (or other
+ storage media, e.g. files). For more details see the <a
+ href="rel-manual/storage.html">Storage Services Daemon Design Document</a>.
+ The Storage services runs as a daemon on the machine that has the
+ backup device (usually a tape drive).
+</li>
+<li><a name="DBDefinition"></a>
+ <b>Catalog</b> services are comprised of the software programs
+ responsible for maintaining the file indexes and volume databases for
+ all files backed up. The Catalog services permit the System
+ Administrator or user to quickly locate and restore any desired
+ file. The Catalog services sets Bacula apart from simple backup
+ programs like tar and bru, because the catalog maintains a record
+ of all Volumes used, all Jobs run, and all Files saved, permitting
+ efficicient restoration and Volume management.
+ Bacula currently supports three different databases, MySQL,
+ PostgreSQL, and SQLite, one of which must be chosen when building
+ <b>Bacula</b>. There also exists an Internal database, but it is no
+ longer supported.
+ <p>
+ The three SQL databases currently supported (MySQL, PostgreSQL or SQLite)
+ provide quite a number of features,
+ including rapid indexing, arbitrary queries, and security. Although
+ we plan to support other major SQL databases, the current
+ Bacula implementation interfaces only to MySQL, PostgreSQL and SQLite.
+ For more details see the <a href="rel-manual/catalog.html">Catalog Services
+ Design Document</a>.
+ <p>The RPMs for MySQL and PostgreSQL ship as part of the Linux RedHat release,
+ or building it from the source is quite easy, see the
+ <a href="rel-manual/mysql.html"> Installing and Configuring MySQL</a> chapter
+ of this document for the details. For more information on MySQL,
+ please see: <a href="http://www.mysql.com">www.mysql.com</a>.
+ Or see the <a href="rel-manual/postgresql.html"> Installing and Configuring
+ PostgreSQL</a> chapter of this document for the details. For more
+ information on PostgreSQL, please see: <a
+ href="http://www.postgresql.org">www.postgresql.org</a>.
+ <p>Configuring and building SQLite is even easier. For the details
+ of configuring SQLite, please see the <a href="rel-manual/sqlite.html">
+ Installing and Configuring SQLite</a> chapter of this document.
+</li>
+<li><a name="MonDef"></a>
+ <b>Bacula Monitor</b> services is the program that allows the
+ administrator or user to watch current status of <b>Bacula Directors</b>,
+ <b>Bacula File Daemons</b> and <b>Bacula Storage Daemons</b>
+ (see above). Currently, only a GTK+ version is available, which
+ works with Gnome and KDE (or any window manager that supports the
+ FreeDesktop.org system tray standard).
+</li>
+</ul>
+To perform a successful save or restore, the following four daemons
+must be configured and running: the Director daemon, the File daemon,
+the Storage daemon, and MySQL, PostgreSQL or SQLite.
+
+<h3>Bacula Configuration</h3>
+In order for Bacula to understand your system, what clients you
+want backed up, and how, you must create a number of configuration
+files containing resources (or objects). The following presents an
+overall picture of this:
+<p style="text-align: center">
+ <img src="images/manual/bacula-objects.png" alt="" width="576" height="734">
+</p>
+
+<h3>Conventions Used in this Document</h3>
+<b>Bacula</b> is in a state of evolution, and as a consequence,
+this manual will not always agree with the code. If an
+item in this manual is preceded by an asterisk (*), it indicates
+that the particular feature is not implemented. If it is preceded
+by a plus sign (+), it indicates that the feature may be partially
+implemented.
+<p>If you are reading this manual as supplied in a released version
+of the software, the above paragraph holds true. If you are reading
+the online version of the manual, <a href="/dev-manual">
+http://www.bacula.org/rel-manual</a>, please bear in mind that this version
+describes the current version in development (in the SVN) that may
+contain features not in the released version. Just the same,
+it generally lags behind the code a bit.
+<h3>Quick Start</h3>
+To get Bacula up and running quickly, we recommend that you first
+scan the Terminology section below, then quickly review the next chapter
+entitled <a href="rel-manual/state.html">The Current State of Bacula</a>, then the
+<a href="rel-manual/quickstart.html">Quick Start Guide to Bacula</a>, which will
+give you a quick overview of getting Bacula running. After
+which, you should proceed to the
+chapter on <a href="rel-manual/install.html"> Installing Bacula</a>, then <a
+href="rel-manual/configure.html">How to Configure Bacula</a>,
+and finally the chapter on <a href="rel-manual/running.html">
+Running Bacula</a>.
+
+<h3>Terminology</h3>
+To facilitate communication about this project, we provide here
+the definitions of the terminology that we use.
+<dl>
+ <dt>Administrator</dt>
+ <dd>The person or persons responsible for administrating the Bacula system.</dd>
+
+ <dt>Backup</dt>
+ <dd>We use the term <b>Backup</b> to refer to a Bacula Job that saves files. </dd>
+
+ <dt>Bootstrap File</dt>
+ <dd>The bootstrap file is an ASCII file
+ containing a compact form of commands that allow Bacula or
+ the stand-alone file extraction utility (<b>bextract</b>) to
+ restore the contents of one or more Volumes, for example, the
+ current state of a system just backed up. With a bootstrap file,
+ Bacula can restore your system without a Catalog. You can
+ create a bootstrap file from a Catalog to extract any file or
+ files you wish.</dd>
+
+ <dt>Catalog</dt>
+ <dd>The Catalog is used to store summary information
+ about the Jobs, Clients, and Files that were backed up and on
+ what Volume or Volumes. The information saved in the Catalog
+ permits the administrator or user to determine what jobs were
+ run, their status as well as the important characteristics
+ of each file that was backed up. The Catalog is an online resource,
+ but does not contain the data for the files backed up. Most of
+ the information stored in the catalog is also stored on the
+ backup volumes (i.e. tapes). Of course, the tapes will also have
+ a copy of the file in addition to the File Attributes (see below).
+ <p>The catalog feature is one part of Bacula that distinguishes
+ it from simple backup and archive programs such as <b>dump</b>
+ and <b>tar</b>.
+ </dd>
+
+ <dt>Client</dt>
+ <dd>In Bacula's terminology, the word Client
+ refers to the machine being backed up, and it is synonymous
+ with the File services or File daemon, and quite often, we
+ refer to it as the FD. A Client is defined in a configuration
+ file resource. </dd>
+
+ <dt>Console</dt>
+ <dd>The program that interfaces to the Director allowing
+ the user or system administrator to control Bacula.</dd>
+
+ <dt>Daemon</dt>
+ <dd>Unix terminology for a program that is always present in
+ the background to carry out a designated task. On Windows systems, as
+ well as some Linux systems, daemons are called <b>Services</b>.</dd>
+
+ <dt>Directive</dt>
+ <dd>The term directive is used to refer to a statement
+ or a record within a Resource in a configuration file that
+ defines one specific thing. For example, the <b>Name</b> directive
+ defines the name of the Resource.</dd>
+
+ <dt>Director</dt>
+ <dd>The main Bacula server daemon that schedules and directs all
+ Bacula operations. Occassionally, we refer to the Director as DIR.</dd>
+
+ <dt>Differential</dt>
+ <dd>A backup that includes all files changed since the last
+ Full save started. Note, other backup programs may define this differently.</dd>
+
+ <dt>File Attributes</dt>
+ <dd>The File Attributes are all the information
+ necessary about a file to identify it and all its properties such as
+ size, creation date, modification date, permissions, etc. Normally, the
+ attributes are handled entirely by Bacula so that the user never
+ needs to be concerned about them. The attributes do not include the
+ file's data.
+
+ <dt>File Daemon</dt>
+ <dd>The daemon running on the client
+ computer to be backed up. This is also referred to as the File
+ services, and sometimes as the Client services or the FD.
+
+ <dt><a name="FileSetDef"></a> FileSet</dt>
+ <dd>A FileSet is a Resource contained in a configuration
+ file that defines the files to be backed up. It consists
+ of a list of included files or directories, a list of excluded files, and
+ how the file is to be stored (compression, encryption, signatures).
+ For more details, see the
+ <a href="rel-manual/director.html#FileSetResource">FileSet Resource definition</a>
+ in the Director chapter of this document.</dd>
+
+ <dt>Incremental</dt>
+ <dd>A backup that includes all files changed since the
+ last Full, Differential, or Incremental backup started. It is normally
+ specified on the <b>Level</b> directive within the Job resource
+ definition, or in a Schedule resourc. </dd>
+
+ <dt><a name="JobDef"></a>Job</dt>
+ <dd>A Bacula Job is a configuration resource that defines
+ the work that Bacula must perform to backup or restore a particular
+ Client. It consists of the <b>Type</b> (backup, restore, verify,
+ etc), the <b>Level</b> (full, incremental,...), the <b>FileSet</b>,
+ and <b>Storage</b> the files are to be backed up (Storage device,
+ Media Pool). For more details, see the
+ <a href="rel-manual/director.html#JobResource">Job Resource definition</a>
+ in the Director chapter of this document. </dd>
+
+ <dt>Monitor</dt>
+ <dd>The program that interfaces to the all the daemons
+ allowing the user or system administrator to monitor Bacula status.</dd>
+
+ <dt>Resource</dt>
+ <dd>A resource is a part of a configuration file that
+ defines a specific unit of information that is available to Bacula.
+ For example, the <b>Job</b> resource defines all the properties of
+ a specific Job: name, schedule, Volume pool, backup type, backup
+ level, ...</dd>
+
+ <dt>Restore</dt>
+ <dd>A restore is a configuration resource that
+ describes the operation of recovering a file (lost or damaged) from
+ backup media. It is the inverse of a save, except that in most
+ cases, a restore will normally have a small set of files to restore,
+ while normally a Save backs up all the files on the system. Of
+ course, after a disk crash, Bacula can be called upon to do
+ a full Restore of all files that were on the system. </dd>
+
+ <dt>Schedule</dt>
+ <dd>A Schedule is a configuration resource that
+ defines when the Bacula Job will be scheduled for
+ execution. To use the Schedule, the Job resource will refer to
+ the name of the Schedule. For more details, see the <a
+ href="rel-manual/director.html#ScheduleResource">Schedule Resource
+ definition</a> in the Director chapter of this document. </dd>
+
+ <dt>Service</dt>
+ <dd>This is Windows terminology for a <b>daemon</b> -- see
+ above. It is now frequently used in Unix environments as well.</dd>
+
+ <dt>Storage Coordinates</dt>
+ <dd>The information returned from the
+ Storage Services that uniquely locates a file on a backup medium. It
+ consists of two parts: one part pertains to each file saved, and the
+ other part pertains to the whole Job. Normally, this information is
+ saved in the Catalog so that the user doesn't need specific knowledge
+ of the Storage Coordinates. The Storage Coordinates include the
+ File Attributes (see above) plus the unique location of the information on
+ the backup Volume. </dd>
+
+ <dt>Storage Daemon</dt>
+ <dd>The Storage daemon, sometimes referred to as
+ the SD, is the code that writes the attributes and data to a storage
+ Volume (usually a tape or disk).</dd>
+
+ <dt>Session</dt>
+ <dd>Normally refers to the internal conversation between
+ the File daemon and the Storage daemon. The File daemon opens a
+ <b>session</b> with the Storage daemon to save a FileSet, or to restore
+ it. A session has a one to one correspondence to a Bacula Job (see
+ above). </dd>
+
+ <dt>Verify</dt>
+ <dd>A verify is a job that compares the current file
+ attributes to the attributes that have previously been stored in the
+ Bacula Catalog. This feature can be used for detecting changes to
+ critical system files similar to what <b>Tripwire</b> does. One
+ of the major advantages of using Bacula to do this is that
+ on the machine you want protected such as a server, you can run
+ just the File daemon, and the Director, Storage daemon, and Catalog
+ reside on a different machine. As a consequence, if your server is
+ ever compromised, it is unlikely that your verification database
+ will be tampered with.
+ <p>Verify can also be used to check that the most recent Job
+ data written to a Volume agrees with what is stored in the Catalog
+ (i.e. it compares the file attributes), *or it can check the
+ Volume contents against the original files on disk. </dd>
+
+ <dt>*Archive</dt>
+ <dd>An Archive operation is done after a Save, and it
+ consists of removing the Volumes on which data is saved from active
+ use. These Volumes are marked as Archived, and many no longer be
+ used to save files. All the files contained on an Archived Volume
+ are removed from the Catalog. NOT YET IMPLEMENTED. </dd>
+
+ <dt>*Update</dt>
+ <dd>An Update operation causes the files on the remote
+ system to be updated to be the same as the host system. This is
+ equivalent to an <b>rdist</b> capability. NOT YET IMPLEMENTED.
+ </dd>
+
+ <dt>Retention Period</dt>
+ <dd>There are various kinds of retention
+ periods that Bacula recognizes. The most important are the
+ <b>File</b> Retention Period, <b>Job</b> Retention Period, and the
+ <b>Volume</b> Retention Period. Each of these retention periods
+ applies to the time that specific records will be kept in the
+ Catalog database. This should not be confused with the time that
+ the data saved to a Volume is valid. <p>The File Retention Period
+ determines the time that File records are kept in the catalog
+ database. This period is important because the volume of the
+ database File records by far use the most storage space in the
+ database. As a consequence, you must ensure that regular
+ "pruning" of the database file records is done. (See
+ the Console <b>retention</b> command for more details on this
+ subject). <p>The Job Retention Period is the length of time that
+ Job records will be kept in the database. Note, all the File
+ records are tied to the Job that saved those files. The File
+ records can be purged leaving the Job records. In this case,
+ information will be available about the jobs that ran, but not the
+ details of the files that were backed up. Normally, when a Job
+ record is purged, all its File records will also be purged. <p>The
+ Volume Retention Period is the minimum of time that a Volume will be
+ kept before it is reused. Bacula will normally never
+ overwrite a Volume that contains the only backup copy of a file.
+ Under ideal conditions, the Catalog would retain entries for all
+ files backed up for all current Volumes. Once a Volume is
+ overwritten, the files that were backed up on that Volume are
+ automatically removed from the Catalog. However, if there is a very
+ large pool of Volumes or a Volume is never overwritten, the Catalog
+ database may become enormous. To keep the Catalog to a manageable
+ size, the backup information should removed from the Catalog after
+ the defined File Retention Period. Bacula provides the
+ mechanisms for the catalog to be automatically pruned according to
+ the retention periods defined. </dd>
+
+ <dt>Scan</dt>
+ <dd>A Scan operation causes the contents of a Volume or a
+ series of Volumes to be scanned. These Volumes with the information
+ on which files they contain are restored to the Bacula Catalog.
+ Once the information is restored to the Catalog, the files contained
+ on those Volumes may be easily restored. This function is
+ particularly useful if certain Volumes or Jobs have exceeded
+ their retention period and have been pruned or purged from the
+ Catalog. Scanning data from Volumes into the Catalog is done
+ by using the <b>bscan</b> program. See the <a href="rel-manual/progs.html#bscan">
+ bscan section</a> of the Bacula Utilities Chapter of this manual
+ for more details.</dd>
+
+ <dt>Volume</dt>
+ <dd>A Volume is an archive unit, normally a tape or
+ a named disk file where Bacula stores the data from one or more
+ backup jobs. All Bacula Volumes have a software label written to
+ the Volume by Bacula so that it identify what Volume it is really
+ reading. (Normally there should be no confusion with disk files,
+ but with tapes, it is easy to mount the wrong one).</dd>
+</dl>
+
+<h3>What Bacula is Not</h3>
+<b>Bacula</b> is a backup, restore and verification program and is not a
+complete disaster recovery system in itself, but it can be a key part
+of one if you plan carefully and follow the instructions included in the <a
+href="rel-manual/rescue.html"> Disaster Recovery</a> Chapter of this manual.
+<p>
+With proper planning, as mentioned in the Disaster Recovery chapter
+<b>Bacula</b> can be a central component of your disaster recovery
+system. For example, if you have created an emergency boot disk, a
+Bacula Rescue disk to save the current partitioning information of your
+hard disk, and maintain a complete Bacula backup, it is possible to
+completely recover your system from "bare metal".
+<p>
+If you have used the <b>WriteBootstrap</b> record in your job or some
+other means to save a valid bootstrap file, you will be able to use it
+to extract the necessary files (without using the catalog or manually
+searching for the files to restore).
+
+<h3>Interactions Between the Bacula Services</h3>
+The following block diagram shows the typical interactions
+between the Bacula Services for a backup job. Each block
+represents in general a separate process (normally a daemon).
+In general, the Director oversees the flow of information. It also
+maintains the Catalog.
+<p style="text-align: center">
+ <img src="images/manual/flow.jpeg" border="0" alt="Interactions between Bacula Services" width="480" height="370">
+</p>
+ </td>
+</tr>
+</table>
+
+<? require_once("inc/header.php"); ?>
--- /dev/null
+<? require_once("inc/header.php"); ?>
+TODO!
+<? require_once("inc/footer.php"); ?>
+++ /dev/null
- <div>
- <img src="images/spacer.gif" alt="spacer" width="1px" height="50px"><br>
- <?
- if($_SESSION['user'] == "bukdebug")
- print_r($_SERVER);
- ?>
- </div>
- </div>
- </body>
-</html>
+++ /dev/null
- <div>
- <img src="images/spacer.gif" alt="spacer" width="1px" height="50px"><br>
- <?
- if($_SESSION['user'] == "bukdebug")
- print_r($_SERVER);
- ?>
- </div>
- </div>
- </body>
-</html>
+++ /dev/null
-<?
- /**
- * grab parms from URL
- *
- */
- parse_str($_SERVER['QUERY_STRING']);
-
- /**
- * some settings
- *
- */
- isset($page) || $page = "home"; // default page to show
- $page_directory = "pages"; // directory with pages
- $page_current = "$page_directory/$page.php";
-
-
- /**
- * Login
- *
- */
- session_start();
- if(isset($_POST['username']) and isset($_POST['password'])) {
- $user = $_POST['username'];
- $pass = $_POST['password'];
-
- if($user == $pass) {
- $_SESSION['user'] = $user;
- $_SESSION['logged_in'] = true;
- }
- }
-
- /**
- * Prepare links
- */
- $spath = dirname($_SERVER['SCRIPT_NAME']);
- if(strlen($spath) < 2)
- $spath = "";
-
-?>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict //EN" "http://www.w3.org/TR/html4/strict.dtd">
-
-<html>
- <head>
- <title> Bacula, the Network Backup Tool for Linux, Unix, and Windows </title>
- <link rel="stylesheet" type="text/css" href="bacula.css" title="blueish">
- <meta name="Description" content="Bacula a network backup and restore program">
- <meta name="Keywords" content="Bacula, backup, restore, file backup">
- <meta name="Copyright" content="Copyright (C) 2000-2007 Kern Sibbald">
- <meta name="Trademark" content="Bacula (R) is a registered trademark of John Walker">
- </head>
-
- <body>
-
- <!-- Top Search Bar -->
- <div class="searchBar">
- <table class="searchBar">
- <tr>
- <td style="text-align: left; vertical-align: middle; width: 50%">
- Bacula, the Network Backup Tool for Linux, Unix, Mac and Windows.
- </td>
- <td style="text-align: left; vertical-align: middle">
- <img alt="English" src="images/english-flag.jpg">
-
- <a href='/fr'>
- <img alt="Français" src="images/french-flag.jpg">
- </a>
- <a href='/de'>
- <img alt="Deutsch" src="images/german-flag.jpg">
- </a>
-
- </td>
- <FORM method=GET target="_blank" action=http://www.google.com/search>
- <td style="text-align: right; vertical-align: middle">
- <INPUT id="text" class="searchBar" type="text" name="q" size=20
- maxlength=255 value="">
- <INPUT id="button" class="searchBar" type="submit" name="sa" VALUE="Search">
- <input type="hidden" name="domains" value="www.bacula.org">
- <input type="hidden" name="sitesearch" value="www.bacula.org">
- </td>
- </FORM>
- </tr>
- </table>
- </div>
-
- <!-- Logo Bar -->
- <div class="pageLogo">
- <table class="pageLogo">
- <tr>
- <td style="text-align: left; vertical-align: middle">
- <img alt="Bacula Logo" src="images/bacu_logo-red.jpg">
- </td>
- </tr>
- </table>
- </div>
-
- <!-- User Bar - if logged in -->
- <?
- if($_SESSION['logged_in']) {
- printf('<div class="userBar">');
- printf('Welcome %s, <a style="color: white; text-decoration: none" href="/?page=logout">logout here</a>.', $_SESSION['user']);
- printf('</div>');
- }
- ?>
-
- <!-- Menu Left -->
- <div class="menuLeft">
-
- <!-- General -->
- <div class="menuHead"> General </div>
- <div class="menuItem">
- <ul class="menuitem">
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=news"> News </a></li>
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=home"> Bacula Home </a></li>
- <li class="menuItem"> <a href="dev-manual/What_is_Bacula.html"> What is Bacula? </a> </li>
- <li class="menuItem"> <a href="dev-manual/Current_State_Bacula.html"> Current State of Bacula </a> </li>
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=testimonials"> Testimonials</a> </li>
- <li class="menuItem"> <a href="http://sourceforge.net/projects/bacula"> SF Project Page </a> </li>
- <li class="menuItem"> <a href="dev-manual/System_Requirements.html"> Requirements </a> </li>
- <li class="menuItem"> <a href="dev-manual/Supported_Operating_Systems.html"> Operating Systems </a> </li>
- <li class="menuItem"> <a href="dev-manual/Supported_Tape_Drives.html"> Tapedrives </a> </li>
- <li class="menuItem"> <a href="dev-manual/Supported_Autochangers.html"> Autochangers </a> </li>
- <li class="menuItem"> <a href="dev-manual/Bacula_Copyri_Tradem_Licens.html"> License </a> </li>
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=fsfe"> FSFE License </a></li>
- </ul>
- </div>
-
- <!-- Documentation -->
- <!-- files need a version -->
- <div class="menuHead"> Documentation </div>
- <div class="menuItem">
- <ul class="menuitem">
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=documentation"> Documentation </a></li>
- <li class="menuItem"> <a href="http://wiki.bacula.org">Wiki </a></li>
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=presentations"> Presentations </a></li>
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=presskits"> Press Kits </a></li>
- </ul>
- </div>
-
- <!-- Downloads -->
- <div class="menuHead"> Downloads </div>
- <div class="menuItem">
- <ul class="menuitem">
- <li class="menuItem"> <a href="http://sourceforge.net/project/showfiles.php?group_id=50727"> Current Files </a> </li>
- <li class="menuItem"> <a href="http://sourceforge.net/project/showfiles.php?group_id=50727#files"> All Files </a> </li>
- <li class="menuItem"> <a href="http://sourceforge.net/svn/?group_id=50727"> SVN Repository </a> </li>
- </ul>
- </div>
-
- <!-- Support -->
- <div class="menuHead"> Support </div>
- <div class="menuItem">
- <ul class="menuitem">
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=support"> Getting Support </a> </li>
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=maillists"> Email Lists </a> </li>
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=bugs"> Bug Reports </a> </li>
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=professional"> Professional </a></li>
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=feature-request"> Feature Requests </a></li>
- </ul>
- </div>
-
- <!-- Projects -->
- <div class="menuHead"> Projects </div>
- <div class="menuItem">
- <ul class="menuitem">
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=projects"> Projects </a> </li>
- <!--
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=vote"> Project Vote </a> </li>
- -->
- </ul>
- </div>
-
- <div class="menuHead"> Donations </div>
- <div class="menuItem">
- <ul class="menuitem">
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=makedonation"> Make a Donation </a> </li>
- <!--
- <li class="menuItem"> <a href="<? echo $spath ?>/?page=donations"> Donations Received </a> </li>
- -->
- </ul>
- </div>
- <div class="menuHead">
- <div class="icons">
- <a href="http://www.ukfast.net"><img src="images/bacula_ukfast_logo.gif" alt="www.ukfast.net"></a>
- <!-- a href="http://validator.w3.org/check?uri=referer"><img src="images/valid-xhtml10.png" alt="valix w3c logo"></a -->
- <!-- a href="http://jigsaw.w3.org/css-validator/validator?uri=<? echo $_SERVER['HTTP_REFERER']; ?>"><img src="images/vcss.png" alt="valid css logo"></a-->
- </div>
-
-
- </div>
-
- </div>
-
- <div class="pageTopRight">
- It comes by night and sucks the vital essence from your computers.
- </div>
-
- <div class="pageContent">
+++ /dev/null
-<?
-
-/**
- * load header, menu
- *
- */
-require_once("inc/header.php");
-
-
-/**
- * load content
- *
- */
-if(is_file($page_current)) {
- include_once($page_current);
-} else {
- printf('
-
- An <b>ERROR</b> occurred:<br>
- <p class="error">
- The page <b>%s</b> isn\'t available.
- </p>', $page);
-}
-
-
-/**
- * load footer
- *
- */
-require_once("inc/footer.php");
-
-?>
+++ /dev/null
-Kern;;;9 Jan 2008;;20:30
-Bacula version BETA 2.2.8 Released
-Bacula version 2.2.8 source tar files as well as the Win32
-binaries are available in the bacula-beta and
-Win32-beta release areas of Source Forge
-
-Version BETA 2.2.8 is a bug fix to version 2.2.7:
-- It fixes bugs: 1036, 1033(doc), 1028, and possibly 1018 and 1032.
- Bugs 1018 and 1032 involve problems with multiple-drive autochangers.
-;;;
-
-Kern;;;24 Dec 2007;;20:30
-Bacula version 2.2.7 Released
-Bacula version 2.2.7 source tar files as well as the Win32
-binaries are available in the Bacula release area of Source Forge
-
-Version 2.2.7 has several new features and several important bug fixes
- since version 2.2.6:
-- It fixes bugs: 1009, 1022, 1024, 1019, 1012, 1021, 1020
- 1007, 1008. For more details, please see the technotes-2.1 file.
-- Fixed a seg fault reported by Frank Sweetser that depended on
- exact path lengths, but the problem was in bsnprintf.c
-- Double quoting include filenames (@xxx) in Bacula conf files is now
- possible, thanks to a patch by Michael Stapelberg.
-- You can pipe input to include filenames (@|prog) by using a vertical
- bar, thanks to the above patch.
-- A daylight savings time bug in the Win32 bsmpt was fixed by a patch from
- Nerijus Baliunas.
-- Marc Cousins submitted a patch that permits building the PostgreSQL
- driver with version 8.3.
-- The configure option --archivedir has been changed to --with-archivedir
-;;;
-Kern;;;9 Nov 2007;;15:25
-Bacula version 2.2.6 Released
-Bacula version 2.2.6 source tar files as well as the Win32
-binaries are available in the Bacula release area of Source Forge.
-
-This release is a minor fix upgrade to version 2.2.5,
-and we recommend that all users upgrade when they can.
-
-Version 2.2.6 is a minor bug fix realease to version 2.2.5
-- It fixes bugs: #1003, 942, 982, 990(response only), 991,
- 993, 986, 976.
- - Fix bat crash wen it cannot connect to Director.
- - Fix joblist failure bug in bat.
-;;;
-Kern;;;9 Oct 2007;;15:25
-Bacula version 2.2.5 Released
-Despite the fact that the Release Notes are rather short, the bug
-fixes represent quite a lot of work:
-
-Version 2.2.5 is a major bug fix release to version 2.2.4
-- It fixes the following bugs: #961, 962, 963, 969, 968, 960,
- 964, (possibly 935 and 903), 953, 953, 967, 966, 965, 954,
- 957, 908, 958, and 955.
-- It also improves listing performance problems in bat pointed
- out by Chris Howells.
-;;;
-Kern;;;29 Sept 2007;;20:30
-A serious data loss bug in Bacula version 2.2.4 found and fixed
-
-This bug was very elusive and time consuming to track down. It
-turned out to be a race condition that can lose the last one or
-two blocks of a Job, which can happen in rare cases only when
-running multiple simultaneous jobs when a volume fills and one
-Job finishes receiving the last data from the FD and at the same
-time a second job detects the end of the Volume. The bug was
-introduced in version 2.0.0 and did not exist in version 1.38.x.
-If the bug is triggered, the data is lost (not written to the
-Volume), and it can occur for any backup job of any level under
-the conditions noted above.
-
-The bug is reported in the bugs database as bug #964, and just
-this morning I found and tested a fix, which is attached as a patch
-to the bug report. The patch (2.2.4-lost-block.patch) is also
-uploaded to the bacula-patches 2.2.x release area. This bug may
-also be part of the problems reported in bug #935 and possibly
-#903.
-
-Also in the bacula-patches 2.2.x area, you will find other
-patches that fixes bugs #953, 966, 967, 965, 958, 908, and
-955. Please refer to bugs.bacula.org for the details.
-
-Though this bug quite serious (data loss), it should be rare.
-However, we recommend everyone to apply the patch.
-;;;
-Kern;;;2007/9/14;;;14:30
-Bacula version 2.2.4 Released
-
-This version of Bacula is a minor bug release to version 2.2.3.
-It contains the following fixes:
-
-- Possible fix for authorization problems bug #953.
-- Possible fix for bug #908.
-- Add waits to multiple exit detection code to try to force pid
- file to always be deleted.
-- Restore good dev.tar.gz to rescue set appropriate binary property.
- This fixes bug #950.
-- Fix seg fault in error exit of acquire_for_read after unsuccessfully
- trying to switch drives by checking for blocking before unblocking.
- Fixes bug #906.
-- Cancel storage daemon in all cases where FD reports error. This
- should fix virtually all cases of bug #920 and will ensure that Devices
- are released as soon as possible.
-- Fix error message that was clobbered when Dir tells SD it does not
- have write permission on Volume. This should fix a minor point
- in bug #942, but not the main problem.
-- Fix migration code to get correct Volume name with multiple volumes
- by skipping |. Fixes bug #936.
-- Implement patch supplied by Landon to fix bug #944 where using
- TLS with bconsole uses 99+% of the CPU.
-- Fix bug #946 about "bacula-dir -t" which doesn't works
- as expected.
-- Using "m" in bconsole will show messages as in prior versions
- and not memory usage.
-
-- Note, you need GTK >= 2.10 to be able to link the Tray Monitor
- program.
-;;;
-Kern;;;2007/9/9;;;14:30
-I regret to announce that there is a rather serious bug in Bacula.
-
-Bacula bug #935 reports that during a restore, a large number of files are
-missing and thus not restored. This is really quite surprising because we
-have a fairly extensive regression test suite that explicitly tests for this
-kind of problem many times.
-
-Despite our testing, there is indeed a bug in Bacula that has the following
-characteristics:
-
-1. It happens only when multiple simultaneous Jobs are run (regardless of
-whether or not data spooling is enabled), and happens only when the
-Storage daemon is changing from one Volume to another -- i.e. the
-backups span multiple volumes, and it only happens for Jobs writing
-to the same volume.
-
-2. It has only been observed on disk based backup, but not on tape.
-
-3. Under the right circumstances (timing), it could and probably does happen
-on tape backups.
-
-4. It seems to be timing dependent, and requires multiple clients to
-reproduce, although under the right circumstances, it should be reproducible
-with a single client doing multiple simultaneous backups.
-
-5. Analysis indicates that it happens most often when the clients are slow
-(e.g. doing Incremental backups).
-
-6. It has been verified to exist in versions 2.0.x and 2.2.x.
-
-7. It should also be in version 1.38, but could not be reproduced in testing,
-perhaps due to timing considerations or the fact that the test FD daemons
-were version 2.2.2.
-
-8. The data is correctly stored on the Volume, but incorrect index (JobMedia)
-records are stored in the database. (the JobMedia record generated during
-the Volume change contains the index of the new Volume rather than the
-previous Volume). This will be described in more detail below.
-
-9. You can prevent the problem from occurring by either turning off multiple
-simultaneous Jobs or by ensuring that while running multiple simultaneous
-Jobs that those Jobs do not span Volumes. E.g. you could manually mark
-Volumes as full when they are sufficiently large.
-
-10. If you are not running multiple simultaneous Jobs, you will not be
-affected by this bug.
-
-11. If you are running multiple simultaneous Jobs to tapes, I believe there is
-a reasonable probability that this problem could show up when Jobs are split
-across tapes.
-
-12. If you are running multiple simultaneous Jobs to disks, I believe there is
-a high probability that this problem will show up when Jobs are split across
-disks Volumes.
-
-13. The bug concerns only the Storage daemon so there is no need to update
-the clients, though I do recommend updating the Director when installing
-an updated Storage daemon.
-
-I have uploaded patches to bug #935 (bugs.bacula.org) that will correct
-version 2.2.0, 2.2.1, and 2.2.2. The patch has been tested only on version
-2.2.2 and passes all regression tests as well as the specific test that
-reproduced the problem.
-
-The patch has now been confirmed to fix the problem reported, and Bacula
-version 2.2.3 has been released to Source Forge.
-
-For the technical details of the bug, please see:
-
- http://www.bacula.org/downloads/bug-935.txt
-
-;;;
-
-Kern;;;2007/8/11;;;14:30
-
-Bacula Version 2.2.0 has been released to Source Forge.
-
- Release Notes for Bacula 2.2.0
-
- Bacula code: Total files = 520 Total lines = 195,550 (*.h *.c *.in)
- 82 new files, 41,221 new lines of code, 208,380 lines of change from 2.0.3
-
-This Director and Storage daemon must be upgraded at the same time,
-but they should be compatible with all 2.0.x File daemons, unless you
-use some of the new features that affect the FD. In other words, you should
-not have to upgrade all your File daemons when you upgrade. There is
-no database upgrade needed from version 2.0.x to 2.2.0.
-
-Areas requiring caution or testing:
-- You must have the thread safe version of MySQL client libraries loaded
- to build with MySQL enabled.
-- Volumes are pruned only when absolutely necessary -- this may cause
- your database to grow compared to prior Bacula versions.
-- Solaris door and even port files are no longer restored (equivalent
- to what we do with sockets).
-- SQLite is no longer supported for Solaris -- it fails too often with
- bus errors. SQLite3 should work on Solaris.
-- The default setting for SQLite3 is now 'PRAGMA synchronous=OFF'.
- This makes it run 30 times faster, but increases the possiblity
- of a corrupted database if your server shuts down unexpectedly.
- The default behavior can be changed in src/version.h
-- Restore on Win32, and in particular on Vista is untested. Please
- test before relying on it. It should backup and restore reparse
- points.
-- Win32 servers are untested, and very likely not to work.
-
-The major new features are:
-- Much faster insertion of attributes (somewhere around 10 times),
- many thanks to Eric Bollengier and Marc Cousin.
-- First release of bat (Bacula Administration Tool). Note to build
- bat you must explicitly enable it on the ./configure line, you
- must have the Qt4 version 4.2 or later libraries loaded, the qwt
- (Qt Graphics) package loaded, and qmake and the other Qt4 tools
- must be available. Most of the implementation was done by Dirk Bartley.
-- Red/Black restore in memory tree (500 times faster loading).
-- The Regex Where code to allow easier relocation of restored files
- thanks to Eric.
-- Socket level heartbeat for all connections (untested).
-- posix_fadvise() use in the FD to improve performance reduces
- swapping due to opening/reading lots of files. Win32 equivalent
- implemented.
-- Much improved Volume reservation code that should eliminate most
- conflicts experienced in multiple drive autochangers.
-- Simpler locking in the SD in the reservation system.
-- Detection of file size/date change during backup if enabled.
-- New Recycle Pool feature -- thanks to Eric.
-- Efficient implementation of very large include/exclude lists.
-- Volumes are no longer pruned during 'status dir'
-- Pruning is now more efficient, and if a Volume is purged,
- during pruning, it is immediately discovered.
-- License is now GPL v2 without modifications, fix a few copyright
- mistakes made when adding FSFE copyright notice.
-
-New ./configure options:
-- --enable-bwx-console
-- --enable-bat
-- --with-qwt=
-- --with-db-name=
-- --with-db-user=
-- --enable-batch-insert
-
-New bconsole commands:
-- exec
-- memory
-- update recyclepool
-- .sql
-- .api
-- .pwd (in restore tree)
-- restoreclient (keyword)
-- backupclient (keyword)
-- regexwhere (keyword)
-- update jobid (new command)
-- recyclepool (keyword)
-
-New directives:
-- Heartbeat Interval (bconsole.conf)
-- Heartbeat Interval (bacula-dir.conf in Director, Client, Storage)
-- TLS Allowed CN (bacula-dir.conf in Client)
-- Regex Where (bacula-dir.conf in Job)
-- Strip Prefix (bacula-dir.conf in Job)
-- Add Prefix (bacula-dir.conf in Job)
-- Add Suffex (bacula-dir.conf in Job)
-- Recycle Pool (bacula-dir.conf in Pool)
-- FailJobOnError (bacula-dir.conf in RunScript)
-- CheckFileChanges (bacula-dir.conf in FileSet)
-- StripPath (bacula-dir.conf in FileSet)
-
-Other features or bug fixes:
-- Fixed bugs: 916, 910, 917, 914, 906, 907,
- 842, 830, 893, 861, 888, 886, 807, 877, 872
- 885, 887, 864, 874, 882, 881, 863, 859,
- 856, 854, 845, 847, 846, 809, 772,
- 822, 825, 824, 808, 802, 797, 798, 795, 789, 791,
- 788, 780, 763, 782, 612, 767, 775, 621, 772, 764,
- 766, 621, 761, 755, 750, 741, 747, 742, 744, and 743.
-- Configure bat with --enable-bat. Define qwt libraries with
- --with-qwt=<dir>. See Installation chapter of manual for details.
-- Create a depkgs-qt package that has both Qt4 and qwt, which are
- needed to build bat. Most modern Linux systems will have both
- these packages in the distro.
-- Storage overrides delete all previous storage definitions instead
- of prepending.
-- One should be able to mount and unmount removable devices if the
- Device resource has Removeable Media set and the mount and unmount
- directives are defined.
-- ./configure will do a better job of searching for qwt libraries.
-- The Win32 version can no longer be shutdown from the tray monitor.
- Use the command line or the Services panne.
-- Keep prune_volumes() from pruning the whole Scratch pool.
-- More debug output in status storage.
-- Correct moving a Scratch volume from pool to pool (some
- critical columns were lost).
-- Different locking in reservations and despooling systems,
- which means more micro-locking and less macro-locking, which
- should give a lot more concurrency at the expense of slightly
- (<0.1%) more overhead due to more locking/unlocking, but
- concurrent jobs should run much faster.
-- Additional drive reservation algorithm that should solve a lot of
- the problems experienced with multiple drive autochangers.
-- Storage daemon status command enhanced to more clearly show Volume,
- pool and media type when a job is waiting.
-- Made bsmtp work with more strict SMTP servers.
-- Detect doubly freed buffers in smartall.c
-- wx-console renamed to bwx-console (Fedora request)
-- gnome-console renamed to bgnome-console (Fedora request)
-- Migration preserves original job's FileSetId
-- Spooling implemented for migration jobs.
-- Config files can be read through a pipe, by specifying a leading |
- in front of the configuration path/filename.
-- New memory command (bconsole) that will print the current Director's
- memory usage, and an in use buffer dump.
-- Console name changed from *Console* to -Console- to accomodate Win32
- filename restrictions.
-- Corrected the Win32 ftruncate bug.
-- Additional version information added to Job reports.
-- New -8 option for bsmtp to specify UTF-8 encoding type.
-- bsmtp will no longer add < > to target (from, to, cc) if there
- is already a < in the target.
-- Prefer Mounted Volumes extended to mean a volume that is being
- mounted by another job.
-- Runscript timing set to same as version 1.38.11
-- New TLS Allowed CN directive(s) permitted.
-- New bconsole 'exec' command to run external script/command.
-- Turn on FreeBSD/OpenBSD code to set EOT model on tape.
-- Drop from root done before database is opened.
-- Database user and name can be configured with:
- --with-db-name=name --with-db-user=user
-- Turn on wait_for_drive in mtx-changer script.
-- Rework how bar codes are handled in mtx-changer script.
- This appears to have been an unreported bug.
-- Updated nagios plugin supplied by Christian Masopust
-- Better restricted console ACL checking.
-- New Client Connect Wait directive in Storage daemon so that
- users can configure how long SD waits for FD connection.
-- Bacula will no longer permit pruning of the currently running
- job (note, if other jobs are running, they may be pruned).
-- Sockets are no longer restored.
-- dbcheck works in 300K chunks so will typically run faster.
-- Include/Exclude lists can now be efficiently handled for quite
- large sizes -- tens of thousands of entries.
-- Several memory leaks in migration and database usage were fixed.
-- New console keyword restoreclient, which specifies the client to
- which the restore will be sent. The client keyword specifies
- the backup client. The restoreclient keyword is optional if it is
- not specified, the backup client will also be the restore client.
-- The disk file size is now checked to ensure that it agrees with the
- catalog value before Bacula will append to the disk (same as tape
- and DVD).
-
-;;;
-
-Kern;;;2007/3/6;;;14:30
-
-Bacula Version 2.0.3 has been released to Source Forge.
-This is a bug fix release to version 2.0.2. If you are upgrading from
-a version older than 2.0.0, please be sure to read the important notes
-below.
-
-Also, please check the patches directory in the current SVN or the
-patches release section on Source Forge for important bug fixes to
-this version.
-
-5Mar07
-kes File migrate bug with Pool Occupancy using mediaid instead
- of jobids. Fixes bug #795.
-kes Fix orphaned buffers in filed backup and verify due to
- crypto buffers not freed during errors. Fixes bug #789.
-04Mar07
-kes Add smartctl call to bacula-sd.conf as an example of getting
- tape alert info.
-02Mar07
-kes Add Client Connect Wait to Storage daemon to permit users to
- modify the time the SD waits for a FD connection.
-28Feb07
-kes Apply Command ACL filter to JobId list in restore command.
-kes Correct typeo in var.c patch.
-27Feb07
-kes Don't let Bacula prune File or Job records for the current Job.
-kes Fix variable substitution pad + inc bug reported (with patch)
- in bug #791.
-26Feb07
-kes Correct SQLite log table index as reported by Luca Berra.
-24Feb07
-ebl Fix FIFO stuff, bacula tries to rewind the FIFO... Thanks to Andreas
-22Feb07
-kes Fix a few places in lib/message.c where the open fd may
- not be zeroed.
-21Feb07
-kes Add LANG=C to autoconf/randpass so it works with languages other
- than English. Fixes bug #788.
-20Feb07
-ebl Revert ClientRunBeforeJob as it was in 1.38.x
- This fixes bug #780
- You will not be able to generate Include/Exclude list any more.
- If you want to use this, you can apply
- trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
-19Feb07
-kes Restore of sockets created false error messages because Bacula
- no longer restores sockets, but the code was still trying to
- set the attributes on a non-existent file. Reported by a user.
-16Feb07
-kes Fix encryption deblocking bug, which caused some restored files
- to be truncated. This fixes bug #763. This is a CRITICAL bug fix.
-kes Add FD event sequence order prepared by Eric -- for RunScripts.
-kes Fix 12am/pm bug as reported in bug #782.
-15Feb07
-kes Add quick disconnect FD code from 2.1.4 to 2.0.3. This code
- causes the SD to release the FD as soon as the FD has sent
- all the data to the SD. After that the SD will do any final
- despooling (data and attributes) that are necessary. This
- allows laptops to disconnect much quicker from the network
- after a backup.
-13Feb07
-kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
-11Feb07
-kes Optimize the use of the database a bit in the Status dir command.
- Only open it when needed, ensure that if any previous database
- was opened, it is closed.
-10Feb07
-kes Modify dbcheck to handle orphaned JobMedia, Path, Filename,
- and File records in 300K chunks to be more efficient. This
- idea came from Juan Luis Frances (if I remember right).
-09Feb07
-kes Update projects list.
-08Feb07
-kes Fix dird/ua_cmds.c so that a cancel command checks if the
- console is authorized to cancel the job. This fixes bug
- #767.
-kes Modify SD so that the VolCatJobs medium record is updated
- at the beginning of a Job rather than the end. This
- fixes bug #775 where exceeding MaxVolJobs caused jobs
- to fail.
-kes Added a mutex around getting and setting Volume information
- so that multiple simultaneous jobs will single thread.
-07Feb07
- Switch to using Subversion
-kes Remove src/pygtk-console/ from configure
-06Feb07
-kes Delete src/lib/btree.c from win32 build, then add rblist.c
- plus the entrypoints.
-kes Apply patch supplied that corrects debug print
- in canceling jobs for max run time. Supplied as
- part of bug #621, which was previously fixed.
-05Feb07
-kes Test on job_canceled() and sd_msg_thread_done inside
- loop starting the message thread to avoid a race condition.
- Fixes bug #771.
-kes Remove rl_catch_signal from console.c as it conflicted
- with the header definition. Fixes bug #765.
-ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
-04Feb07
-kes Clarify some stored/acquire messages to indicate if the
- problem is with read or append.
-02Feb07
-kes Fix memory leak with storage ids in cats/sql_get.c
-kes Terminate watchdog earlier to avoid reference to released
- memory -- reported by Jason Austin.
-kes Move closing the database from jobq.c to the director daemon
- termination routine. This fixes memory leaks for shadow jobs
- (i.e. migration jobs).
-kes Free up the unique jobid chain items in migrate.c. This fixes
- a memory leak problem.
-kes Convert some ugly looking for statements to use foreach_alist
- in findlib/find.c. This will facilitate converting the structures
- to use dlist (for large include/exclude lists).
-kes Fix a bug in the btree.c and btree.h routines, then rename them
- rblist and add them to be built in src/lib. Include some new
- methods written by Rudolf Cejka that make the code more readable
- (hides some of the ugly casting).
-26Jan07 (back port)
-kes Implement item #12 on project list -- quick release of FD by
- the SD. This is noted in more detail above.
-
-;;;
-
-Kern;;;2007/1/28;;;14:30
-
-Bacula Version 2.0.2 released:
-28Jan08
-kes Fix maxruntime bug #621.
-27Jan07
-kes Get current main CVS .specs for RedHat, SuSE, Mandrake.
-26Jan07
-ebl Implement the include JobID in spool file name project.
-kes Reorder projects file in order determined by Jan 2007 vote.
-kes Fix open of SQLite3 db where user does not have write permission
- so that DIR does not crash. Fixes bug #761.
-25Jan07
-kes Change 'Device not configured to autolabel' from INFO
- to WARNING.
-kes Fix jobq.c to restart failed jobs when Reschedule Times = 0
- which should restart an indefinite # of times.
-kes Fix configure --help to print --with-mysql[=DIR]. Same for
- other DIR specifications.
-23Jan07
-rn Fix msvc build problems. Fix bacula.dll exports for msvc build.
- Fix path quoting in SQLite scripts.
- Fix problems with SHGetFolderPath.
-19Jan07
-kes Create patches/2.0.1-restart.patch. Fixes bug #755.
-18Jan07
-kes Fix Job restart on error bug that promotes an Inc to a Full
- backup. This should fix bug #755.
-kes Add qt-console and first cut of code.
-
-;;;
-
-Kern;;;2007/1/13;;;14:30
-
-Bacula Version 2.0.1 has been released to Source Forge.
-This is bug fix update to version 2.0.0 and contains
-the following fixes:
-
-- Fix Bacula->Documentation link on Win32 to point to index.html
- instead of bacula.html. Fixed bug #750.
-- Return JobId in db_get_job_record() when JobId==0. This should
- fix bug #741.
-- Do not release source pointers when restarting a failed job.
-- Add dynamic dll entry point for SHGetFolderPath to Win32 code.
- This *should* fix bug #747.
-- Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
- bug #742.
-- Modify USTORE constructor to set an empty store_source string,
- and don't copy the store_source string in a cancel. Hopefully
- this will fix Arno's seg fault, bug #744.
-- Add back code to disable conio in configure. Fixes bug #743.
-- Correct the Options scanner in the FD to correctly handle
- SHA1 option, which was eating the next option. Reported by
- Sebastien Guilbaud.
-- Add code to indicate when the SD is spooling, spool wait, and
- despooling as requested by Alan Brown.
-
-;;;
-
-Kern;;;2007/1/4;;;14:30
-
-Bacula Version 2.0.0 has been released to Source Forge.
-
-There is an English Press Kit, written by Dan Langille at:
-
- http://www.bacula.org/about/press/presskit200.html.en
-
-and a German version, translated by Arno Lehmann at:
-
- http://www.bacula.org/about/press/presskit200.html.de
-
-;;;
-
-Kern;;;2007/1/4;;;14:31
-
- Release Notes for Bacula 2.0.0
-
- Bacula code: Total files = 438 Total lines = 154,329 (*.h *.c *.in)
-
-==== IMPORTANT Catalog update required =====
-- The database format has been updated from what was used in
- Bacula 1.38.x. You must manually update your database before
- running Bacula 1.39.x or higher. If you are using Bacula supplied
- RPMs this is not necessary as the RPM does it automatically.
- Please backup your previous version of the database before
- running the update. The update script will be automatically
- installed in your scripts directory, or can also be found in
- <bacula-source>/src/cats. It is called:
-
- ./update_bacula_tables
-
- It is necessary to run it only once the first time you move to
- a 2.0.0. Upgrading the Bacula version thereafter does not
- require updating the database again. Depending on the size of
- your database the script make take a bit of time, to run, but
- in general, it should be very fast.
-
-==== IMPORTANT new Win32 install procedure =====
- For Win32 migrations from versions prior to 1.39.0 nothing special
- needs to be done to upgrade. Everything should be taken care of
- automatically. The only thing not done is to delete the old C:\bacula
- directory mostly out of paranoia.
-
-==== IMPORTANT miscellaneous ====
-- The Gnome console program (gconsole) no longer functions as it
- should.More importantly, in restore mode, the restore tree is
- no longer shown in the left pane. I suspect this is due to
- incompatible changes in the GTK+ API, and hence have given up
- on gnome and gtk+, as this has already happened several times
- previously. At some point there will be a new GUI console.
-- The bacula-dir.conf directive Accept Any Volume has been
- removed because it was never implemented. You must delete all
- occurrence of this directive for the Director to run. The Storage
- daemon will automatically accept any valid Volume that you mount.
-- The --mandir ./configure option now points to the top level man
- directory. The man files will be installed under mandir/man8 and
- mandir/man1 as appropriate.
-- You *should* be able to use 1.38.x FDs with version 2.0.0 Director
- and SD providing you do not use any of the new features (runscript,
- data encryption). It seems to work here, but we do not guarantee it.
-- Your Director and SD must be simultaneously upgraded.
-- The restore command no longer uses the MediaType as the primary method
- of finding a suitable Storage device. Normally it will select the last
- device used to write a Volume. If no storage device is defined, it
- will use the old algorithm which selects the first Storage resource
- with the correct MediaType.
-- The MD5/SHA1 hash codes kept in the database are now kept in a binary
- format compatible with the rest of the world. If you are running verify
- jobs, you *must* do an InitCatalog or all files will show an MD5
- difference. Also, authentication uses the new algorithm by
- default, but *should* accept connections from older components (FD) using
- the old non-compatible algorithm. This has been tested, but more
- more testing is still needed.
-- A stock SuSE 10.1 kernel may crash when Bacula runs and accesses
- the tape drive. Workaround, load the SuSE 10.1 version 2.6.16.21-0.25
- kernel or later. The SuSE 10.2 Alpha 5 or later kernel also works.
- This problem may also be present in certain Fedora FC5 kernels.
-- If you have been using the data encryption feature of 1.39.x, please
- be aware that certain combinations of encryption and other options
- with version 1.39.0 through 1.39.26 created Volume data that cannot
- be restored. We strongly recommend that anyone using encryption
- carefully review his/her backups and at a minium do a Full backup
- with 1.39.28 of all encrypted data. Robert Nelson has identified
- and fixed it as follows:
- As of 1.39.27:
- No filters = Works fine
- Sparse = Works fine
- Compression = Works fine
- Encryption = Works fine
- Sparse + Compression = Works fine
-
- Sparse + Encryption = Restore broken
- Sparse + Compression + Encryption = Restore broken
- Compression + Encryption = Restore broken
-
- As of 1.39.28:
- Most combinations work, but some encrypted files are
- not properly restored.
-
- As of 1.39.30:
- All combinations work fine except Sparse+Encryption.
-
- Bottom line, if you are using data encryption, please test restoring
- data to be sure it all works correctly.
-- The current Volume format written by 1.39.22 is different from
- the format written by previous versions. The two formats
- are not compatible. Thus any DVDs written prior to 1.39.22 will
- be unreadable by version 1.39.22.
-- If you previously run a Bacula version prior to 1.39.30, the JobMedia
- data may not be correct for disk Volumes. This can cause incorrect
- seeking in versions after 1.39.30. If you experience what appears to
- be data I/O or integrity errors during restores, please add the
- following directive to your disk DEVICE resource in the Storage
- daemon conf file:
-
- Block Positioning = no
-
- This will turn off all seek requests during restores and avoid
- this problem.
-- VSS for Windows clients is now enabled by default.
-- Do not unload autochanger when doing "update slots"
-- Implement mount command for autochanger, see manual.
-
-New Features in 2.0.0:
-- Turn on disk seek code for restores.
-- There is a partial but reasonable translation of the Bacula
- messages for French. To install it, first configure and build
- Bacula, then as root run:
-
- cd <bacula-source>/po
- make install
-
- If you have your locale set properly you will get the translated
- messages.
-- Bacula now support Migration jobs that are documented in a new
- Migration chapter in the manual
- http://www.bacula.org/dev-manual/Migration.html
-- Data encryption is now implemented and is documented in
- a new chapter of the manual at:
- http://www.bacula.org/dev-manual/Bacula_Data_Encryption.html
-- Additional support for removable devices. See the
- Requires Mount, Mount Point, Mount Command, and Unmount
- Commands in the Storage daemon configuration chapter:
- http://www.bacula.org/dev-manual/Storage_Daemon_Configuratio.html
- Also see the Edit Codes for Mount and Unmount Directives in the
- same chapter.
-- Switch the Win32 build from using Microsoft C++ to using mingw32
- cross-compiling. The initial work was done by Howard Thomson,
- then tweaked by me. Robert Nelson then totally reworked the
- cross-compiling code so that it not only cross-compiles, but
- also compiles on Visual Studio, and at the same time, he added
- all the current Unix features to the FD, such as selection on
- drives, encryption support, building *all* the tools, ...
-- The Director and Storage daemon have now been ported to Win32.
- This code is working but should still be tested carefully
- before putting into production.
-- Bacula restore and bextract can now extract non-portable Win32 data to
- any client (including Unix/Linux clients). Of course, in doing so,
- the Microsoft specific permissions and ACLs will be lost. Thanks
- to Thorsten Engel for this code.
-- The 260 character limitation for Win32 paths name lengths is now
- eliminated thanks to Thorsten Engel. However, if you are using
- Volume Shadow Copy, please be careful to specify all the paths
- in the bacula-fd.conf file using a full path notation including
- the drive letter.
-- Eric Bollengier wrote new RunScript directives that includes
- the old RunBefore/AfterJob and ClientRunBefore/AfterJob features
- plus a *lot* more, allowing you to control just about every aspect
- of running scripts. See the manual for detailed documentation.
- http://www.bacula.org/dev-manual/Configuring_Director.html#5227
-- SunOS ACLs should now work thanks to a patch from David Duchscher.
-- Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at
- If this patch is applied, the number of days can be specified with
- "list nextvol days=xx"
- or
- "status dir days=xx"
- This can be used to preview the next scheduled job (and the
- next tape to be used) on Fridays if there are no scheduled jobs during
- the weekend.
-- From Eric Bollengier. One can now using the bconsole wait command do:
- wait (wait for all jobs to stop)
- wait jobid=nn
- wait jobuid=unique id
- wait job=job-name
-- Volumes can now be set to Enable, Disable, or Archive. If they
- are not enabled, Volumes will not be mounted.
- Implement update volume enable=(on|off|true|false|archived|0|1|2)
-- Add Catalog message destination in Messages resource that puts the
- job report in the Log database table.
-- Writing/reading DVD Volumes is much more stable -- to the point
- of being useful. Thanks to Richard Mortimer.
-- Add enable/disable job=<job-name>. This command prevents
- the specified job from being scheduled. Even when disabled,
- the job can be manually started from the console.
-- The database Id records should be 32/64 bit independent now. 64 bits
- can be enabled by changing one define and changing the appropriate
- table variable. Normally, you need 64 bits only for FileId.
-- Relative path specifications (i.e. ../xxx) are now permitted in
- the restore cd command.
-- When running multiple simultaneous jobs, most jobs that use spooling
- will now finish faster due to a mutex optimization made by Eric
- Bollengier.
-- Conf files containing UTF-8 marker at the head of the file as well as
- conf files containing Window cr/lf and Mac cr line termination characters
- are now accepted thanks to Robert Nelson.
-- Windows tray status windows are scrollable and resizable.
-- Win32 external script execution is much more flexible -- handles
- spaces in names better, ...
-- Lots of DVD fixes -- writing DVDs is now reported to work.
-- Fix opening of database in a restricted console to respect
- any Catalog ACL.
-- Much better automatic handling of multiple database catalogs in
- the restore command.
-- Permit multiple console/director resources in bconsole.conf.
- patch from Carsten Paeth calle@calle.in-berlin.de
-- Character substitution in Job/JobDefs WriteBootStrap.
- from Eric Bollengier.
-- Apply patch supplied in bug #656 to pass priority field
- in the run dialog to the Director in gnome console.
-- Add support of encrypted data stream to bscan from Eric.
- display data_len instead of data content (may be binary).
-- Add Enabled=xxx on update slots command.
-- Add host:port to connect failure messages to FD and SD from Dir/
-- Add WhereACL to console ACL list. If nothing is specified, only
- the default is permitted for restore. Otherwise, *all* allows any
- path, or you can specify permitted paths. This should allow control
- over where users can restore files. This is untested.
-- Install man pages with 'make install'.
-- Add Media.Enabled flag to client backups for dotcmds.c
-- Enforce Media.Enabled=1 for a current restore to work
-- Require restore case 3 to have sqlquery permission to work.
-- Add -n option to bconsole to turn off conio -- used in bweb.
-- The bytes field in the terminated jobs part of the status
- command now reports in KB, MB, ... units.
-- When not descending into a directory, print the File= name that
- triggered it -- makes why not descending a bit clearer
-- Do not unload autochanger when doing "update slots"
-- Implement mount command for autochanger
-- Fix bug #462 incorrect error message printed when client script called
- from File= was not found.
-- Fix bug #558 (waiting for feedback) where Bacula needs too much time to
- do a rewind on Solaris when no tape is in the drive (Solaris does not
- have the detailed errno found on Linux). Added Solaris specific code.
- Note, this may apply to other OSes as well.
-- The examples directory has a new bacula_mail_summary.sh file that
- creates a single email summary of any number of jobs. Submitted by
- Andrew J. Millar.
-- Add nagios plugin to the examples directory. Submitted by
- Christian Masopust.
-- Modify most restore error messages to be queued so that they
- appear at the end of the job rather than mixed with the restore
- listing where they could be "lost".
-- Apply patch supplied by user (slightly modified) to fix
- correct detection of holes in block devices and FIFOs.
- Bug # 506.
-- Added a report.pl program to the examples directory from Jonas Bjorklund.
-- Add two new queries to query.sql provided by Arno. One
- list volumes known to the Storage device, and the other
- lists volumes possibly needing replacement (error, ...).
-- Implement new code for changing userid and group at startup. This
- should get Bacula into the correct groups.
-- Implement support for removable filesystems -- device type directive
- and mount, unmount directives.
-- Transfer rates are now presented in a more readable format thanks
- to a user submission.
-- SD is now aware of what volumes are mounted. More information is printed
- in the Status report. You must take much more care now to unmount
- devices prior to removing tapes that Bacula has open or prior to
- changing a magazine. Don't forget to do a mount afterwards or the
- device will be blocked.
-- The Pool Maximum Volumes directive is now respected in all places.
-- A Storage device can now be specified in a Pool resource. It will override
- all other Storage specifications.
-- Most but not all directives accept true/false in place of yes/no.
-- A patch from Karl Hakimian that reads JobIds, FileIndexes
- from a database table for restore.
-- There are a number of new tables. Some such as the Location table are
- designed for user use in doing Volume Management software.
-- Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to
- accept time qualifiers.
-- Implement jobuid to replace old usage of job in keywords as
- suggested by Eric Bollengier.
-- Implement write variables for Python to set Priority (anytime), and
- Job Level, only during JobInit event.
-- Use the keyword ujobid to mean the unique job id; job or jobname
- to mean the Job name given on the Name directive, and jobid to
- be the numeric (non-unique) job id.
-- Allow the SD to use multiple drives during a backup/restore (only
- one at a time).
-- Integrate addition of line count limitation to bsmtp -l from
- Sebastian Stark <stark at tuebingen.mpg.de>
-- Split the bacula start/start script into four files:
- bacula -- starts and stops calling other scripts
- bacula-ctl-dir -- starts/stops the director
- bacula-ctl-fd -- starts/stops the File daemon
- bacula-ctl-sd -- starts/stops the Storage daemon
-- Remove automatic case folding on Windows FDs. You must
- explicitly use the 'Ignore Case = yes' option.
-- Implement wild program in tools directory for testing
- wild-cards. Almost identical to the regex program.
-- Use the new bregex.c to implement Regex expressions on Win32.
-- Apply patch from Christopher Hull
- - Allow multiple connections to database with different
- parameters.
- - Invalidate the scheduler when doing a reload. Fixes seg
- fault, but still 60 second window.
- - Additional info in Reschedule message.
- - Use set_jcr_job_status() everywhere to prevent loss of
- cancel, error.
- - Display peer IP in FD if error from connecting DIR.
- - Don't increment file count for DIRBEGIN.
- - Replace illegal characters in Win32 filename by _.
- - Add SE_CREATE_PERMANENT_NAME privilege in Win32.
- - Hash hard link filenames rather than linked list (performance).
- - Fix for security failure in chdir on Win32.
- - Add CreateDirectoryA/W win32 API entry points.
-- programs to duplicate Bacula's base64 algorithm using standard
- routines. This fixes bugs #296, and 565. Patch submitted by
- author of bug #565.
-- Fixes to reloading the Dir conf file from Eric Bollengier and Christopher
- Hull.
-- Modify LICENSE to correct some problems pointed out by Debian.
-- Apply a patch submitted by cesarb in bug #606 to implement O_NOATIME support.
- O_NOATIME is a open() flag which makes it possible to read a file without
- updating the inode atime (and also without the inode ctime update which
- happens if you try to set the atime back to its previous value). It also
- prevents a race condition when two programs are reading the same file, but
- only one does not want to change the atime. It's most useful for backup
- programs and file integrity checkers (and bacula can fit on both
- categories).
- You enable it in the Bacula FileSet Options resource by setting:
- noatime = yes
- The effect of this option is similar to the keepatime option except
- it is more efficient and avoids modifying ctime.
-- Implement a pile of new man pages contributed by Jose Tallon.
-- Modify the database format for handling Migration jobs:
- Add PriorJobId, RealEndTime to Job table
- Delete MAC table
- Remove Stripe from JobMedia record (not used, wasting space)
- Add ScratchPoolId, RecyclePoolId, Enabled to Media record
- Add Cost to Location table.
- Enabled to Media table and Location table.
-- Security: harden authentication failure in FD by single threading errors
- and forcing a 6 second wait.
-- If using GCC (actually g++) add the following compiler flags
- -fno-strict-aliasing -fno-exceptions -fno-rtti
-- Turn on new bsnprintf() code. The reason for this code is to
- eliminate the security problems associated with using the
- system libraries print routines.
-- Implement job report that indicates where Storage and Pool
- came from -- with overrides and Pool storage and NextPool,
- it is all very complicated.
-- Add more detail (Storage, Device) to list of volumes printed
- for restore.
-- Add new VOLMGMT message class. No messages are yet sent with this
- class.
-- Improved Bacula rescue procedures -- see the Disaster Recovery
- chapter of the manual
-- Add spooling/despooling info in status output of SD.
-- Add Comment field to llist of a volume.
-- Allow true/false in many but not all yes/no directives.
-- The Bacula source code is now copyrighted by the Free Software
- Foundation Europe. The Developer's Guide documents the new procedures,
- and the LICENSE file has been updated.
-- Apply Jaime Ventura's patch that implements the Messages resource
- Mail On Success directive.
-- The Client returns its Version string, which is printed in the Job
- report.
-- The Client returns whether or not VSS and Encryption are used, which
- are printed in the Job report.
-
-Additional Features Added for Win32:
-- Added DriveType directive to the Director's Include Option FileSet
- resource. Allowed values are: fixed, removable, cdrom, and remote. There
- is only an implementation for Windows because it is the only platform that
- has the concept of drives.
-
-- Adds EnhancedWild directive to the Director's Include Option FileSet
- resource. Allowed values are: yes and no.
-
- When EnhancedWild is enabled then the processing of the
- Wild, WildDir and WildFile is changed in the following ways.
-
- Patterns conform to Posix
- \ is not a special character in character classification []
- To match a - it must be the first or last character
- To match a ] it must be the first character
-
- fnmatch option FNM_FILE_NAME is specified * doesn't match a /
- so it won't match multiple directory levels in a path
-
-- Relative WildFile patterns (ones without a leading /) match
- against the filename portion. This in combination with the
- FNM_FILE_NAME fnmatch() flag makes directives such as WildFile =
- abc*.def work as expected.
-
-- Adds support for the shell's feature of brace expansion.
-
- Here is an example where braces allow 24 lines to be expressed in 5.
-
- # Exclude directories full of lots and lots of useless little files
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Cookies"
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/Recent"
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/History"
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temp"
- WildDir = "[A-Z]:/{Documents and Settings,{WINNT,Windows}/Profiles}/*/{Local Settings,LOCALS~1}/Temporary Internet Files"
-
-;;;
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic">
- Bug Reporting
- </td>
-</tr>
-<tr>
- <td class="content">
- Before reporting a bug, please be sure it is a bug and
- not a request for support (see the Support tab to
- the left).
- <p>
- Bacula now has a Mantis bug reporting system
- implemented by Dan Langille and hosted on his computer. It is web based,
- easy to use, and we recommend you give it a try. You can submit a bug
- or review the list of open or closed bugs by visiting:
-
-<p style="text-align: center; font-size: 24px">
- <a href="http://bugs.bacula.org">http://bugs.bacula.org</a>
-</p>
-
-To view the bug reports, you can login as user <b>anonymous</b> and
-password <b>anonymous</b>. The advantage of actually being subscribed
-is that you will be notified by email of any serious bugs and their
-resolution.
-
-To submit bug reports, you must create an account. You must also use a
-browser running a US ASCII code page or UTF-8. Some users running Win32
-IE with Windows Eastern European code pages have experienced problems
-interfacing with the system.
-
-<p>
-Most Bacula problems are questions of support, so if you are not
-sure if a problem you are having is a bug, see the support page
-on this site for links to the email lists. However, once you have
-determined that a problem is a bug, you must either submit a bug
-report to the bugs database or send an email to the bacula-devel
-list, otherwise it is possible that the developers will never know
-about your bug and thus it will not get fixed.
-
-You should expect two things to be slightly different in our Bugs
-handling than many other Open Source projects. First, we unfortunately
-cannot give support or handle feature requests via the bugs database,
-and second, we close bugs very quickly to avoid being overwhelmed.
-Please don't take this personally. If you want to add a note to the bug
-report after it is closed, you can do so by reopening the bug, adding a
-bug note, then closing the bug report again, or for really simple
-matters, you can send an email to the bacula-devel email list. If a
-developer closes a bug report and after everything considered, you are
-convinced there really *is* a bug and you have new information, you can
-always reopen the bug report.
-
-<h3>Information Needed in a Bug Report</h3>
-For us to respond to a bug report, we normally need the following
-as the minimum information, which you should enter into the appropriate
-fields of the bug reporting system:
-<ul>
-<li>Your operating system</li>
-<li>The version of Bacula you are using</li>
-<li>A <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">clear and concise</a> description of the problem</li>
-<li>If you say "it crashes", "it doesn't work" or something
- similar, you should include some output from Bacula that shows this.</li>
-</ul>
-If you are having tape problems, please include:
-<ul>
- <li>The kind of tape drive you have </li>
- <li>Have you run the <b>btape</b> "test" command?</li>
-
-</ul>
-The first two of these items can be fulfilled by sending us a copy of
-your <b>config.out</b> file, which is in the main <b>Bacula</b> source
-directory after you have done your <b>./configure</b>.
-
-<p>In addition, we will sometimes need a copy of your Bacula
-configuration files (especially bacula-dir.conf). If you think it is a
-configuration problem, please don't hesitate to send them if
-necessary.</td>
-</tr>
-<tr>
- <td style="font-size: 14px; padding: 0px 20px 0px 20px">
- Please read that little Bug-Report-<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">HowTo</a> as well.
- </td>
-</tr>
-
-</table>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
- <tr>
- <td class="contentTopic">
- Bacula Documentation
- </td>
- </tr>
-
- <tr>
- <td class="content">
- <ul>
- <li> <a href="dev-manual/Brief_Tutorial.html">Tutorial</a>
- <br>(start here after installing Bacula)
- </ul>
- </td>
- <td class="content">
- <ul>
- <li> <a href="<? echo $spath ?>/?page=news"> News </a>What's New in Bacula</a>
- <br>(changes since the last major release)
- </ul>
- </td>
- </tr>
-
- <tr>
- <td class="content">
- <ul>
- <li> <a href="rel-manual/index.html" >HTML User's Manual</a>
- <br>(released version of the User's Manual)<br></li>
- <li> <a href="<? echo $spath ?>/rel-bacula.pdf">PDF User's Manual</a>
- <br>(released version of the User's Manual)<br></li>
- </ul>
- </td>
- <td class="content">
- <ul>
- <li> <a href="dev-manual/index.html" >HTML Development Manual</a>
- <br>(User's manual for code under development)<br></li>
- <li> <a href="<? echo $spath ?>/bacula.pdf">PDF Development Manual</a>
- <br>(User's Manual for code under development)</li>
- </ul>
- </td>
- </tr>
-
- <tr>
- <td class="content">
- <ul>
- <li><a href="bacula-web/index.html">Bacula-web Guide</a>
- <br>(Guide for the Bacula-web GUI application)</li>
- </ul>
- </td>
-
- <td class="content">
- <ul>
- <li><a href="developers/index.html">HTML Developer's Guide</a>
- <br>(Guide for Bacula developers)</li>
- <li> <a href="<? echo $spath ?>/developers.pdf">PDF Developer's Guide</a>
- <br>(Guide for Bacula developers)</li>
- <li><a href="<? echo $spath ?>/FLA-bacula.en.pdf">PDF FLA</a>
- <br>(Developer's Fiduciary License Agreement)</li>
- </ul>
- </td>
- </tr>
-
-
-
-</table>
- <p>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-
-<table width="100%">
-<tr>
- <td class="contentTopic">
- Donations Received
- </td>
-</tr>
-</table>
-<table width="90%" align="center">
-<tr>
- <td class="content">
- <table class="news" style="width: 99%">
-<?
-
-$max_news = 5;
-$news_counter = 0;
-
-// read file into an array and revert that
-// revert cause array_pop always gets the last element
-//
-$file = "donations.txt";
-$lines = array_reverse(file($file)) or
- die("No newsfile!");
-
-// as long as there are lines ...
-//
-while(count($lines) > 0 && $news_counter < $max_news) {
- // next line
- $line = array_pop($lines);
-
- // start of news
- if(eregi("^[a-z0-9]+;;;", $line)) {
- // news header
- list($author,$date,$time) = explode(";;;",$line);
-
- // news subject
- $subject = array_pop($lines);
- printf('<tr><td class="newsHeader">%s</td></tr>', $subject);
- printf('<tr><td class="newsContent"><pre class="newsContent">');
-
- continue;
- }
-
- // end of news
- if(eregi("^;;;", $line)) {
- printf('</pre></td></tr>');
- printf('<tr>');
- printf('<td class="newsFooter">%s - %s, %s</td>', $date, $time, $author);
- printf('</tr>');
- printf('<tr><td><img src="images/spacer.gif" width="1px" height="15px"></td></tr>');
- $news_counter++;
- continue;
- }
-
- // news content
- printf('%s', $line);
-}
-?>
- </table>
- </td>
-</tr>
-</table>
-<? require_once("inc/header.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic"> Feature Requests </td>
-</tr>
-<tr>
- <td class="content">
-
-In the past, users informally submitted feature requests by email, and
-I (Kern) collected them, then once a version was released, I would publish the
-list for users to vote on.
-<p>
-Now that Bacula has become a bigger project, this process has been
-formalized a bit more. The main change is for users
-to carefully think about their feature, and submit it on a feature
-request form. A mostly empty form is shown below along with an
-example of an actual filled in form. A text copy of the form can
-be found in the <b>projects</b> file in the main source directory
-of the Bacula release. That file also contains a list of all the
-currently approved projects and their status.
-<p>
-The best time to submit a Feature Request is just after a release when
-I officially request feature requests for the next version. The worst
-time to submit a feature request is just prior to a new release (we are
-very busy at that time). To actually submit the Feature request,
-fill out the form, and submit it to both the bacula-users and
-the bacula-devel email lists. It will then be openly discussed.
-<p>
-Once the Feature Request has beeen adequately discussed, I will
-either reject it, approve it, or possibly request some
-modifications. If you plan to implement the feature or donate
-funds to have it implemented, this is important to note,
-otherwise, the feature, even if approved, may wait a long time
-for someone to implement it.
-<p>
-Once the Feature request is approved, I'll add it to the projects
-file, which contains a list of all open Feature Requests. The projects
-file is updated from time to time
-<p>
-The current (though possibly somewhat old) list of projects can also
-be found on the Web site by clicking on the Projects menu item.
-
-
-<h3>Feature Request Form</h3>
-<pre>
-Item n: One line summary ...
- Origin: Name and email of originator.
- Date: Date submitted (e.g. 28 October 2005)
- Status:
-
- What: More detailed explanation ...
-
- Why: Why it is important ...
-
- Notes: Additional notes or features ...
-
-</pre>
-
-<h3>An Example Feature Request</h3>
-<pre>
-Item 1: Implement a Migration job type that will move the job
- data from one device to another.
- Date: 28 October 2005
- Origin: Sponsored by Riege Sofware International GmbH. Contact:
- Daniel Holtkamp <holtkamp at riege dot com>
- Status: Partially coded in 1.37 -- much more to do. Assigned to
- Kern.
-
- What: The ability to copy, move, or archive data that is on a
- device to another device is very important.
-
- Why: An ISP might want to backup to disk, but after 30 days
- migrate the data to tape backup and delete it from
- disk. Bacula should be able to handle this
- automatically. It needs to know what was put where,
- and when, and what to migrate -- it is a bit like
- retention periods. Doing so would allow space to be
- freed up for current backups while maintaining older
- data on tape drives.
-
- Notes: Migration could be triggered by:
- Number of Jobs
- Number of Volumes
- Age of Jobs
- Highwater size (keep total size)
- Lowwater mark
-
-</pre>
-
-</td>
-</tr>
-
-</table>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
- <tr>
- <td class="contentTopic">
- The Free Software Foundation Europe License
- </td>
- </tr>
-
-
- <tr>
- <td class="content">
-
- The Bacula project has assigned its copyright to the Free Software Foundation
- Europe e.V. in a fiduciary relationship that permits the FSFE to
- safeguard the Bacula software against abuse while allowing the project
- to continue without the administrative burden of maintaining the
- copyright paper work.
- <p>
- If you contribute more than a few lines of code or documentation to the
- Bacula project, we ask you to complete the copyright Fiduciary License
- Agreement (link provided below). This is the same agreement that I (Kern)
- and the other developers have signed to transfer our copyrights to the
- FSFE.
- <p>
- Filling it out is really quite simple. Please make two copies,
- then put your name and mailing address on the first page and
- date it.
- <p>
- On the third page after "the author" put your name and the
- other information requested. This is simply to uniquely identify
- you.
- <p>
- If you are employed and you do Bacula work while at work
- or your employer has the rights to your work (often the case),
- please put your employer's information here.
- <p>
- On the fourth page, you can simply put "All code and documentation
- contributed to the Bacula.org project" or if you wish to be more
- specific please do so.
- <p>
- Thanks for taking the time to complete and send the FLA in.
- <p>
- <ul>
- <li> <a href="FLA-bacula.en.pdf" >PDF of FSFE Fiduciary License Agreement</a>
- </li>
- </ul>
- </td>
- <td class="content">
- <ul>
- </ul>
- </td>
- </tr>
-
-</table>
- <p>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic">
- Bacula® - The Network Backup Solution
- </td>
-</tr>
-<tr>
- <td class="content">
- <b>Bacula</b> is a set of computer programs that permit you
- (or the system administrator) to manage backup, recovery,
- and verification of computer data across a network of
- computers of different kinds.<br>
-
- <br>
- <b>Serious Bug</b> - All users should read <a href="?page=news">
- the news item</a> regarding a serious bug found in version 2.2.4 and
- fixed with a patch the 29th of Sept 2007. The patch is in all
- subsequent releases. Please subscribe to the
- <a href="?page=maillists">announce mailing list</a> to be kept informed.<br>
-
- <br>
- In technical terms, it is a <b>network based backup program</b>.<br>
-
- <br>
- Bacula is relatively easy to use and efficient, while
- offering many advanced storage management features that make
- it easy to find and recover lost or damaged files.<br>
-
- <br>
- Most of the <b>Bacula</b> source code is released under the
- <b>GPL</b> version 2 license. If you wish additional
- details, please follow the License link to your left.<br>
-
- <br>The Documentation link takes you to a page where you
- can access all the available Bacula documentation (HTML,
- PDF, and TGZ) both for the officially released version
- and for the current code under development in the Source
- Forge SVN. The development version of the manual typically has
- more documentation, but may also document new features that are
- not in the released version. The Developer's Guide
- presents important information for users who want to
- contribute to the Bacula project.<br>
-
- <br> Bacula is Hosted on
- SourceForge at <a href="http://sourceforge.net/projects/bacula">
- http://sourceforge.net/projects/bacula </a> where you can
- download the software.<br> <br> You may also use
- the links on the left side of this page for more
- information. In particular, Current Files link takes
- you to the currently available downloads, and the All
- Downloads link takes you to a list of all files ever
- released to SourceForge.
- </td>
-</tr>
-</table>
-
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic">
- Bacula Copyright, Trademark, and Licenses
- </td>
-</tr>
-<tr>
- <td class="content">
- There are a number of different licenses that are used in
- Bacula.
- <h3>GPL</h3>
- The vast bulk of the code is released under the
-
- <a href="rel-manual/gpl.html">GNU General Public License version 2.</a>
- Most of this code is copyrighted:
- Copyright (C) 2000-2007 Free Software Foundation Europe, e.V.
- <p>Portions may be copyrighted by other people (ATT, the
- Free Software Foundation, ...).
- <h3>LGPL</h3>
- Some of the Bacula library source code is released under the
- <a href="rel-manual/lesser.html">GNU Lesser General Public License.</a>
- This permits third parties to use these parts of our code in
- their proprietary programs to interface to Bacula.
- <h3>Public Domain</h3>
- Some of the Bacula code has been released to the public domain.
- E.g. md5.c, SQLite.
- <h3>Trademark</h3>
- Bacula<sup>®</sup>is a registered trademark of John
- Walker.
-
- <p>We have done this to ensure that any variant of Bacula will
- be exactly compatible with the program that we have released.
- The use of the name <b>Bacula</b> is restricted to software systems
- that agree exactly with the program presented here.
- </p>
- </td>
-</tr>
-</table>
-
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic">
- Professional Support for Bacula
- </td>
-</tr>
-<tr>
- <td class="content">
- The people listed are <b>independent contractors</b>.<br>
- We can't take responsibility for their actions when you hire them,
- but we would appreciate feedback positive or negative.<br>
- <br>
- Listing on the Bacula Professional page is offered as a
- <b>service</b>, <b>without</b> any guarantees.<br>
- <br>
- We reserve the right to decide with reason who is
- added/removed from the web page.<br>
- To be listed, you must have some tangible connection with and
- knowledge of Bacula (i.e. developer, contributed
- code/patches, Bacula user and subscribed to bacula-users, or
- bacula-devel, and preferably a Web site ...).<br>
- <br>
- People listed here agree to update their contact information
- on a regular basis.<br> Anyone listed with incorrect
- information is subject to removal.<br> <br> If you want to be
- listed on the page, please get in contact with Kern
- Sibbald.<br>
- </td>
-</tr>
-</table>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-
-<?
-?>
-
-<div class="login">
-<form action="/?page=login" method="post">
- <table cellpadding="5px" style="background: #749aba; color:white; border: 15px #002244 solid; padding: 15px" align="center">
- <tr>
- <td>User:</td>
- <td><input type="text" name="username" size="10" maxsize="10"></td>
- </tr>
- <tr>
- <td>Pass: </td>
- <td><input type="password" name="password" size="10" maxsize="10"></td>
- </tr>
- <tr>
- <td style="text-align: right" colspan="2"> <input style="border: 1px dotted white" type="submit" value="Login"> </td>
- </tr>
- </table>
-</form>
-</div>
-
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-
-<?
-?>
-
-<div class="login">
- <? session_destroy(); ?>
- <META HTTP-EQUIV=Refresh CONTENT="2; URL=/">
- You have officially been pimp^Wlogged out.
-</div>
-
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic">
- Email Lists
- </td>
-</tr>
-<tr>
- <td class="content">
-
-<b>Bacula</b> has a number of email lists which are described below with
-links to subscribe, unsubscribe, or modify your account.
-For general information subscribing to or unsubscribing from these lists, please see
-<a href="http://sourceforge.net/mail/?group_id=50727">Bacula Mailing Lists at SourceForge</a>.
-<p>For email archives see the bottom of this page.</p>
-
-Source Forge has rather strict email requirements in order to
-try to minimize the large quantity of spam that the lists receive every day.
-These are mesures that they have implemented, and over which we have no
-control.
-<p>
-If you are having problems subscribing or sending email to a Bacula list,
-please, read the following: <a href="http://sourceforge.net/docman/display_doc.php?docid=6695&group_id=1">
-SourceForge.net: Email Problems: Spam, Bounces, Unreceived Messages</a>, then
-if you are still having problems send a support request to Source Forge.
-Source Forge requires the person affected submit his/her own support request;
-the Bacula project is not permitted to do so on your behalf.
-<p>
-One item they do not mention in the above referenced document is grey listing.
-If you are using grey listing, you are likely to have problems with the Source
-Forge email lists. The solution is to whitelist their sending IPs. You might
-want to whitelist their whole zone (66.35.250.0/24) as I (Kern) have done, but
-if you are more conservative, I found only two of their IPs were sending email
-(66.35.250.225 and 66.35.250.206). If you grey list individual Source Forge
-IP addresses, please be sure to check your logs to verify the addresses they
-use for you.
-
-<h3>bacula-announce</h3>
-The <b>bacula-announce</b> list is a read only low volume list for those
-users who wish to be notified when there are important events
-(important bugs, new releases, ...). We recommend that all
-users subscribe to this list. Do so by following the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-announce">
-Bacula Announce List Subscription/Unsubscription/Modification</a>.
-Please do not send email directly to this list.
-
-<p>It is also possible to get email notification whenever a new package
-is released on SourceForge. This is accomplished by going to
-the <a href="http://sourceforge.net/projects/bacula">Bacula SourceForge
-Project</a> page and clicking on the little letter or mail icon
-<img src="images/mail16d.png" alt="" width="15" height="15"> under the heading <b>Monitor</b> in the
-row corresponding to the package you want to monitor.
-</p>
-
-<h3>bacula-users</h3>
-The <b>bacula-users</b> list is the general forum to
-ask questions about Bacula or respond to questions
-from other users. The volume on this list is generally
-moderate, but can vary. All users are encouraged to subscribe
-and to participate.
-Due to the increasing volume of spam, you must be subscribed
-before you can send email to this list.
-
-To subscribe follow the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-users">Bacula Users List Subscription/Unsubscription/Modification</a>.
-<p>
-To send an email to the Bacula Users List, use the following
-address: <b>bacula-users at lists.sourceforge.net</b>.
-The previous address was modified to prevent easy use by spammers. To use it,
-you must replace the <b>at</b> with an @ symbol.
-</p>
-
-<h3>bacula-devel</h3>
-The <b>bacula-devel</b> list is for those users who wish to
-communicate directly with the developers. The email volume
-is usually quite low (several emails per day), but can vary.
-Due to the increasing volume of spam, you must be subscribed
-before you can send email to this list.
-
-To subscribe, please follow this link:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-devel">
-Bacula Developers List Subscription/Unsubscription/Modification</a>.
-<p>
-To send an email to the Bacula Developers List, use the following
-address: <b>bacula-devel at lists.sourceforge.net</b>.
-The previous
-address was modified to prevent easy use by spammers. To use it,
-you must replace the <b>at</b> with an @ symbol.
-</p>
-
-<h3>bacula-bugs</h3>
-The <b>bacula-bugs</b> list is a read only
-list for those users who wish to be notified about new bugs
-registered at: <a href="http://bugs.bacula.org">
-http://bugs.bacula.org</a>. Please do not send email directly
-to this list bug file a bug report in the bugs database mentioned
-above. All email to this list other than from the bugs system itself
-is automatically discarded.
-
-To subscribe, follow follow the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-bugs">
-http://lists.sourceforge.net/lists/listinfo/bacula-bugs</a>.
-
-<h3>bacula-beta</h3>
-The <b>bacula-beta</b> list is a read only
-list for those packagers or users who wish to be notified
-when a new release is in preparation or is ready.
-This list is also used for discussions on running regression
-scripts.
-Due to the increasing volume of spam, you must be subscribed
-before you can send email to this list.
-
-To subscribe, follow follow the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-beta">
-http://lists.sourceforge.net/lists/listinfo/bacula-beta</a>.
-
-
-<h3>bacula-commits</h3>
-The <b>bacula-commits</b> list is a read only
-list for those users who wish to be receive a diff of each
-commit to the SVN. Please do not email directly to this list.
-If you do commits, please subscribe your Source Forge name to this
-list. Any mail from non-subscribed users is automatically discarded.
-
-You may subscribe by following the instructions at:
-<a href="http://lists.sourceforge.net/lists/listinfo/bacula-commits">
-http://lists.sourceforge.net/lists/listinfo/bacula-commits</a>.
-
-
-<h3>Archives</h3>
-Most of the above email lists are archived on Source Forge, but they are
-also archived on Gmane, which has better search facilities. The
-Gmane archives are at: <a href="http://news.gmane.org/search.php?match=bacula">
-http://news.gmane.org/search.php?match=bacula</a>.
-
-<p>
-The lists are also archived at
-<a href="http://marc.info/">Mailing list ARChives (MARC)</a>.
-<ul>
-<li><a href="http://marc.info/?l=bacula-announce&r=1&w=2">Announce</a></li>
-<li><a href="http://marc.info/?l=bacula-beta&r=1&w=2">BETA</a></li>
-<li><a href="http://marc.info/?l=bacula-bugs&r=1&w=2">Bugs</a></li>
-<li><a href="http://marc.info/?l=bacula-commits&r=1&w=2">Commits</a></li>
-<li><a href="http://marc.info/?l=bacula-devel&r=1&w=2">Devel</a></li>
-<li><a href="http://marc.info/?l=bacula-users&r=1&w=2">Users</a></li>
-</ul>
- </td>
-</tr>
-</table>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-
-<? require_once("inc/header.php"); ?>
-
-<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post">
-<input type="hidden" name="cmd" value="_xclick">
-<input type="hidden" name="business" value="projects@bacula.org">
-<input type="hidden" name="tax" value="0">
-<input type="hidden" name="bn" value="PP-DonationsBF">
-<input type="hidden" name="lc" value="US">
-<input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
-</form>
-
-<table>
-<tr>
- <td class="contentTopic">
- Contributing to the Bacula Project
- </td>
-</tr>
-<tr>
- <td class="content">
- Although one talks about Free Software, in fact, Open Software such
- as Bacula was not developed without some cost. The software
- may be free for the user, but it wasn't free for the developer
- or developers, either in terms of time or in terms of financial
- cost.
-
- For example, since beginning work on the Bacula project in
- January 2000 until now (August 2006), I (Kern) have spent
- approximately $8000 per year for computers, tape drives,
- communications expenses, electricity, software licenses, and
- other expenses. I am not complaining and am pleased to have
- been able to afford these expenditures. In addition, have no
- desire to have my past expenses reimbursed.
-
- Bacula is now a fairly mature product, and to ensure its long
- term survival, I believe it is time that Bacula begins to
- stand on its own, both financially and for the development,
- which is why we began accepting donations or project support
- in November 2005.
- <p>
- There are ways you can contribute to the Bacula
- project, some of which are: ideas, user support,
- documentation review, translation, programming and
- contributing code, testing the new releases, hosting
- services, testing machines, donating needed equipment, and
- financial support.
-
- Previously all but the last one (financial support) were possible.
- It is now possible for you to contribute financial aid
- the Bacula project. All funds collected will be used to help
- further the Bacula project by covering out of pocket expenses
- incurred by the project (no salaries). Examples are, administrative
- fees, hardware, software licenses (yes Micro$oft), and possibly a
- portion of travel/conference expenses.
-
- <p>
- Contributions may not be US tax deductible as Bacula is
- based in Switzerland.
- <p>
- If you are a government or for-profit corporation and cannot
- make "donations", please consider paying a (non-obligatory)
- binary license fee for any Bacula built binaries that you download.
- By making these pre-built, pre-tested binaries available, we are
- providing users who download them with an extra service, which merits
- careful consideration for making a contribution or paying a
- "license fee".
- <p>
- If you are a corporation and cannot make donations and don't want
- to pay a binary license fee, you can request an invoice for
- Bacula Project development. Please see below for how to do this.
-
- <p>
- To make a contribution, please click on the donate button at
- the top of the screen, and your transaction will be secured
- and confirmed directly by PayPal. If you contribute, or have
- any questions, please send me an email directly: kern at
- sibbald dot com.
-
- <p>
- If you need an invoice, I can send you one, but in order to limit my
- administrative work, I kindly request you to make a donation of at least
- $200 before requesting an invoice. To obtain one, simply email me the exact
- name to appear on the invoice as well as the mailing address, the amount
- you want to contribute, and the project you are supporting (or simply
- Bacula development).
-
- <p>
- The Bacula web site has a "Donations Received" page where
- you can have your company name, your name, and the amount (or any
- combination of those) listed. You must explicitly request to be listed.
- Do so by sending an email to: kern at sibbald dot com after you have
- made the payment.
-
- <p>Although there is one link to our ISP, who we thank for providing the
- hosting service, we do not provide any links to other sites other than
- on the Professional page.
-
-<p>
-</tr>
-
-</table>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-
-<table width="100%">
-<tr>
- <td class="contentTopic">
- News
- </td>
-</tr>
-</table>
-<table width="90%" align="center">
-<tr>
- <td class="content">
- <table class="news" style="width: 99%">
-<?
-
-$max_news = 5;
-$news_counter = 0;
-
-// read file into an array and revert that
-// revert cause array_pop always gets the last element
-//
-$file = "news.txt";
-$lines = array_reverse(file($file)) or
- die("No newsfile!");
-
-// as long as there are lines ...
-//
-while(count($lines) > 0 && $news_counter < $max_news) {
- // next line
- $line = array_pop($lines);
-
- // start of news
- if(eregi("^[a-z0-9]+;;;", $line)) {
- // news header
- list($author,$date,$time) = explode(";;;",$line);
-
- // news subject
- $subject = array_pop($lines);
- printf('<tr><td class="newsHeader">%s</td></tr>', $subject);
- printf('<tr><td class="newsContent"><pre class="newsContent">');
-
- continue;
- }
-
- // end of news
- if(eregi("^;;;", $line)) {
- printf('</pre></td></tr>');
- printf('<tr>');
- printf('<td class="newsFooter">%s - %s, %s</td>', $date, $time, $author);
- printf('</tr>');
- printf('<tr><td><img src="images/spacer.gif" width="1px" height="15px"></td></tr>');
- $news_counter++;
- continue;
- }
-
- // news content
- printf('%s', $line);
-}
-?>
- </table>
- </td>
-</tr>
-</table>
-<? require_once("inc/header.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
- <tr>
- <td class="contentTopic">
- Bacula Presentations
- </td>
- </tr>
-
- <tr>
- <td class="content">
- <ul>
- <li> <a href="presentations/Bacula-FOSDEM-talk-25Feb07.pdf" >PDF FOSDEM Slide Show</a>
- <br>Slide Show Presented at FOSDEM 2007<br></li>
- </ul>
- </td>
- <td class="content">
- <ul>
- </ul>
- </td>
- </tr>
-
-</table>
- <p>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
- <tr>
- <td class="contentTopic">
- Bacula 2.2.0 Press Information
- </td>
- </tr>
-
- <tr>
- <td class="content">
-
- <h3>Bacula 2.2.0 Press Information</h3>
- <ul>
- <li> <a href="about/press/presskit220.html.en" >Press Kit</a></li>
- <li> <a href="/rel-manual/Bacula_Freque_Asked_Questi.html" >Frequently Asked Questions</a></li>
- </ul>
-
- <h3>Press Kit in Other Languages</h3>
-
- <ul>
- <li> <a href="about/press/presskit220.html.en" >Catalan</a></li>
- <li> <a href="about/press/presskit200.html.fr" >French</a></li>
- <li> <a href="about/press/presskit200.html.de" >German</a></li>
- <li> <a href="about/press/presskit200.html.es" >Spanish</a></li>
- </ul>
- </td>
- </tr>
-
-</table>
- <p>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic">
- Professional Support for Bacula
- </td>
-</tr>
-<tr>
- <td class="content">
- The following people are independent contractors. Each has worked
- with Bacula, and we are pleased to list their names here as a service, but
- without any guarantees.<br>
- <br>
- Please read that short 'license' for further details: <a href="?page=listlic">Listing license</a><br>
- All names have been reviewed and approved. <br>
- <br>
- All email-addresses are extended with a 'NOSPAM'-tag, please remove it before sending an email.<br>
- </td>
-</tr>
-<tr>
- <td class="content">
- <table align="center">
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- Alixen
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:infoNOSPAM@alixen.fr">Gilles Polart-Donat</a><br>
- 20 rue Jean Rostand<br>
- 91400 Orsay, France<br>
- +33 01 60 19 72 31<br>
- <br>
- <a href="http://www.alixen.fr">http://www.alixen.fr</a>
- </td>
- </tr>
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- Arden Group Inc
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:rberryNOSPAM@ardengrp.com">Roger Berry</a><br>
- 5026 NE Clackamas<br>
- Portland, OR 97213 USA<br>
- +1(971)223-3987<br>
- <br>
- <a href="http://www.ardengrp.com">http://www.ardengrp.com</a><br>
- </td>
- </tr>
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- Axiom Networking
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:ajordanNOSPAM@draftathome.com">Angus Jordan</a><br>
- 9235 215th St, Langley BC, Canada<br>
- +1-604-888-6162<br>
- <br>
- We offer all types of IT related support services. Platform support: Linux,<br>
- Windows 2000/2003 etc. Lots of experience with Bacula, DBMail, Nagios,<br>
- Postfix, Qmail, qpopper, BIND (8/9), and MANY others.<br>
- <br>
- <a href="http://www.axiomnetworking.ca">http://www.axiomnetworking.ca</a><br>
- </td>
- </tr>
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- Bayer Technology Group
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:jbayerNOSPAM@BayerTechnologyGroup.com"> Jonathan B Bayer</a><br>
- Bayer Technology Group, 23 Exeter Rd., East Windsor, NJ 08520 USA<br>
- +1 (609) 632-1200<br>
- +1 (609) 658-9408 (mobile)<br>
- <br>
- Our focus is on assisting and providing high
- quality IT services to individuals, small businesses and
- organizations with computer and information technology needs,
- but who often don't need or have a budget for a full time IT
- staff. We specialize in Desktop systems, Local Area Network
- (LAN), Internet, Computer Systems Security and Disaster
- Recovery Planning and Implementation using Microsoft and
- Linux based solutions. <br> <br> <a
- href="http://www.BayerTechnologyGroup.com">http://www.BayerTechnologyGroup.com</a><br>
- </td>
- </tr>
-
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- BSDCan
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:danNOSPAM@langille.org">Dan Langille</a><br>
- Suite 474<br>
- 900 Greenbank Road<br>
- Ottawa, ON K2J 4P6<br>
- +1 215 882 0565<br>
- <br>
- Dan has been a Bacula developer since early 2004 when he wrote
- the PostgreSQL plugin. He is also the Bacula maintainer for
- FreeBSD and has been writing and speaking about Bacula for
- several years. As a consultant, his Bacula speciality is
- design, installation, and configuration of new systems. He is
- available for consulting on any project.
-
- <br>
- Reference available upon request.
-
- <br>
- <a href="http://www.langille.org/">http://www.langille.org/</a>
- </td>
- </tr>
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- dass IT GmbH
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:infoNSPAM@dass-it.de">dass IT GmbH</a><br>
- Händelstraße 25-29<br>
- 50674 Köln<br>
- Germany<br>
- Tel: +49 221 35 65 666 - 0<br>
- Fax: +49 221 35 65 666 - 10<br>
- <br>
- dass IT provides professional services and
- support using mainly open source tools. Our
- focus lies on system management for a large
- number of systems (servers and desktops). We
- provide services and solutions mainly for Linux
- based IT infrastructures.
- <br>
- <a href="http://www.dass-it.de/">http://www.dass-it.de/</a>
- </td>
- </tr>
-
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- Heitor Faria
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:heitorfariaNOSPAM@hotmail.com">Heitor Faria</a><br>
- Consultoria em Software Libre (Brazil)<br>
- <br>
- Telephone +55 71 9196-5270<br>
- <br>
- <br>
- Bacula training, installation and support.
- <br>
- </td>
- </tr>
-
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- HEXONET Support GmbH
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:infoNOSPAM@hexonet.com">Hexonet</a><br>
- Alexander Biehl<br>
- Talstrasse 27<br>
- 66424 Homburg<br>
- Germany
- <br>
- Tel: +49 6841 95961-70<br>
- Fax: +49 6841 95961-79<br>
- <br>
- HEXONET Support GmbH provides professional IT services and support. We
- are specialized in OpenSource products.
- <br>
- <a href="http://www.hexonet.com">http://www.hexonet.com</a><br>
- </td>
- </tr>
-
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- Instant Root HB
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:infoNOSPAM@instant-root.com">Info-Mail</a><br>
- Box 1823 <br>
- SE-58117 Linköping, Sweden<br>
- <br>
- Instant Root HB is a company specialized in Unix systems administration, network
- design and implementation, as well as education in various computer-related fields.<br>
- <br>
- <a href="http://www.instant-root.com">http://www.instant-root.com</a><br>
- </td>
- </tr>
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- IT-Service Lehmann
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:infoNOSPAM@its-lehmann.de">Arno Lehmann</a><br>
- Sandstr. 6<br>
- 49080 Osnabrück</br>
- Germany<br>
- +49 (0) 541 5803396<br>
- +49 (0) 160 92008971 (mobile)<br>
- <br>
- Storage, Communication, Backup and Monitoring using
- Open-Source solutions. Services from
- network design to system administration and
- user education, with a focus on Small
- Businesses looking for cost-effective solutions.
- <br>
- <a href="http://www.its-lehmann.de">http://www.its-lehmann.de</a>
- </td>
- </td>
- </tr>
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- KDB Konsult AB
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:matsNOSPAM@kdb.se">Mats Vilhelmsson</a><br>
- Tel: +46 708 901042<br>
- <br>
- Backup hosting - Internet backups, Bacula training, installations and support.<br>
- <br>
- <a href="http://www.kdb.se">http://www.kdb.se</a><br>
- </td>
- </tr>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- L. Strappazon
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:l.strappazonNOSPAM@free.fre">Ludovic Strappazon</a><br>
- Strasbourg, France<br>
- +33 685 27 93 39<br>
- <br>
- I offer engineering services and training around storage and Backup.
- Planning and scaling of your hardware installation, Bacula implementation.
- </td>
- </tr>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- MATRIX-Computer
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- MATRIX-Computer GmbH<br>
- Dachauer Str. 44<br>
- 80335 München<br>
- Germany<br>
-
- +49-89-922 996 80<br>
- <br>
- We are a team of software developers with experience in C++, Windows, PHP,
- Linux and more. We have done lots of the Think Tools software.<br>
- <br>
- <a href="http://www.matrix-computer.com">http://www.matrix-computer.com</a><br>
- </td>
- </tr>
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- NETWAYS GmbH
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:infoNOSPAM@netways.de">NETWAYS GmbH</a><br>
- Deutschherrnstrasse 47a<br>
- 90429 Nürnberg<br>
- Germany<br>
- <br>
- Telephone +49 911 92885-0<br>
- Fax +49 911 92885-77<br>
- <br>
- <br>
- We support our customers managing complex and
- heterogeneous networks. Our services and
- solutions, based on Open Source software, help
- you run your servers and applications
- failure-free. Special focus on Nagios, Bacula,
- Request Tracker, and cluster solutions. <br>
- <br>
- <a href="http://www.netways.de">http://www.netways.de</a><br>
- </td>
- </tr>
-
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- raptus ag
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:infoNOSPAM@raptus.com">raptus ag</a><br>
- moderne kommunikation<br>
- burgweg 1<br>
- 2563 ipsach -- switzerland<br>
- <br>
- Telephone +41 (0)32 332 9200<br>
- Fax +41 (0)32 332 9201<br>
- <br>
- <br>
- Modern communications, Internet projects and IT services since 1996!
- Specialized in heterogeneous networks (linux, mac, windows) and open
- source solutions.<br>
- <br>
- <a href="http://www.raptus.com">http://www.raptus.com</a><br>
- </td>
- </tr>
-
-
-
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- Sine Nomine Associates
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:infoNOSPAM@sinenomine.net">Services Sales Dept.</a><br>
- US:<br>
- 43596 Blacksmith Square <br>
- Ashburn, VA 20147 USA <br>
- +1 703 723 6673<br>
- <br>
- EMEA:<br>
- Na Dvorcich 17/Na Vrasni 18<br>
- CZ - Praha 4, 14000 <br>
- Czech Republic<br>
- <br>
- Design and implementation of system management tools and infrastructure,<br>
- from small systems to enterprise-wide implementations on global scale.<br>
- Special focus on Bacula for enterprise-class systems and mainframe.<br>
- <br>
- <a href="http://www.sinenomine.net">http://www.sinenomine.net</a><br>
- </td>
- </tr>
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- Thinxsolutions
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:infoNOSPAM@thinxsolutions.com">
- Müller, Bender, Guth GbR</a><br>
- Maarweg 139 <br>
- 50825 Cologne, Germany <br>
- <br>
- +49 221 35503530<br>
- <br>
- We implement and manage corporate networks for our customers
- and offer consulting and professional support for various open source
- software solutions.<br>
- <br>
- <a href="http://www.thinxsolutions.com">http://www.thinxsolutions.com</a><br>
- </td>
- </tr>
-
-
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr>
- <td style="font-weight: bold">
- WinFix.IT
- </td>
- <td><img src="images/spacer.gif" width="50px" height="1px"></td>
- <td>
- <a href="mailto:JoNOSPAM@WinFix.IT">Jo at WinFix.IT</a><br>
- <br>
- In and around Leuven and Brussels (Belgium)
- <br>
- +32 (0)478-33 76 27<br>
- <br>
- Set up of SAMBA File and Print servers/domain controllers, mail
- servers (Postfix) with spam/virus killers
- (Spamassassin/Amavis/Clamav/BitDefender)
- and backup (with Bacula of course). Network monitoring with Nagios.
- <br>
- <br>
- <a href="http://www.WinFix.IT">http://www.WinFix.IT</a><br>
- </td>
- </tr>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
- <tr> <td colspan="3"><hr></td>
- <tr> <td colspan="3"><img src="images/spacer.gif" width="50px" height="25px"></td> </tr>
-
-
- </table>
- </td>
-</tr>
-</table>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-</tr>
-<tr>
- <td class="content">
-
-<pre>
-
-
-
-Projects:
- Bacula Projects Roadmap
- Status updated 7 July 2007
- After re-ordering in vote priority
-
-Items Completed:
-Item: 2 Implement a Bacula GUI/management tool.
-Item: 18 Quick release of FD-SD connection after backup.
-Item: 23 Implement from-client and to-client on restore command line.
-Item: 25 Implement huge exclude list support using dlist
-Item: 41 Enable to relocate files and directories when restoring
-Item: 42 Batch attribute inserts (ten times faster)
-Item: 43 More concurrency in SD using micro-locking
-Item: 44 Performance enhancements (POSIX/Win32 OS file access hints).
-Item: 40 Include JobID in spool file name
-
-Summary:
-Item: 1 Accurate restoration of renamed/deleted files
-Item: 2* Implement a Bacula GUI/management tool.
-Item: 3 Allow FD to initiate a backup
-Item: 4 Merge multiple backups (Synthetic Backup or Consolidation).
-Item: 5 Deletion of Disk-Based Bacula Volumes
-Item: 6 Implement Base jobs.
-Item: 7 Implement creation and maintenance of copy pools
-Item: 8 Directive/mode to backup only file changes, not entire file
-Item: 9 Implement a server-side compression feature
-Item: 10 Improve Bacula's tape and drive usage and cleaning management.
-Item: 11 Allow skipping execution of Jobs
-Item: 12 Add a scheduling syntax that permits weekly rotations
-Item: 13 Archival (removal) of User Files to Tape
-Item: 14 Cause daemons to use a specific IP address to source communications
-Item: 15 Multiple threads in file daemon for the same job
-Item: 16 Add Plug-ins to the FileSet Include statements.
-Item: 17 Restore only file attributes (permissions, ACL, owner, group...)
-Item: 18* Quick release of FD-SD connection after backup.
-Item: 19 Implement a Python interface to the Bacula catalog.
-Item: 20 Archive data
-Item: 21 Split documentation
-Item: 22 Implement support for stacking arbitrary stream filters, sinks.
-Item: 23* Implement from-client and to-client on restore command line.
-Item: 24 Add an override in Schedule for Pools based on backup types.
-Item: 25* Implement huge exclude list support using hashing.
-Item: 26 Implement more Python events in Bacula.
-Item: 27 Incorporation of XACML2/SAML2 parsing
-Item: 28 Filesystem watch triggered backup.
-Item: 29 Allow inclusion/exclusion of files in a fileset by creation/mod times
-Item: 30 Tray monitor window cleanups
-Item: 31 Implement multiple numeric backup levels as supported by dump
-Item: 32 Automatic promotion of backup levels
-Item: 33 Clustered file-daemons
-Item: 34 Commercial database support
-Item: 35 Automatic disabling of devices
-Item: 36 An option to operate on all pools with update vol parameters
-Item: 37 Add an item to the restore option where you can select a pool
-Item: 38 Include timestamp of job launch in "stat clients" output
-Item: 39 Message mailing based on backup types
-Item: 40* Include JobID in spool file name
-Item: 41* Enable to relocate files and directories when restoring
-Item: 42* Batch attribute inserts (ten times faster)
-Item: 43* More concurrency in SD using micro-locking
-Item: 44* Performance enhancements (POSIX/Win32 OS file access hints).
-
-Item 1: Accurate restoration of renamed/deleted files
- Date: 28 November 2005
- Origin: Martin Simmons (martin at lispworks dot com)
- Status: Robert Nelson will implement this
-
- What: When restoring a fileset for a specified date (including "most
- recent"), Bacula should give you exactly the files and directories
- that existed at the time of the last backup prior to that date.
-
- Currently this only works if the last backup was a Full backup.
- When the last backup was Incremental/Differential, files and
- directories that have been renamed or deleted since the last Full
- backup are not currently restored correctly. Ditto for files with
- extra/fewer hard links than at the time of the last Full backup.
-
- Why: Incremental/Differential would be much more useful if this worked.
-
- Notes: Merging of multiple backups into a single one seems to
- rely on this working, otherwise the merged backups will not be
- truly equivalent to a Full backup.
-
- Kern: notes shortened. This can be done without the need for
- inodes. It is essentially the same as the current Verify job,
- but one additional database record must be written, which does
- not need any database change.
-
- Kern: see if we can correct restoration of directories if
- replace=ifnewer is set. Currently, if the directory does not
- exist, a "dummy" directory is created, then when all the files
- are updated, the dummy directory is newer so the real values
- are not updated.
-
-Item 2: Implement a Bacula GUI/management tool.
- Origin: Kern
- Date: 28 October 2005
- Status: In progress
-
- What: Implement a Bacula console, and management tools
- probably using Qt3 and C++.
-
- Why: Don't we already have a wxWidgets GUI? Yes, but
- it is written in C++ and changes to the user interface
- must be hand tailored using C++ code. By developing
- the user interface using Qt designer, the interface
- can be very easily updated and most of the new Python
- code will be automatically created. The user interface
- changes become very simple, and only the new features
- must be implement. In addition, the code will be in
- Python, which will give many more users easy (or easier)
- access to making additions or modifications.
-
- Notes: There is a partial Python-GTK implementation
- Lucas Di Pentima <lucas at lunix dot com dot ar> but
- it is no longer being developed.
-
-Item 3: Allow FD to initiate a backup
- Origin: Frank Volf (frank at deze dot org)
- Date: 17 November 2005
- Status:
-
- What: Provide some means, possibly by a restricted console that
- allows a FD to initiate a backup, and that uses the connection
- established by the FD to the Director for the backup so that
- a Director that is firewalled can do the backup.
-
- Why: Makes backup of laptops much easier.
-
-
-Item 4: Merge multiple backups (Synthetic Backup or Consolidation).
- Origin: Marc Cousin and Eric Bollengier
- Date: 15 November 2005
- Status: Waiting implementation. Depends on first implementing
- project Item 2 (Migration) which is now done.
-
- What: A merged backup is a backup made without connecting to the Client.
- It would be a Merge of existing backups into a single backup.
- In effect, it is like a restore but to the backup medium.
-
- For instance, say that last Sunday we made a full backup. Then
- all week long, we created incremental backups, in order to do
- them fast. Now comes Sunday again, and we need another full.
- The merged backup makes it possible to do instead an incremental
- backup (during the night for instance), and then create a merged
- backup during the day, by using the full and incrementals from
- the week. The merged backup will be exactly like a full made
- Sunday night on the tape, but the production interruption on the
- Client will be minimal, as the Client will only have to send
- incrementals.
-
- In fact, if it's done correctly, you could merge all the
- Incrementals into single Incremental, or all the Incrementals
- and the last Differential into a new Differential, or the Full,
- last differential and all the Incrementals into a new Full
- backup. And there is no need to involve the Client.
-
- Why: The benefit is that :
- - the Client just does an incremental ;
- - the merged backup on tape is just as a single full backup,
- and can be restored very fast.
-
- This is also a way of reducing the backup data since the old
- data can then be pruned (or not) from the catalog, possibly
- allowing older volumes to be recycled
-
-Item 5: Deletion of Disk-Based Bacula Volumes
- Date: Nov 25, 2005
- Origin: Ross Boylan <RossBoylan at stanfordalumni dot org> (edited
- by Kern)
- Status:
-
- What: Provide a way for Bacula to automatically remove Volumes
- from the filesystem, or optionally to truncate them.
- Obviously, the Volume must be pruned prior removal.
-
- Why: This would allow users more control over their Volumes and
- prevent disk based volumes from consuming too much space.
-
- Notes: The following two directives might do the trick:
-
- Volume Data Retention = <time period>
- Remove Volume After = <time period>
-
- The migration project should also remove a Volume that is
- migrated. This might also work for tape Volumes.
-
-Item 6: Implement Base jobs.
- Date: 28 October 2005
- Origin: Kern
- Status:
-
- What: A base job is sort of like a Full save except that you
- will want the FileSet to contain only files that are
- unlikely to change in the future (i.e. a snapshot of
- most of your system after installing it). After the
- base job has been run, when you are doing a Full save,
- you specify one or more Base jobs to be used. All
- files that have been backed up in the Base job/jobs but
- not modified will then be excluded from the backup.
- During a restore, the Base jobs will be automatically
- pulled in where necessary.
-
- Why: This is something none of the competition does, as far as
- we know (except perhaps BackupPC, which is a Perl program that
- saves to disk only). It is big win for the user, it
- makes Bacula stand out as offering a unique
- optimization that immediately saves time and money.
- Basically, imagine that you have 100 nearly identical
- Windows or Linux machine containing the OS and user
- files. Now for the OS part, a Base job will be backed
- up once, and rather than making 100 copies of the OS,
- there will be only one. If one or more of the systems
- have some files updated, no problem, they will be
- automatically restored.
-
- Notes: Huge savings in tape usage even for a single machine.
- Will require more resources because the DIR must send
- FD a list of files/attribs, and the FD must search the
- list and compare it for each file to be saved.
-
-Item 7: Implement creation and maintenance of copy pools
- Date: 27 November 2005
- Origin: David Boyes (dboyes at sinenomine dot net)
- Status:
-
- What: I would like Bacula to have the capability to write copies
- of backed-up data on multiple physical volumes selected
- from different pools without transferring the data
- multiple times, and to accept any of the copy volumes
- as valid for restore.
-
- Why: In many cases, businesses are required to keep offsite
- copies of backup volumes, or just wish for simple
- protection against a human operator dropping a storage
- volume and damaging it. The ability to generate multiple
- volumes in the course of a single backup job allows
- customers to simple check out one copy and send it
- offsite, marking it as out of changer or otherwise
- unavailable. Currently, the library and magazine
- management capability in Bacula does not make this process
- simple.
-
- Restores would use the copy of the data on the first
- available volume, in order of copy pool chain definition.
-
- This is also a major scalability issue -- as the number of
- clients increases beyond several thousand, and the volume
- of data increases, transferring the data multiple times to
- produce additional copies of the backups will become
- physically impossible due to transfer speed
- issues. Generating multiple copies at server side will
- become the only practical option.
-
- How: I suspect that this will require adding a multiplexing
- SD that appears to be a SD to a specific FD, but 1-n FDs
- to the specific back end SDs managing the primary and copy
- pools. Storage pools will also need to acquire parameters
- to define the pools to be used for copies.
-
- Notes: I would commit some of my developers' time if we can agree
- on the design and behavior.
-
-Item 8: Directive/mode to backup only file changes, not entire file
- Date: 11 November 2005
- Origin: Joshua Kugler <joshua dot kugler at uaf dot edu>
- Marek Bajon <mbajon at bimsplus dot com dot pl>
- Status:
-
- What: Currently when a file changes, the entire file will be backed up in
- the next incremental or full backup. To save space on the tapes
- it would be nice to have a mode whereby only the changes to the
- file would be backed up when it is changed.
-
- Why: This would save lots of space when backing up large files such as
- logs, mbox files, Outlook PST files and the like.
-
- Notes: This would require the usage of disk-based volumes as comparing
- files would not be feasible using a tape drive.
-
-Item 9: Implement a server-side compression feature
- Date: 18 December 2006
- Origin: Vadim A. Umanski , e-mail umanski@ext.ru
- Status:
- What: The ability to compress backup data on server receiving data
- instead of doing that on client sending data.
- Why: The need is practical. I've got some machines that can send
- data to the network 4 or 5 times faster than compressing
- them (I've measured that). They're using fast enough SCSI/FC
- disk subsystems but rather slow CPUs (ex. UltraSPARC II).
- And the backup server has got a quite fast CPUs (ex. Dual P4
- Xeons) and quite a low load. When you have 20, 50 or 100 GB
- of raw data - running a job 4 to 5 times faster - that
- really matters. On the other hand, the data can be
- compressed 50% or better - so losing twice more space for
- disk backup is not good at all. And the network is all mine
- (I have a dedicated management/provisioning network) and I
- can get as high bandwidth as I need - 100Mbps, 1000Mbps...
- That's why the server-side compression feature is needed!
- Notes:
-
-Item 10: Improve Bacula's tape and drive usage and cleaning management.
- Date: 8 November 2005, November 11, 2005
- Origin: Adam Thornton <athornton at sinenomine dot net>,
- Arno Lehmann <al at its-lehmann dot de>
- Status:
-
- What: Make Bacula manage tape life cycle information, tape reuse
- times and drive cleaning cycles.
-
- Why: All three parts of this project are important when operating
- backups.
- We need to know which tapes need replacement, and we need to
- make sure the drives are cleaned when necessary. While many
- tape libraries and even autoloaders can handle all this
- automatically, support by Bacula can be helpful for smaller
- (older) libraries and single drives. Limiting the number of
- times a tape is used might prevent tape errors when using
- tapes until the drives can't read it any more. Also, checking
- drive status during operation can prevent some failures (as I
- [Arno] had to learn the hard way...)
-
- Notes: First, Bacula could (and even does, to some limited extent)
- record tape and drive usage. For tapes, the number of mounts,
- the amount of data, and the time the tape has actually been
- running could be recorded. Data fields for Read and Write
- time and Number of mounts already exist in the catalog (I'm
- not sure if VolBytes is the sum of all bytes ever written to
- that volume by Bacula). This information can be important
- when determining which media to replace. The ability to mark
- Volumes as "used up" after a given number of write cycles
- should also be implemented so that a tape is never actually
- worn out. For the tape drives known to Bacula, similar
- information is interesting to determine the device status and
- expected life time: Time it's been Reading and Writing, number
- of tape Loads / Unloads / Errors. This information is not yet
- recorded as far as I [Arno] know. A new volume status would
- be necessary for the new state, like "Used up" or "Worn out".
- Volumes with this state could be used for restores, but not
- for writing. These volumes should be migrated first (assuming
- migration is implemented) and, once they are no longer needed,
- could be moved to a Trash pool.
-
- The next step would be to implement a drive cleaning setup.
- Bacula already has knowledge about cleaning tapes. Once it
- has some information about cleaning cycles (measured in drive
- run time, number of tapes used, or calender days, for example)
- it can automatically execute tape cleaning (with an
- autochanger, obviously) or ask for operator assistance loading
- a cleaning tape.
-
- The final step would be to implement TAPEALERT checks not only
- when changing tapes and only sending the information to the
- administrator, but rather checking after each tape error,
- checking on a regular basis (for example after each tape
- file), and also before unloading and after loading a new tape.
- Then, depending on the drives TAPEALERT state and the known
- drive cleaning state Bacula could automatically schedule later
- cleaning, clean immediately, or inform the operator.
-
- Implementing this would perhaps require another catalog change
- and perhaps major changes in SD code and the DIR-SD protocol,
- so I'd only consider this worth implementing if it would
- actually be used or even needed by many people.
-
- Implementation of these projects could happen in three distinct
- sub-projects: Measuring Tape and Drive usage, retiring
- volumes, and handling drive cleaning and TAPEALERTs.
-
-Item 11: Allow skipping execution of Jobs
- Date: 29 November 2005
- Origin: Florian Schnabel <florian.schnabel at docufy dot de>
- Status:
-
- What: An easy option to skip a certain job on a certain date.
- Why: You could then easily skip tape backups on holidays. Especially
- if you got no autochanger and can only fit one backup on a tape
- that would be really handy, other jobs could proceed normally
- and you won't get errors that way.
-
-Item 12: Add a scheduling syntax that permits weekly rotations
- Date: 15 December 2006
- Origin: Gregory Brauer (greg at wildbrain dot com)
- Status:
-
- What: Currently, Bacula only understands how to deal with weeks of the
- month or weeks of the year in schedules. This makes it impossible
- to do a true weekly rotation of tapes. There will always be a
- discontinuity that will require disruptive manual intervention at
- least monthly or yearly because week boundaries never align with
- month or year boundaries.
-
- A solution would be to add a new syntax that defines (at least)
- a start timestamp, and repetition period.
-
- Why: Rotated backups done at weekly intervals are useful, and Bacula
- cannot currently do them without extensive hacking.
-
- Notes: Here is an example syntax showing a 3-week rotation where full
- Backups would be performed every week on Saturday, and an
- incremental would be performed every week on Tuesday. Each
- set of tapes could be removed from the loader for the following
- two cycles before coming back and being reused on the third
- week. Since the execution times are determined by intervals
- from a given point in time, there will never be any issues with
- having to adjust to any sort of arbitrary time boundary. In
- the example provided, I even define the starting schedule
- as crossing both a year and a month boundary, but the run times
- would be based on the "Repeat" value and would therefore happen
- weekly as desired.
-
-
- Schedule {
- Name = "Week 1 Rotation"
- #Saturday. Would run Dec 30, Jan 20, Feb 10, etc.
- Run {
- Options {
- Type = Full
- Start = 2006-12-30 01:00
- Repeat = 3w
- }
- }
- #Tuesday. Would run Jan 2, Jan 23, Feb 13, etc.
- Run {
- Options {
- Type = Incremental
- Start = 2007-01-02 01:00
- Repeat = 3w
- }
- }
- }
-
- Schedule {
- Name = "Week 2 Rotation"
- #Saturday. Would run Jan 6, Jan 27, Feb 17, etc.
- Run {
- Options {
- Type = Full
- Start = 2007-01-06 01:00
- Repeat = 3w
- }
- }
- #Tuesday. Would run Jan 9, Jan 30, Feb 20, etc.
- Run {
- Options {
- Type = Incremental
- Start = 2007-01-09 01:00
- Repeat = 3w
- }
- }
- }
-
- Schedule {
- Name = "Week 3 Rotation"
- #Saturday. Would run Jan 13, Feb 3, Feb 24, etc.
- Run {
- Options {
- Type = Full
- Start = 2007-01-13 01:00
- Repeat = 3w
- }
- }
- #Tuesday. Would run Jan 16, Feb 6, Feb 27, etc.
- Run {
- Options {
- Type = Incremental
- Start = 2007-01-16 01:00
- Repeat = 3w
- }
- }
- }
-
-Item 13: Archival (removal) of User Files to Tape
- Date: Nov. 24/2005
- Origin: Ray Pengelly [ray at biomed dot queensu dot ca
- Status:
-
- What: The ability to archive data to storage based on certain parameters
- such as age, size, or location. Once the data has been written to
- storage and logged it is then pruned from the originating
- filesystem. Note! We are talking about user's files and not
- Bacula Volumes.
-
- Why: This would allow fully automatic storage management which becomes
- useful for large datastores. It would also allow for auto-staging
- from one media type to another.
-
- Example 1) Medical imaging needs to store large amounts of data.
- They decide to keep data on their servers for 6 months and then put
- it away for long term storage. The server then finds all files
- older than 6 months writes them to tape. The files are then removed
- from the server.
-
- Example 2) All data that hasn't been accessed in 2 months could be
- moved from high-cost, fibre-channel disk storage to a low-cost
- large-capacity SATA disk storage pool which doesn't have as quick of
- access time. Then after another 6 months (or possibly as one
- storage pool gets full) data is migrated to Tape.
-
-Item 14: Cause daemons to use a specific IP address to source communications
- Origin: Bill Moran <wmoran@collaborativefusion.com>
- Date: 18 Dec 2006
- Status:
- What: Cause Bacula daemons (dir, fd, sd) to always use the ip address
- specified in the [DIR|DF|SD]Addr directive as the source IP
- for initiating communication.
- Why: On complex networks, as well as extremely secure networks, it's
- not unusual to have multiple possible routes through the network.
- Often, each of these routes is secured by different policies
- (effectively, firewalls allow or deny different traffic depending
- on the source address)
- Unfortunately, it can sometimes be difficult or impossible to
- represent this in a system routing table, as the result is
- excessive subnetting that quickly exhausts available IP space.
- The best available workaround is to provide multiple IPs to
- a single machine that are all on the same subnet. In order
- for this to work properly, applications must support the ability
- to bind outgoing connections to a specified address, otherwise
- the operating system will always choose the first IP that
- matches the required route.
- Notes: Many other programs support this. For example, the following
- can be configured in BIND:
- query-source address 10.0.0.1;
- transfer-source 10.0.0.2;
- Which means queries from this server will always come from
- 10.0.0.1 and zone transfers will always originate from
- 10.0.0.2.
-
-Item 15: Multiple threads in file daemon for the same job
- Date: 27 November 2005
- Origin: Ove Risberg (Ove.Risberg at octocode dot com)
- Status:
-
- What: I want the file daemon to start multiple threads for a backup
- job so the fastest possible backup can be made.
-
- The file daemon could parse the FileSet information and start
- one thread for each File entry located on a separate
- filesystem.
-
- A confiuration option in the job section should be used to
- enable or disable this feature. The confgutration option could
- specify the maximum number of threads in the file daemon.
-
- If the theads could spool the data to separate spool files
- the restore process will not be much slower.
-
- Why: Multiple concurrent backups of a large fileserver with many
- disks and controllers will be much faster.
-
-Item 16: Add Plug-ins to the FileSet Include statements.
- Date: 28 October 2005
- Origin:
- Status: Partially coded in 1.37 -- much more to do.
-
- What: Allow users to specify wild-card and/or regular
- expressions to be matched in both the Include and
- Exclude directives in a FileSet. At the same time,
- allow users to define plug-ins to be called (based on
- regular expression/wild-card matching).
-
- Why: This would give the users the ultimate ability to control
- how files are backed up/restored. A user could write a
- plug-in knows how to backup his Oracle database without
- stopping/starting it, for example.
-
-Item 17: Restore only file attributes (permissions, ACL, owner, group...)
- Origin: Eric Bollengier
- Date: 30/12/2006
- Status:
-
- What: The goal of this project is to be able to restore only rights
- and attributes of files without crushing them.
-
- Why: Who have never had to repair a chmod -R 777, or a wild update
- of recursive right under Windows? At this time, you must have
- enough space to restore data, dump attributes (easy with acl,
- more complex with unix/windows rights) and apply them to your
- broken tree. With this options, it will be very easy to compare
- right or ACL over the time.
-
- Notes: If the file is here, we skip restore and we change rights.
- If the file isn't here, we can create an empty one and apply
- rights or do nothing.
-
-Item 18: Quick release of FD-SD connection after backup.
- Origin: Frank Volf (frank at deze dot org)
- Date: 17 November 2005
- Status: Done -- implemented by Kern -- in CVS 26Jan07
-
- What: In the Bacula implementation a backup is finished after all data
- and attributes are successfully written to storage. When using a
- tape backup it is very annoying that a backup can take a day,
- simply because the current tape (or whatever) is full and the
- administrator has not put a new one in. During that time the
- system cannot be taken off-line, because there is still an open
- session between the storage daemon and the file daemon on the
- client.
-
- Although this is a very good strategy for making "safe backups"
- This can be annoying for e.g. laptops, that must remain
- connected until the backup is completed.
-
- Using a new feature called "migration" it will be possible to
- spool first to harddisk (using a special 'spool' migration
- scheme) and then migrate the backup to tape.
-
- There is still the problem of getting the attributes committed.
- If it takes a very long time to do, with the current code, the
- job has not terminated, and the File daemon is not freed up. The
- Storage daemon should release the File daemon as soon as all the
- file data and all the attributes have been sent to it (the SD).
- Currently the SD waits until everything is on tape and all the
- attributes are transmitted to the Director before signaling
- completion to the FD. I don't think I would have any problem
- changing this. The reason is that even if the FD reports back to
- the Dir that all is OK, the job will not terminate until the SD
- has done the same thing -- so in a way keeping the SD-FD link
- open to the very end is not really very productive ...
-
- Why: Makes backup of laptops much faster.
-
-Item 19: Implement a Python interface to the Bacula catalog.
- Date: 28 October 2005
- Origin: Kern
- Status:
-
- What: Implement an interface for Python scripts to access
- the catalog through Bacula.
-
- Why: This will permit users to customize Bacula through
- Python scripts.
-
-Item 20: Archive data
- Date: 15/5/2006
- Origin: calvin streeting calvin at absentdream dot com
- Status:
-
- What: The abilty to archive to media (dvd/cd) in a uncompressed format
- for dead filing (archiving not backing up)
-
- Why: At my works when jobs are finished and moved off of the main file
- servers (raid based systems) onto a simple linux file server (ide based
- system) so users can find old information without contacting the IT
- dept.
-
- So this data dosn't realy change it only gets added to,
- But it also needs backing up. At the moment it takes
- about 8 hours to back up our servers (working data) so
- rather than add more time to existing backups i am trying
- to implement a system where we backup the acrhive data to
- cd/dvd these disks would only need to be appended to
- (burn only new/changed files to new disks for off site
- storage). basialy understand the differnce between
- achive data and live data.
-
- Notes: Scan the data and email me when it needs burning divide
- into predifind chunks keep a recored of what is on what
- disk make me a label (simple php->mysql=>pdf stuff) i
- could do this bit ability to save data uncompresed so
- it can be read in any other system (future proof data)
- save the catalog with the disk as some kind of menu
- system
-
-Item 21: Split documentation
- Origin: Maxx <maxxatworkat gmail dot com>
- Date: 27th July 2006
- Status:
-
- What: Split documentation in several books
-
- Why: Bacula manual has now more than 600 pages, and looking for
- implementation details is getting complicated. I think
- it would be good to split the single volume in two or
- maybe three parts:
-
- 1) Introduction, requirements and tutorial, typically
- are useful only until first installation time
-
- 2) Basic installation and configuration, with all the
- gory details about the directives supported 3)
- Advanced Bacula: testing, troubleshooting, GUI and
- ancillary programs, security managements, scripting,
- etc.
-
-
-Item 22: Implement support for stacking arbitrary stream filters, sinks.
-Date: 23 November 2006
-Origin: Landon Fuller <landonf@threerings.net>
-Status: Planning. Assigned to landonf.
-
- What: Implement support for the following:
- - Stacking arbitrary stream filters (eg, encryption, compression,
- sparse data handling))
- - Attaching file sinks to terminate stream filters (ie, write out
- the resultant data to a file)
- - Refactor the restoration state machine accordingly
-
- Why: The existing stream implementation suffers from the following:
- - All state (compression, encryption, stream restoration), is
- global across the entire restore process, for all streams. There are
- multiple entry and exit points in the restoration state machine, and
- thus multiple places where state must be allocated, deallocated,
- initialized, or reinitialized. This results in exceptional complexity
- for the author of a stream filter.
- - The developer must enumerate all possible combinations of filters
- and stream types (ie, win32 data with encryption, without encryption,
- with encryption AND compression, etc).
-
- Notes: This feature request only covers implementing the stream filters/
- sinks, and refactoring the file daemon's restoration implementation
- accordingly. If I have extra time, I will also rewrite the backup
- implementation. My intent in implementing the restoration first is to
- solve pressing bugs in the restoration handling, and to ensure that
- the new restore implementation handles existing backups correctly.
-
- I do not plan on changing the network or tape data structures to
- support defining arbitrary stream filters, but supporting that
- functionality is the ultimate goal.
-
- Assistance with either code or testing would be fantastic.
-
-Item 23: Implement from-client and to-client on restore command line.
- Date: 11 December 2006
- Origin: Discussion on Bacula-users entitled 'Scripted restores to
- different clients', December 2006
- Status: New feature request
-
- What: While using bconsole interactively, you can specify the client
- that a backup job is to be restored for, and then you can
- specify later a different client to send the restored files
- back to. However, using the 'restore' command with all options
- on the command line, this cannot be done, due to the ambiguous
- 'client' parameter. Additionally, this parameter means different
- things depending on if it's specified on the command line or
- afterwards, in the Modify Job screens.
-
- Why: This feature would enable restore jobs to be more completely
- automated, for example by a web or GUI front-end.
-
- Notes: client can also be implied by specifying the jobid on the command
- line
-
-Item 24: Add an override in Schedule for Pools based on backup types.
-Date: 19 Jan 2005
-Origin: Chad Slater <chad.slater@clickfox.com>
-Status:
-
- What: Adding a FullStorage=BigTapeLibrary in the Schedule resource
- would help those of us who use different storage devices for different
- backup levels cope with the "auto-upgrade" of a backup.
-
- Why: Assume I add several new device to be backed up, i.e. several
- hosts with 1TB RAID. To avoid tape switching hassles, incrementals are
- stored in a disk set on a 2TB RAID. If you add these devices in the
- middle of the month, the incrementals are upgraded to "full" backups,
- but they try to use the same storage device as requested in the
- incremental job, filling up the RAID holding the differentials. If we
- could override the Storage parameter for full and/or differential
- backups, then the Full job would use the proper Storage device, which
- has more capacity (i.e. a 8TB tape library.
-
-Item 25: Implement huge exclude list support using hashing (dlists).
- Date: 28 October 2005
- Origin: Kern
- Status: Done in 2.1.2 but was done with dlists (doubly linked lists
- since hashing will not help. The huge list also supports
- large include lists).
-
- What: Allow users to specify very large exclude list (currently
- more than about 1000 files is too many).
-
- Why: This would give the users the ability to exclude all
- files that are loaded with the OS (e.g. using rpms
- or debs). If the user can restore the base OS from
- CDs, there is no need to backup all those files. A
- complete restore would be to restore the base OS, then
- do a Bacula restore. By excluding the base OS files, the
- backup set will be *much* smaller.
-
-Item 26: Implement more Python events in Bacula.
- Date: 28 October 2005
- Origin: Kern
- Status:
-
- What: Allow Python scripts to be called at more places
- within Bacula and provide additional access to Bacula
- internal variables.
-
- Why: This will permit users to customize Bacula through
- Python scripts.
-
- Notes: Recycle event
- Scratch pool event
- NeedVolume event
- MediaFull event
-
- Also add a way to get a listing of currently running
- jobs (possibly also scheduled jobs).
-
-
-Item 27: Incorporation of XACML2/SAML2 parsing
- Date: 19 January 2006
- Origin: Adam Thornton <athornton@sinenomine.net>
- Status: Blue sky
-
- What: XACML is "eXtensible Access Control Markup Language" and
- "SAML is the "Security Assertion Markup Language"--an XML standard
- for making statements about identity and authorization. Having these
- would give us a framework to approach ACLs in a generic manner, and
- in a way flexible enough to support the four major sorts of ACLs I
- see as a concern to Bacula at this point, as well as (probably) to
- deal with new sorts of ACLs that may appear in the future.
-
- Why: Bacula is beginning to need to back up systems with ACLs
- that do not map cleanly onto traditional Unix permissions. I see
- four sets of ACLs--in general, mutually incompatible with one
- another--that we're going to need to deal with. These are: NTFS
- ACLs, POSIX ACLs, NFSv4 ACLS, and AFS ACLS. (Some may question the
- relevance of AFS; AFS is one of Sine Nomine's core consulting
- businesses, and having a reputable file-level backup and restore
- technology for it (as Tivoli is probably going to drop AFS support
- soon since IBM no longer supports AFS) would be of huge benefit to
- our customers; we'd most likely create the AFS support at Sine Nomine
- for inclusion into the Bacula (and perhaps some changes to the
- OpenAFS volserver) core code.)
-
- Now, obviously, Bacula already handles NTFS just fine. However, I
- think there's a lot of value in implementing a generic ACL model, so
- that it's easy to support whatever particular instances of ACLs come
- down the pike: POSIX ACLS (think SELinux) and NFSv4 are the obvious
- things arriving in the Linux world in a big way in the near future.
- XACML, although overcomplicated for our needs, provides this
- framework, and we should be able to leverage other people's
- implementations to minimize the amount of work *we* have to do to get
- a generic ACL framework. Basically, the costs of implementation are
- high, but they're largely both external to Bacula and already sunk.
-
-Item 28: Filesystem watch triggered backup.
- Date: 31 August 2006
- Origin: Jesper Krogh <jesper@krogh.cc>
- Status: Unimplemented, depends probably on "client initiated backups"
-
- What: With inotify and similar filesystem triggeret notification
- systems is it possible to have the file-daemon to monitor
- filesystem changes and initiate backup.
-
- Why: There are 2 situations where this is nice to have.
- 1) It is possible to get a much finer-grained backup than
- the fixed schedules used now.. A file created and deleted
- a few hours later, can automatically be caught.
-
- 2) The introduced load on the system will probably be
- distributed more even on the system.
-
- Notes: This can be combined with configration that specifies
- something like: "at most every 15 minutes or when changes
- consumed XX MB".
-
-Kern Notes: I would rather see this implemented by an external program
- that monitors the Filesystem changes, then uses the console
- to start the appropriate job.
-
-Item 29: Allow inclusion/exclusion of files in a fileset by creation/mod times
- Origin: Evan Kaufman <evan.kaufman@gmail.com>
- Date: January 11, 2006
- Status:
-
- What: In the vein of the Wild and Regex directives in a Fileset's
- Options, it would be helpful to allow a user to include or exclude
- files and directories by creation or modification times.
-
- You could factor the Exclude=yes|no option in much the same way it
- affects the Wild and Regex directives. For example, you could exclude
- all files modified before a certain date:
-
- Options {
- Exclude = yes
- Modified Before = ####
- }
-
- Or you could exclude all files created/modified since a certain date:
-
- Options {
- Exclude = yes
- Created Modified Since = ####
- }
-
- The format of the time/date could be done several ways, say the number
- of seconds since the epoch:
- 1137008553 = Jan 11 2006, 1:42:33PM # result of `date +%s`
-
- Or a human readable date in a cryptic form:
- 20060111134233 = Jan 11 2006, 1:42:33PM # YYYYMMDDhhmmss
-
- Why: I imagine a feature like this could have many uses. It would
- allow a user to do a full backup while excluding the base operating
- system files, so if I installed a Linux snapshot from a CD yesterday,
- I'll *exclude* all files modified *before* today. If I need to
- recover the system, I use the CD I already have, plus the tape backup.
- Or if, say, a Windows client is hit by a particularly corrosive
- virus, and I need to *exclude* any files created/modified *since* the
- time of infection.
-
- Notes: Of course, this feature would work in concert with other
- in/exclude rules, and wouldnt override them (or each other).
-
- Notes: The directives I'd imagine would be along the lines of
- "[Created] [Modified] [Before|Since] = <date>".
- So one could compare against 'ctime' and/or 'mtime', but ONLY 'before'
- or 'since'.
-
-
-Item 30: Tray monitor window cleanups
- Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
- Date: 24 July 2006
- Status:
- What: Resizeable and scrollable windows in the tray monitor.
-
- Why: With multiple clients, or with many jobs running, the displayed
- window often ends up larger than the available screen, making
- the trailing items difficult to read.
-
-
-Item 31: Implement multiple numeric backup levels as supported by dump
-Date: 3 April 2006
-Origin: Daniel Rich <drich@employees.org>
-Status:
-What: Dump allows specification of backup levels numerically instead of just
- "full", "incr", and "diff". In this system, at any given level, all
- files are backed up that were were modified since the last backup of a
- higher level (with 0 being the highest and 9 being the lowest). A
- level 0 is therefore equivalent to a full, level 9 an incremental, and
- the levels 1 through 8 are varying levels of differentials. For
- bacula's sake, these could be represented as "full", "incr", and
- "diff1", "diff2", etc.
-
-Why: Support of multiple backup levels would provide for more advanced backup
- rotation schemes such as "Towers of Hanoi". This would allow better
- flexibility in performing backups, and can lead to shorter recover
- times.
-
-Notes: Legato Networker supports a similar system with full, incr, and 1-9 as
- levels.
-
-Item 32: Automatic promotion of backup levels
- Date: 19 January 2006
- Origin: Adam Thornton <athornton@sinenomine.net>
- Status:
-
- What: Amanda has a feature whereby it estimates the space that a
- differential, incremental, and full backup would take. If the
- difference in space required between the scheduled level and the next
- level up is beneath some user-defined critical threshold, the backup
- level is bumped to the next type. Doing this minimizes the number of
- volumes necessary during a restore, with a fairly minimal cost in
- backup media space.
-
- Why: I know at least one (quite sophisticated and smart) user
- for whom the absence of this feature is a deal-breaker in terms of
- using Bacula; if we had it it would eliminate the one cool thing
- Amanda can do and we can't (at least, the one cool thing I know of).
-
-Item 33: Clustered file-daemons
- Origin: Alan Brown ajb2 at mssl dot ucl dot ac dot uk
- Date: 24 July 2006
- Status:
- What: A "virtual" filedaemon, which is actually a cluster of real ones.
-
- Why: In the case of clustered filesystems (SAN setups, GFS, or OCFS2, etc)
- multiple machines may have access to the same set of filesystems
-
- For performance reasons, one may wish to initate backups from
- several of these machines simultaneously, instead of just using
- one backup source for the common clustered filesystem.
-
- For obvious reasons, normally backups of $A-FD/$PATH and
- B-FD/$PATH are treated as different backup sets. In this case
- they are the same communal set.
-
- Likewise when restoring, it would be easier to just specify
- one of the cluster machines and let bacula decide which to use.
-
- This can be faked to some extent using DNS round robin entries
- and a virtual IP address, however it means "status client" will
- always give bogus answers. Additionally there is no way of
- spreading the load evenly among the servers.
-
- What is required is something similar to the storage daemon
- autochanger directives, so that Bacula can keep track of
- operating backups/restores and direct new jobs to a "free"
- client.
-
- Notes:
-
-Item 34: Commercial database support
- Origin: Russell Howe <russell_howe dot wreckage dot org>
- Date: 26 July 2006
- Status:
-
- What: It would be nice for the database backend to support more
- databases. I'm thinking of SQL Server at the moment, but I guess Oracle,
- DB2, MaxDB, etc are all candidates. SQL Server would presumably be
- implemented using FreeTDS or maybe an ODBC library?
-
- Why: We only really have one database server, which is MS SQL Server
- 2000. Maintaining a second one for the backup software (we grew out of
- SQLite, which I liked, but which didn't work so well with our database
- size). We don't really have a machine with the resources to run
- postgres, and would rather only maintain a single DBMS. We're stuck with
- SQL Server because pretty much all the company's custom applications
- (written by consultants) are locked into SQL Server 2000. I can imagine
- this scenario is fairly common, and it would be nice to use the existing
- properly specced database server for storing Bacula's catalog, rather
- than having to run a second DBMS.
-
-Item 35: Automatic disabling of devices
- Date: 2005-11-11
- Origin: Peter Eriksson <peter at ifm.liu dot se>
- Status:
-
- What: After a configurable amount of fatal errors with a tape drive
- Bacula should automatically disable further use of a certain
- tape drive. There should also be "disable"/"enable" commands in
- the "bconsole" tool.
-
- Why: On a multi-drive jukebox there is a possibility of tape drives
- going bad during large backups (needing a cleaning tape run,
- tapes getting stuck). It would be advantageous if Bacula would
- automatically disable further use of a problematic tape drive
- after a configurable amount of errors has occurred.
-
- An example: I have a multi-drive jukebox (6 drives, 380+ slots)
- where tapes occasionally get stuck inside the drive. Bacula will
- notice that the "mtx-changer" command will fail and then fail
- any backup jobs trying to use that drive. However, it will still
- keep on trying to run new jobs using that drive and fail -
- forever, and thus failing lots and lots of jobs... Since we have
- many drives Bacula could have just automatically disabled
- further use of that drive and used one of the other ones
- instead.
-
-Item 36: An option to operate on all pools with update vol parameters
- Origin: Dmitriy Pinchukov <absh@bossdev.kiev.ua>
- Date: 16 August 2006
- Status:
-
- What: When I do update -> Volume parameters -> All Volumes
- from Pool, then I have to select pools one by one. I'd like
- console to have an option like "0: All Pools" in the list of
- defined pools.
-
- Why: I have many pools and therefore unhappy with manually
- updating each of them using update -> Volume parameters -> All
- Volumes from Pool -> pool #.
-
-Item 37: Add an item to the restore option where you can select a pool
- Origin: kshatriyak at gmail dot com
- Date: 1/1/2006
- Status:
-
- What: In the restore option (Select the most recent backup for a
- client) it would be useful to add an option where you can limit
- the selection to a certain pool.
-
- Why: When using cloned jobs, most of the time you have 2 pools - a
- disk pool and a tape pool. People who have 2 pools would like to
- select the most recent backup from disk, not from tape (tape
- would be only needed in emergency). However, the most recent
- backup (which may just differ a second from the disk backup) may
- be on tape and would be selected. The problem becomes bigger if
- you have a full and differential - the most "recent" full backup
- may be on disk, while the most recent differential may be on tape
- (though the differential on disk may differ even only a second or
- so). Bacula will complain that the backups reside on different
- media then. For now the only solution now when restoring things
- when you have 2 pools is to manually search for the right
- job-id's and enter them by hand, which is a bit fault tolerant.
-
-Item 38: Include timestamp of job launch in "stat clients" output
- Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
- Date: Tue Aug 22 17:13:39 EDT 2006
- Status:
-
- What: The "stat clients" command doesn't include any detail on when
- the active backup jobs were launched.
-
- Why: Including the timestamp would make it much easier to decide whether
- a job is running properly.
-
- Notes: It may be helpful to have the output from "stat clients" formatted
- more like that from "stat dir" (and other commands), in a column
- format. The per-client information that's currently shown (level,
- client name, JobId, Volume, pool, device, Files, etc.) is good, but
- somewhat hard to parse (both programmatically and visually),
- particularly when there are many active clients.
-
-
-Item 39: Message mailing based on backup types
- Origin: Evan Kaufman <evan.kaufman@gmail.com>
- Date: January 6, 2006
- Status:
-
- What: In the "Messages" resource definitions, allowing messages
- to be mailed based on the type (backup, restore, etc.) and level
- (full, differential, etc) of job that created the originating
- message(s).
-
- Why: It would, for example, allow someone's boss to be emailed
- automatically only when a Full Backup job runs, so he can
- retrieve the tapes for offsite storage, even if the IT dept.
- doesn't (or can't) explicitly notify him. At the same time, his
- mailbox wouldnt be filled by notifications of Verifies, Restores,
- or Incremental/Differential Backups (which would likely be kept
- onsite).
-
- Notes: One way this could be done is through additional message types, for example:
-
- Messages {
- # email the boss only on full system backups
- Mail = boss@mycompany.com = full, !incremental, !differential, !restore,
- !verify, !admin
- # email us only when something breaks
- MailOnError = itdept@mycompany.com = all
- }
-
-
-Item 40: Include JobID in spool file name ****DONE****
- Origin: Mark Bergman <mark.bergman@uphs.upenn.edu>
- Date: Tue Aug 22 17:13:39 EDT 2006
- Status: Done. (patches/testing/project-include-jobid-in-spool-name.patch)
- No need to vote for this item.
-
- What: Change the name of the spool file to include the JobID
-
- Why: JobIDs are the common key used to refer to jobs, yet the
- spoolfile name doesn't include that information. The date/time
- stamp is useful (and should be retained).
-
-============= New Freature Requests after vote of 26 Jan 2007 ========
-Item 41: Enable to relocate files and directories when restoring
- Date: 2007-03-01
- Origin: Eric Bollengier <eric@eb.homelinux.org>
- Status: Done.
-
- What: The where= option is not powerful enough. It will be
- a great feature if bacula can restore a file in the
- same directory, but with a different name, or in
- an other directory without recreating the full path.
-
- Why: When i want to restore a production environment to a
- development environment, i just want change the first
- directory. ie restore /prod/data/file.dat to /rect/data/file.dat.
- At this time, i have to move by hand files. You must have a big
- dump space to restore and move data after.
-
- When i use Linux or SAN snapshot, i mount them to /mnt/snap_xxx
- so, when a restore a file, i have to move by hand
- from /mnt/snap_xxx/file to /xxx/file. I can't replace a file
- easily.
-
- When a user ask me to restore a file in its personal folder,
- (without replace the existing one), i can't restore from
- my_file.txt to my_file.txt.old witch is very practical.
-
-
- Notes: I think we can enhance the where= option very easily by
- allowing regexp expression.
-
- Since, many users think that regexp are not user friendly, i think
- that bat, bconsole or brestore must provide a simple way to
- configure where= option (i think to something like in
- openoffice "search and replace").
-
- Ie, if user uses where=/tmp/bacula-restore, we keep the old
- fashion.
-
- If user uses something like where=s!/prod!/test!, files will
- be restored from /prod/xxx to /test/xxx.
-
- If user uses something like where=s/$/.old/, files will
- be restored from /prod/xxx.txt to /prod/xxx.txt.old.
-
- If user uses something like where=s/txt$/old.txt/, files will
- be restored from /prod/xxx.txt to /prod/xxx.old.txt
-
- if user uses something like where=s/([a-z]+)$/old.$1/, files will
- be restored from /prod/xxx.ext to /prod/xxx.old.ext
-
-Item n: Implement Catalog directive for Pool resource in Director
-configuration
- Origin: Alan Davis adavis@ruckus.com
- Date: 6 March 2007
- Status: Submitted
-
- What: The current behavior is for the director to create all pools
- found in the configuration file in all catalogs. Add a
- Catalog directive to the Pool resource to specify which
- catalog to use for each pool definition.
-
- Why: This allows different catalogs to have different pool
- attributes and eliminates the side-effect of adding
- pools to catalogs that don't need/use them.
-
- Notes:
-
-
-Item n: Implement NDMP protocol support
- Origin: Alan Davis
- Date: 06 March 2007
- Status: Submitted
-
- What: Network Data Management Protocol is implemented by a number of
- NAS filer vendors to enable backups using third-party
- software.
-
- Why: This would allow NAS filer backups in Bacula without incurring
- the overhead of NFS or SBM/CIFS.
-
- Notes: Further information is available:
- http://www.ndmp.org
- http://www.ndmp.org/wp/wp.shtml
- http://www.traakan.com/ndmjob/index.html
-
- There are currently no viable open-source NDMP
- implementations. There is a reference SDK and example
- app available from ndmp.org but it has problems
- compiling on recent Linux and Solaris OS'. The ndmjob
- reference implementation from Traakan is known to
- compile on Solaris 10.
-
- Notes (Kern): I am not at all in favor of this until NDMP becomes
- an Open Standard or until there are Open Source libraries
- that interface to it.
-
-Item n: make changing "spooldata=yes|no" possible for
- manual/interactive jobs
-
-Origin: Marc Schiffbauer <marc@schiffbauer.net>
-
-Date: 12 April 2007)
-
-Status: NEW
-
-What: Make it possible to modify the spooldata option
- for a job when being run from within the console.
- Currently it is possible to modify the backup level
- and the spooldata setting in a Schedule resource.
- It is also possible to modify the backup level when using
- the "run" command in the console.
- But it is currently not possible to to the same
- with "spooldata=yes|no" like:
-
- run job=MyJob level=incremental spooldata=yes
-
-Why: In some situations it would be handy to be able to switch
- spooldata on or off for interactive/manual jobs based on
- which data the admin expects or how fast the LAN/WAN
- connection currently is.
-
-Notes: ./.
-
-============= Empty Feature Request form ===========
-Item n: One line summary ...
- Date: Date submitted
- Origin: Name and email of originator.
- Status:
-
- What: More detailed explanation ...
-
- Why: Why it is important ...
-
- Notes: Additional notes or features (omit if not used)
-============== End Feature Request form ==============
-
-</pre>
-
- </td>
-</tr>
-</table>
-
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic">
- System Requirements
- </td>
-</tr>
-<tr>
- <td class="content">
-
- <ul class="hardware">
- <li><b>Bacula</b> has been compiled and run on Linux, FreeBSD,
- and Solaris systems.</li>
- <li>It requires GNU C++ version 2.95 or higher to compile. You can try
- with other compilers and older versions, but you are on your
- own. We have successfully compiled and used Bacula on
- RH8.0/RH9/RHEL 3.0 with GCC 3.2. Note, in general GNU C++ is a
- separate package (e.g. RPM) from GNU C, so you need them both
- loaded. On RedHat systems, the C++ compiler is part of the
- <b>gcc-c++</b> rpm package. </li>
- <li>There are certain third party packages that Bacula needs.
- Except for MySQL and PostgreSQL, they can all be found in the
- <b>depkgs</b> and <b>depkgs1</b> releases.</li>
- <li>If you want to build the Win32 binaries, you should know
- that they are cross-compiled on a Linux machine. For
- more information, please see the src/win32/README.mingw32
- file in the source distribution.
- Although we document it, we do not support building the
- Win32 binaries. Only the Win32 File daemon is officially
- supported, though the other daemons are available in the
- binary release.</li>
- <li><b>Bacula</b> requires a good implementation of pthreads to work.
- This is not the case on some of the BSD systems.</li>
- <li>The source code has been written with portability in mind and is
- mostly POSIX compatible. Thus porting to any POSIX compatible
- operating system should be relatively easy.</li>
- <li>The GNOME Console program is developed and tested under GNOME 2.x.
- </li>
- <li>The wxWidgets Console program is developed and tested with the
- latest stable version of <a
- href="http://www.wxwidgets.org/">wxWidgets</a> (2.6). It
- works fine with the Windows and GTK+-2.x version of wxWidgets,
- and should also works on other platforms supported by
- wxWidgets.</li>
- <li>The Tray Monitor program is developed for GTK+-2.x. It needs
- Gnome >=2.2, KDE >=3.1 or any window manager supporting the
- <a href="http://www.freedesktop.org/Standards/systemtray-spec">
- FreeDesktop system tray standard</a>.</li>
- <li>If you want to enable command line editing and history, you will
- need to have /usr/include/termcap.h and either the termcap or the
- ncurses library loaded (libtermcap-devel or ncurses-devel).</li>
- </ul>
-
- </td>
-</tr>
-</table>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic"> Support for Bacula </td>
-</tr>
-<tr>
- <td class="content">
-
- Please keep in mind that we are not getting paid for this.
- Nevertheless, our desire is to see as many people using
- <b>Bacula</b> as possible. So we are very willing to
- provide a reasonable level of email support.
-
- <p>Before asking for help, it could be useful to check against the
- email archive as often solution to your problem has been discussed
- or a patch has been released. Please see:
- <a href="http://news.gmane.org/search.php?match=bacula">
- http://news.gmane.org/search.php?match=bacula</a>.
-
- Also, if you are using Bacula in production, we highly recommend
- subscribing to the bugs database at: <a href="http://bugs.bacula.org">
- http://bugs.bacula.org</a> to keep informed of problems and
- patches.
-
- <p>For support, send an email to
- <b>bacula-users at lists.sourceforge.net</b>, and if you are
- specific enough, some kind Bacula user will help you. Please
- note that if you don't at least specify what version of Bacula
- and what platform you are using, it will not be easy to get a
- valid answer. The email address noted above
- was modified to prevent easy use by spammers.
- To use it, you must replace the <b>at</b> with an @ symbol. Due
- to the increasing volumes of spam on the list, you must
- be subscribed to it to be able to send and email to it. The
- link to your left entitled <b>Email Lists</b> provides links
- to where you can subscribe to each of the Bacula email lists.
-
- The users constantly monitor this list and will generally provide
- support. Please see <b>Information Needed</b> below for what to
- include in your support request. If you don't supply the necessary
- information, it will take longer to respond to your request, and
- users may be afraid to try to respond,
- if your request is too complicated or not well formulated.
-
-
- <p>I (Kern) get a number of "off-list" emails sent
- directly to me. Unfortunately, I am no longer able to provide
- direct user support. However, I do read all the email sent and
- occasionally provide a tip or two. If you do send email to me,
- please always copy the appropriate list, if you
- do not copy the list, I may not answer you, or I will answer by copying
- the list. If you <em>really</em> have something confidential,
- please clearly indicate it.</p>
-
- <p>If you send a bug report or minor enhancement request because of a
- problem to the bacula-devel list, and you do not provide the information
- requested below, particularly the Bacula version, it is <b>very</b>
- frustrating for us, because it is quite often the case that your problem is
- version dependent, and likely already fixed. In such case, we will note
- the problem, but you will be unlikely to get a response, especially if we
- are busy, because it forces us to first ask you what version you are using
- (or other information), then deal with your response, thus doubling the
- time for us. If we do ask you for information, please include <b>all</b>
- the previous correspondence in each email, otherwise you force us to search
- the archives to find what you previously wrote. In short, if you want a
- response, please see "Information Needed" below.
-
- <p>If you are looking for live-support you might check out our irc-channel
- in the <a href="http://www.freenode.net">Freenode</a> net, called #bacula.
-
-<h3>Information Needed</h3>
-For us to respond to a bug report, we normally need the following
-as the minimum information, which you can enter into the appropriate
-fields of the bug reporting system:
-<ul>
-<li>Your operating system</li>
-<li>The version of Bacula you are using</li>
-<li>A <a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">clear and concise</a> description of the problem</li>
-<li>If you say "it crashes", "it doesn't work" or something
- similar, you should include some output from Bacula that shows this.</li>
-<li>If we respond to your email, and you answer, possibly supplying more
- information, please be sure to include the <b>full</b> text of previous
- emails so that we have all the information in one place.</li>
-</ul>
-If you are having tape problems, please include:
-<ul>
- <li>The kind of tape drive you have </li>
- <li>Have you run the <b>btape</b> "test" command?</li>
-</ul>
-
-If you are having database problems, please include:
-<ul>
- <li>The database you are using: MySQL, PostgreSQL, SQLite, SQLite3 </li>
- <li>The version of the database you are using</li>
-</ul>
-
-The first two of these items can be fulfilled by sending
-us a copy of your <b>config.out</b> file, which is in the
-main <b>Bacula</b> source directory after you have done
-your <b>./configure</b>.
-<p>In addition, we will sometimes need a copy of your Bacula
-configuration files (especially bacula-dir.conf). If you
-think it is a configuration problem, please don't hesitate
-to send them if necessary.</td>
-</tr>
-<tr>
- <td style="font-size: 14px; padding: 0px 20px 0px 20px">
- Please read that little Bug-Report-<a href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">HowTo</a> as well.
- </td>
-</tr>
-
-</table>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<?
-$dat_dir = '../testimonials';
-
-$org_type_lst = array(
- '0' => "SELECT ONE",
- '15' => "Church / Religious Organization",
- '3' => "Corporation",
- '14' => "Educational Institution",
- '5' => "Government",
- '6' => "Military",
- '13' => "Non-Profit Organization",
- '10' => "Other",
- '4' => "Small Business"
-);
-
-$version_lst = array(
- '0' => "SELECT ONE",
- '1' => "1.36.x",
- '2' => "1.38.x",
- '3' => "2.0.x",
- '4' => "2.2.x",
- '5' => "SVN version"
-);
-
-$catalog_lst = array(
- '0' => "SELECT ONE",
- '1' => "MySQL",
- '2' => "PostgreSQL",
- '3' => "SqLite"
-);
-
-$org_industry_lst = array(
- '0' => 'SELECT ONE', '25' => 'Aerospace / Aeronautical',
- '11' => 'Agriculture / Farming', '38' => 'Architecture / Design',
- '44' => 'Arts', '5' => 'ASP',
- '54' => 'Banking',
- '42' => 'Church / Religious Organization', '45' => 'Coaching',
- '10' => 'Construction', '22' => 'Consulting (General)',
- '21' => 'Consulting (Information Technology)', '31' => 'Defense Industry',
- '51' => 'Education / Training', '37' => 'Energy Industry',
- '46' => 'Engineering', '35' => 'Entertainment (Film)',
- '34' => 'Entertainment (Music)', '36' => 'Entertainment (Other)',
- '47' => 'Event Management / Conferences', '7' => 'Finance / Banking / Accounting',
- '12' => 'Food Service Industry', '29' => 'Government',
- '3' => 'Healthcare / Medicine', '8' => 'Higher Education',
- '6' => 'Insurance', '4' => 'Internet Service Provider',
- '2' => 'K-12 Education', '48' => 'Law Enforcement / Emergency Management',
- '14' => 'Legal', '24' => 'Manufacturing (Computer Equipment)',
- '23' => 'Manufacturing (General)', '53' => 'Media (Publishing, Broadcasting, etc)',
- '30' => 'Military', '9' => 'Mining',
- '18' => 'Natural Resources / Environment', '15' => 'Pharmaceuticals',
- '49' => 'Public Relations / Advertising', '13' => 'Real Estate',
- '41' => 'Retail / Consumer Goods', '52' => 'Sales / Marketing',
- '32' => 'Scientific Research', '33' => 'Sports / Recreation',
- '43' => 'Technical College / Trade School', '40' => 'Telecommunications',
- '27' => 'Transportation Industry (Air)', '28' => 'Transportation Industry (General)',
- '26' => 'Transportation Industry (Marine)', '50' => 'Travel / Tourism / Lodging',
- '17' => 'Travel Industry', '39' => 'Utilities / Public Works',
- '16' => 'Other'
-);
-
-$os_lst = array(
- '0' => 'SELECT ONE', '20' => 'AIX',
- '21' => 'FreeBSD', '14' => 'HP-UX',
- '2' => 'Linux (Debian)', '27' => 'Linux (Fedora)',
- '25' => 'Linux (Gentoo)', '4' => 'Linux (Mandrake)',
- '5' => 'Linux (Other)', '1' => 'Linux (RedHat)',
- '26' => 'Linux (Slackware)', '3' => 'Linux (Suse)',
- '18' => 'Mac OS X', '22' => 'NetBSD',
- '23' => 'OpenBSD', '24' => 'Other',
- '13' => 'Solaris', '15' => 'Windows 2000',
- '16' => 'Windows 2003', '17' => 'Windows XP'
-);
-
-$country_lst = array(
- '0' => 'SELECT ONE', '1' => 'Afghanistan',
- '2' => 'Albania', '3' => 'Algeria',
- '4' => 'American Samoa', '5' => 'Andorra',
- '6' => 'Angola', '7' => 'Anguilla',
- '8' => 'Antarctica', '9' => 'Antigua and Barbuda',
- '10' => 'Argentina', '11' => 'Armenia',
- '12' => 'Aruba', '13' => 'Australia',
- '14' => 'Austria', '15' => 'Azerbaijan',
- '16' => 'Bahamas', '17' => 'Bahrain',
- '18' => 'Bangladesh', '19' => 'Barbados',
- '20' => 'Belarus', '21' => 'Belgium',
- '22' => 'Belize', '23' => 'Benin',
- '24' => 'Bermuda', '25' => 'Bhutan',
- '26' => 'Bolivia', '27' => 'Bosnia and Herzegovina',
- '28' => 'Botswana', '29' => 'Bouvet Island',
- '30' => 'Brazil', '31' => 'Brunei Darussalam',
- '32' => 'Bulgaria', '33' => 'Burkina Faso',
- '34' => 'Burundi', '35' => 'Cambodia',
- '36' => 'Cameroon', '37' => 'Canada',
- '38' => 'Cape Verde', '39' => 'Cayman Islands',
- '40' => 'Central African Republic','41' => 'Chad',
- '42' => 'Chile', '43' => 'China',
- '44' => 'Christmas Island', '45' => 'Colombia',
- '46' => 'Comoros', '47' => 'Congo',
- '48' => 'Cook Islands', '49' => 'Costa Rica',
- '54' => "Ivory Coast", '50' => 'Croatia',
- '51' => 'Cuba', '52' => 'Cyprus',
- '53' => 'Czech Republic', '55' => 'Denmark',
- '56' => 'Djibouti', '57' => 'Dominica',
- '58' => 'Dominican Republic', '59' => 'East Timor',
- '60' => 'Ecuador', '61' => 'Egypt',
- '62' => 'El Salvador', '63' => 'Equatorial Guinea',
- '64' => 'Eritrea', '65' => 'Estonia',
- '66' => 'Ethiopia', '67' => 'Falkland Islands',
- '68' => 'Faroe Islands', '69' => 'Fiji',
- '70' => 'Finland', '71' => 'France',
- '72' => 'French Guiana', '73' => 'French Polynesia',
- '74' => 'Gabon', '75' => 'Gambia',
- '76' => 'Georgia', '77' => 'Germany',
- '78' => 'Ghana', '79' => 'Gibraltar',
- '80' => 'Greece', '81' => 'Greenland',
- '82' => 'Grenada', '83' => 'Guadeloupe',
- '84' => 'Guam', '85' => 'Guatemala',
- '86' => 'Guinea', '87' => 'Guinea-Bissau',
- '88' => 'Guyana', '89' => 'Haiti',
- '90' => 'Honduras', '91' => 'Hong Kong',
- '92' => 'Hungary', '93' => 'Iceland',
- '94' => 'India', '95' => 'Indonesia',
- '96' => 'Iran', '97' => 'Iraq',
- '98' => 'Ireland', '99' => 'Israel',
- '100' => 'Italy', '101' => 'Jamaica',
- '102' => 'Japan', '103' => 'Jordan',
- '104' => 'Kazakstan', '105' => 'Kenya',
- '106' => 'Kiribati', '107' => 'Kuwait',
- '108' => 'Kyrgystan', '109' => 'Lao',
- '110' => 'Latvia', '111' => 'Lebanon',
- '112' => 'Lesotho', '113' => 'Liberia',
- '232' => 'Libya', '114' => 'Liechtenstein',
- '115' => 'Lithuania', '116' => 'Luxembourg',
- '117' => 'Macau', '118' => 'Macedonia (FYR)',
- '119' => 'Madagascar', '120' => 'Malawi',
- '121' => 'Malaysia', '122' => 'Maldives',
- '123' => 'Mali', '124' => 'Malta',
- '125' => 'Marshall Islands', '126' => 'Martinique',
- '127' => 'Mauritania', '128' => 'Mauritius',
- '129' => 'Mayotte', '130' => 'Mexico',
- '131' => 'Micronesia', '132' => 'Moldova',
- '133' => 'Monaco', '134' => 'Mongolia',
- '135' => 'Montserrat', '136' => 'Morocco',
- '137' => 'Mozambique', '138' => 'Myanmar',
- '139' => 'Namibia', '140' => 'Nauru',
- '141' => 'Nepal', '142' => 'Netherlands',
- '143' => 'Netherlands Antilles', '144' => 'Neutral Zone',
- '145' => 'New Caledonia', '146' => 'New Zealand',
- '147' => 'Nicaragua', '148' => 'Niger',
- '149' => 'Nigeria', '150' => 'Niue',
- '151' => 'Norfolk Island', '152' => 'North Korea',
- '153' => 'Northern Mariana Islands','154' => 'Norway',
- '155' => 'Oman', '156' => 'Pakistan',
- '157' => 'Palau', '158' => 'Panama',
- '159' => 'Papua New Guinea', '160' => 'Paraguay',
- '161' => 'Peru', '162' => 'Philippines',
- '163' => 'Pitcairn', '164' => 'Poland',
- '165' => 'Portugal', '166' => 'Puerto Rico',
- '167' => 'Qatar', '168' => 'Reunion',
- '169' => 'Romania', '170' => 'Russian Federation',
- '171' => 'Rwanda', '172' => 'Saint Helena',
- '173' => 'Saint Kitts and Nevis', '174' => 'Saint Lucia',
- '175' => 'Saint Pierre and Miquelon','231' => 'Saint Vincent and the Grenadines',
- '176' => 'Samoa', '177' => 'San Marino',
- '178' => 'Sao Tome and Principe', '179' => 'Saudi Arabia',
- '180' => 'Senegal', '227' => 'Serbia and Montenegro',
- '181' => 'Seychelles', '182' => 'Sierra Leone',
- '183' => 'Singapore', '184' => 'Slovakia',
- '185' => 'Slovenia', '186' => 'Solomon Islands',
- '187' => 'Somalia', '188' => 'South Africa',
- '189' => 'South Georgia', '190' => 'South Korea',
- '191' => 'Spain', '192' => 'Sri Lanka',
- '193' => 'Sudan', '194' => 'Suriname',
- '195' => 'Swaziland', '196' => 'Sweden',
- '197' => 'Switzerland', '198' => 'Syria',
- '199' => 'Taiwan', '200' => 'Tajikistan',
- '201' => 'Tanzania', '202' => 'Thailand',
- '203' => 'Togo', '204' => 'Tokelau',
- '205' => 'Tonga', '206' => 'Trinidad and Tobago',
- '207' => 'Tunisia', '208' => 'Turkey',
- '209' => 'Turkmenistan', '210' => 'Turks and Caicos Islands',
- '211' => 'Tuvalu', '212' => 'Uganda',
- '213' => 'Ukraine', '214' => 'United Arab Emirates',
- '215' => 'United Kingdom', '216' => 'United States of America',
- '217' => 'Uruguay', '218' => 'Uzbekistan',
- '219' => 'Vanuatu', '233' => 'Vatican City',
- '220' => 'Venezuela', '221' => 'Vietnam',
- '222' => 'Virgin Islands (British)','223' => 'Virgin Islands (U.S.)',
- '224' => 'Wallis and Futuna Islands','225' => 'Western Sahara',
- '226' => 'Yemen', '228' => 'Zaire',
- '229' => 'Zambia', '230' => 'Zimbabwe'
-);
-
-if ($_REQUEST['btnSubmit'] == 'Add' or $_REQUEST['btnSubmit'] == 'Modify')
-{
-
-?>
-<table>
-<tr>
- <td class="contentTopic">
- <? echo $_REQUEST['btnSubmit'] ?> Testimonial
- </td>
-</tr>
-<tr>
- <td class="content">
-
-Want to let others know you're using Bacula? Submit a user profile! Your
-submission will be reviewed before being made publicly available. We reserve
-the right to edit your submission for spelling, grammar, etc. You will receive
-an email when your profile has been approved for public viewing. Note that
-while your contact name and email address are required (to verify
-information if necessary), you can choose to have them not be published along
-with your profile information.
-<br/><br/>
-Fields marked with a * are required. Read the privacy notice below for
-information about how this data will be used.
-
- </td>
-</tr>
-
-<tr>
- <td class="content">
-<form enctype="multipart/form-data" method='post' action='?page=testimonial'>
-<input type='hidden' name='page' value='testimonial'>
-<table border='0' class='Content'>
-
-<td class='ItemName'>
-<font color='red'>*</font>Contact Name:</td>
-<td class='ItemValue'><input type='text' class='ItemValue' id='contact_name'
-name='contact_name' size='30' maxlength='100' value=''></td>
-<td class='ItemName'>Publish Contact Name?</td>
-<td class='ItemValue'><select name='publish_contact' class='ItemValue'>
-<option id='publish_contact_0' value='0' SELECTED>No
-<option id='publish_contact_1' value='1'>Yes
-</select></td>
-</tr>
-
-<tr>
-<td class='ItemName'><font color='red'>*</font>Email Address:</td>
-<td class='ItemValue'><input type='text' class='ItemValue' name='email_address'
-id='email_address' size='30' maxlength='150' value=''></td>
-<td class='ItemName'>Publish Email Address?</td><td class='ItemValue'>
-<select name='publish_email' class='ItemValue'>
-<option value='0' id='publish_email_0' SELECTED>No
-<option value='1' id='publish_email_1' >Yes
-</select></td>
-</tr>
-
-<tr><td class='ItemName'>Job Description/Title:</td>
-<td class='ItemValue'>
-<input type='text' name='title' id='title' size='30' maxlength='100' value=''></td></tr>
-<tr><td colspan=4><br></td></tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Organization Name:</td>
-<td class='ItemValue'>
-<input type='text' class='ItemValue' name='org_name' id='org_name'
-size='30' maxlength='100' value=''>
-</td><td class='ItemName'>Publish Org Name?</td><td class='ItemValue'>
-<select name='publish_orgname' class='ItemValue'>
-<option value='0' id='publish_orgname_0' >No
-<option value='1' id='publish_orgname_1' SELECTED>Yes
-</select></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Organization Type:</td>
-<td class='ItemValue' colspan='3'>
-<select name='orgtype_id' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($org_type_lst))
-{
- echo "<option id='orgtype_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Organization Industry/Function:</td>
-<td class='ItemValue' colspan='3'>
-<select name='orgindustry_id' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($org_industry_lst))
-{
- echo "<option id='orgindustry_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-
-<tr><td class='ItemName'>
-<font color='red'>*</font>Approx. Organization Size (# of Users):</td>
-<td class='ItemValue'>
-<input type='text' id='org_size' class='ItemValue' name='org_size'
-size='4' maxlength='6' value=''></td>
-<td class='ItemName'>Publish Org Size?</td><td class='ItemValue'><select name='publish_orgsize' class='ItemValue'>
-<option id='publish_orgsize_0' value='0' >No
-<option id='publish_orgsize_1' value='1' SELECTED>Yes
-</select></td>
-</tr>
-<tr>
-
-<td class='ItemName'>Website URL:</td>
-<td class='ItemValue'>
-<input type='text' class='ItemValue' id='website' name='website' size='30'
- maxlength='150' value=''></td>
-<td class='ItemName'>Publish Website?</td><td class='ItemValue'>
-<select name='publish_website' class='ItemValue'>
-<option id='publish_website_0' value='0' >No
-<option id='publish_website_1' value='1' SELECTED>Yes
-</select></td>
-</tr>
-
-<tr>
-<td class='ItemName'>Organization Logo :</td>
-<td class='ItemValue'>
-<input type="file" name="org_logo" title="png, gif or jpeg file only please"/>
-</td><td><i>max width 150px. png, gif or jpeg only</i></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Country:</td>
-<td class='ItemValue'>
-<select name='country_id' class='ItemValue'>
-<?
-while(list ($key, $val) = each ($country_lst))
-{
- echo "<option id='country_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-
-<tr><td colspan=4><br></td></tr>
-<tr><td class='ItemName'><font color='red'>*</font>Bacula version:</td>
-<td class='ItemValue'>
-<select name='bacula_version' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($version_lst))
-{
- echo "<option id='bacula_version_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-<tr><td class='ItemName'><font color='red'>*</font>Director OS:</td>
-<td class='ItemValue'>
-<select name='ostype_id' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($os_lst))
-{
- echo "<option id='ostype_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-<tr><td class='ItemName'><font color='red'>*</font>Catalog DB:</td>
-<td class='ItemValue'>
-<select name='catalog_id' class='ItemValue'>
-<?
-
-while(list ($key, $val) = each ($catalog_lst))
-{
- echo "<option id='catalog_id_$key' value='$key'>$val\n";
-}
-
-?>
-</select>
-</td></tr>
-<tr>
-<td class='ItemName'><font color='red'>*</font>Redundant/Failover Backup Setup?</td>
-<td class='ItemValue'><select name='redundant_setup' class='ItemValue'>
-<option value='0' id='redundant_setup_0' SELECTED>No
-<option value='1' id='redundant_setup_1' >Yes
-</select></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Number of Clients (Running bacula-fd):</td>
-<td class='ItemValue'>
-<input type='text' class='ItemValue' id='number_fd' name='number_fd'
- size='5' maxlength='10' value=''></td>
-</tr>
-
-<tr><td class='ItemName'>
-<font color='red'>*</font>Number of Storage Daemons (Running bacula-sd):</td>
-<td class='ItemValue'>
-<input type='text' class='ItemValue' id='number_sd' name='number_sd' size='5'
- maxlength='10' value=''></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Total # of GB saved every month:</td>
-<td class='ItemValue'><input type='text' class='ItemValue' name='month_gb' size='5'
- id='month_gb' maxlength='10' value=''></td>
-</tr>
-
-<tr><td class='ItemName'><font color='red'>*</font>Number # of Files:</td>
-<td class='ItemValue'><input type='text' class='ItemValue' name='number_files'
- id='number_files' title='select count(1) from File;' size='10' maxlength='15' value=''></td>
-</tr>
-<tr>
-
-<td class='ItemName'>Need professional support:</td>
-<td class='ItemValue'>
-<select name='support' class='ItemValue'>
-<option id='support_0' value='0' SELECTED>No
-<option id='support_1' value='1'>Yes
-</select></td>
-</tr>
-
-<tr><td colspan=4><br></td></tr>
-
-<tr><td class='ItemName' valign='top'>Applicable Hardware and Network Information:</td>
-<td class='ItemValue' colspan='3'>
-<textarea name='hardware_comments' wrap='virtual' rows='4' id='hardware_comments'
- cols='60' class='ItemValue'>Loader Description:
-Barcode Reader: Yes/No
-Number of Storage Elements:
-Number of Import/Export Elements:
---
-Nics:
-...
-</textarea>
-</tr>
-
-<tr><td class='ItemName' valign='top'>General Comments:</td>
-<td class='ItemValue' colspan='3'>
-<textarea name='comments' id='comments' wrap='virtual' rows='4' cols='60'
- class='ItemValue'></textarea></tr>
-
-<tr><td></td><td>
-<?
- if ($_REQUEST['btnSubmit'] == 'Modify') {
- echo "<input type='text' title='testimonial id' id='id' name='id' class='ItemValue' value=''>";
- echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Save'>";
- echo "<input type='submit' name='btnSubmit' class='ItemValue' onclick='confirm(\"Are you sure ?\");' value='Delete'><br>";
- echo "<input type='hidden' name='page' class='ItemValue' value='testimonial'><br>";
-
-} else {
- echo "<input type='submit' name='btnSubmit' class='ItemValue' value='Review Profile Submission'>";
-}
-?>
-
-</td></tr>
-</table>
-</form>
-
-</td>
-</tr>
-<tr>
-
- <td class="content">
- <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Privacy Notice </h3>
-
-The following information is required, but you may choose to not have it
-published for public viewing if you wish: contact name, email address,
-organization name. We may use this information to verify the data you submit if
-we find the need.
- </td>
-</tr>
-
-
-</table>
-<?
-
-}
-
-if ($_REQUEST['btnSubmit'] == 'Modify') {
- $filename = get_file_from_id();
-
- if (!$filename) {
- return (0);
- }
-
- $formul = load_formul($filename);
-
- echo "<script type='text/javascript' language='JavaScript'>\n";
- $attribs = array('contact_name','email_address', 'org_name','title','website',
- 'month_gb','number_files', 'number_fd','number_sd',
- 'org_size','comments', 'hardware_comments', 'id');
- foreach ($attribs as $arr) {
- form_set_value($formul, $arr);
- }
-
- $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id',
- 'orgindustry_id', 'publish_orgsize','publish_website', 'bacula_version',
- 'country_id','ostype_id', 'redundant_setup', 'catalog_id', 'support');
- foreach ($attribs as $arr) {
- form_set_selection($formul, $arr);
- }
-
- echo "</script>\n";
-
-} elseif ($_REQUEST['btnSubmit'] == 'Review Profile Submission') {
-
- $form = get_formul();
- if (!$form) {
- echo "Sorry, something is missing, I cannot accept your submission";
- } else {
- $token = uniqid(md5(rand()), true);
- $filename = "$dat_dir/profile.$token";
-
- $form['filename'] = $filename;
- $form['id'] = $token;
- save_formul($form);
-
- send_email($form['id'], $form['email_address']);
- echo "You can modify your profile <a href='?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "'>here</a> (keep this link as bookmark)<br><br>";
- print_formul($form);
- }
-
-} elseif ($_REQUEST['btnSubmit'] == 'View') {
-
- $file = get_file_from_id();
-
- if ($file) {
- print_formul_file($filename,true);
- }
-
-} elseif ($_REQUEST['btnSubmit'] == 'Delete') {
-
- $filename = get_file_from_id();
-
- if (!$filename) {
- return (0);
- }
-
- $form = load_formul($filename);
-
- if ($form['org_logo'] && file_exists($form['org_logo'])) {
- unlink($form['org_logo']);
- }
- if (file_exists($filename)) {
- unlink($filename);
- echo "Profile deleted";
- }
-
-} elseif ($_REQUEST['btnSubmit'] == 'Accept' && is_admin()) {
-
- $filename = get_file_from_id();
-
- if (!$filename) {
- return (0);
- }
-
- $form = load_formul($filename);
-
- $hide = $_REQUEST['hide'];
-
- if ($hide) {
- $form['visible']=0;
- } else {
- $form['visible']=1;
- }
- save_formul($form);
- echo $form['id'] . " is now " . ($hide?"un":"") . "visible";
- print_formul($form);
-
-} elseif ($_REQUEST['btnSubmit'] == 'Save') {
-
- $filename = get_file_from_id();
-
- if (!$filename) {
- return (0);
- }
-
- $form = get_formul();
-
- $form['filename'] = $filename;
- $form['id'] = $_REQUEST['id']; // id is clean
-// $form['visible'] = false;
-
- if (!$form['org_logo']) {
- $form_old = load_formul($filename);
- $form['org_logo'] = $form_old['org_logo'];
- }
-
- save_formul($form);
-
- echo "Your profile has been modified.<br>";
- print_formul($form);
-
-} elseif ($_REQUEST['btnSubmit'] == 'Admin' && is_admin()) {
-
-
- $pass = $_REQUEST['passwd']; // passwd is clean
- $waiting = $_REQUEST['waiting'];
-
- if ($waiting) {
- print '<a href="?page=testimonial&btnSubmit=Admin&passwd=' . $pass . '"> View all</a><br>';
- print "<h1>View all waiting testimonials</h1>";
- } else {
- print '<a href="?page=testimonial&btnSubmit=Admin&waiting=1&passwd=' . $pass . '"> View Waiting</a><br>';
- print "<h1>View all testimonials</h1>";
- }
-
- if ($handle = opendir($dat_dir)) {
- /* Ceci est la facon correcte de traverser un dossier. */
- while (false !== ($file = readdir($handle))) {
- if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
- $form = load_formul("$dat_dir/$file") ;
- // on affiche ceux qui sont en attente ou bien tous
- if (!$waiting || !$form['visible']) {
- print_formul($form);
- if ($form['visible']) {
- print "<a href=\"?page=testimonial&btnSubmit=Accept&hide=1&passwd=" . $pass . "&id=" . $form['id'] . "\"> Hide </a> | \n";
- } else {
- print "<a href=\"?page=testimonial&btnSubmit=Accept&passwd=" . $pass . "&id=" . $form['id'] . "\"> Accept </a> | \n";
- }
- print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $form['id'] . "\"> Modify </a> | \n";
- print "<a href=\"?page=testimonial&btnSubmit=AdminExport&passwd=" . $pass . "&id=" . $form['id'] . "\"> Export </a><br><br>\n";
-
- }
- }
- }
- closedir($handle);
- }
-
-} elseif (!$_REQUEST['btnSubmit'] || $_REQUEST['btnSubmit'] == 'ViewAll') {
-
- $limit = $_REQUEST['limit'];
- $offset = $_REQUEST['offset'];
-
- $limit = is_int($limit)?$limit:10;
- $offset = is_int($offset)?$limit:0;
-
- $admin = is_admin();
-
- if ($limit > 20) { $limit = 20 ;}
-
- echo "<a href='?page=testimonial&btnSubmit=Add'>Add a testimonial</a><br><br>";
-
- if ($handle = opendir($dat_dir)) {
- /* Ceci est la facon correcte de traverser un dossier. */
- $i = 0 ;
- while (false !== ($file = readdir($handle))) {
- if (preg_match("/profile.[a-z0-9\.]+/", $file)) {
- if ($i >= $offset && $i < ($offset + $limit)) {
- $i += print_formul_file("$dat_dir/$file",$admin);
- }
-
- if ($i > ($offset + $limit)) {
- break;
- }
- }
- }
- closedir($handle);
- }
-
-} elseif ($_REQUEST['btnSubmit'] == 'AdminExport' && is_admin()) {
-
- $file = get_file_from_id();
- if (!$file) {
- return 0;
- }
- $form = load_formul($file);
- if ($form) {
- export_form($form);
- }
-} else {
- print "Invalid btnSubmit<br>";
-}
-
-function export_form($formul)
-{
- global $country_lst, $org_type_lst, $org_industry_lst, $os_lst, $catalog_lst;
-
- $attribs = array('contact_name','email_address', 'org_name','title','website',
- 'hardware_comments','comments',
- 'publish_contact','publish_email', 'publish_orgname','org_size','redundant_setup',
- 'date','visible', 'support',
- 'number_fd','number_sd','month_gb','number_files','publish_orgsize','publish_website');
- print "<pre>\n";
- foreach ($attribs as $arr) {
- print "$arr = " . $formul[$arr] . "\n";
- }
-
- print "orgtype = " . $org_type_lst[$formul['orgtype_id']] . "\n";
- print "orgindustry = " . $org_industry_lst[$formul['orgindustry_id']] . "\n";
- print "bacula_version = " . $version_lst[$formul['bacula_version']] . "\n";
- print "country = " . $country_lst[$formul['country_id']] . "\n";
- print "ostype = " . $os_lst[$formul['ostype_id']] . "\n";
- print "catalog = " . $catalog_lst[$formul['catalog_id']] . "\n";
-
- print "<pre>\n";
-}
-
-function get_file_from_id()
-{
- global $dat_dir;
- $id = $_REQUEST['id'];
-
- if (!ereg('^[a-zA-Z0-9\.]+$',$id)) {
- return(0) ;
- }
-
- $filename="$dat_dir/profile.$id";
-
- if (!file_exists($filename)) {
- echo "Can't verify your id";
- return (0);
- }
-
- return $filename;
-}
-
-function send_email($id, $email)
-{
- // Your email address
- $from = 'kern@sibbald.com';
-// $from = 'eric@eb.homelinux.org';
-
- // The subject
- $subject = "[BACULA] New testimonial";
-
- // The message
- $message = "Hello,
-You can modify your new testimonial at http://www.bacula.org/?page=testimonial&btnSubmit=Modify&id=$id
-
-Best regards.
-";
-
- mail($email, $subject, $message, "From: Bacula WebMaster <$from>");
- mail($from, $subject, $message, "From: Bacula WebMaster <$from>");
- mail('eric@eb.homelinux.org', $subject, $message, "From: Bacula WebMaster <$from>");
-
- echo "The email has been sent for approval.<br/>";
-}
-
-function save_formul($form)
-{
- $fp = fopen($form['filename'], 'w');
- fwrite($fp, serialize($form));
- fclose($fp);
-}
-
-function get_formul()
-{
- global $dat_dir;
- $formul = array();
- $attribs = array('contact_name','email_address', 'org_name');
- foreach ($attribs as $arr) {
- if (!$_REQUEST[$arr]) {
- echo "Can't get $arr<br/>";
- return '';
- }
- $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@\n -]/', " ", $_REQUEST[$arr]);
- }
-
- $attribs = array('title','website','hardware_comments','comments');
- foreach ($attribs as $arr) {
- $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@ -]/', " ", $_REQUEST[$arr]);
- }
-
- $attribs = array('publish_contact','publish_email', 'publish_orgname', 'orgtype_id',
- 'orgindustry_id','org_size', 'publish_orgsize','publish_website', 'bacula_version',
- 'country_id','ostype_id', 'redundant_setup','number_fd','number_sd','support',
- 'month_gb','number_files','catalog_id');
- foreach ($attribs as $arr) {
- if (preg_match("/^[0-9]+$/", $_REQUEST[$arr])) {
- $formul[$arr] = $_REQUEST[$arr];
- }
- }
-
- $attribs = array('orgtype_id', 'orgindustry_id', 'org_size', 'country_id','bacula_version',
- 'catalog_id', 'ostype_id','number_fd','number_sd', 'month_gb','number_files');
- foreach ($attribs as $arr) {
- if (!$formul[$arr]) {
- echo "Can't get $arr<br/>";
- return '';
- }
- }
-
- if ($_FILES['org_logo']) {
- $token = uniqid(md5(rand()), true);
- $image = "upload/$token";
-
- if (preg_match("/(jpg|jpeg)$/i", $_FILES['org_logo']['name'])) {
- $image = "$image.jpg";
- } elseif (preg_match("/png$/i", $_FILES['org_logo']['name'])) {
- $image = "$image.png";
- } elseif (preg_match("/gif$/i", $_FILES['org_logo']['name'])) {
- $image = "$image.gif";
- } else {
- $image = '';
- }
- if ($image) {
- $ret=move_uploaded_file($_FILES['org_logo']['tmp_name'], $image);
- $formul['org_logo'] = $image;
- }
- }
- $formul['date'] = time();
- $formul['visible'] = false;
-
- return $formul;
-}
-
-function form_set_value($formul,$val)
-{
- echo "document.getElementById('$val').value = '" . $formul[$val] . "';\n";
-}
-
-function form_set_selection($formul,$val)
-{
- echo "document.getElementById('${val}_" . $formul[$val] . "').selected =true;\n";
-}
-
-// passwd file must exist in dat directory
-function is_admin()
-{
- global $dat_dir;
- $id = $_REQUEST['passwd'];
-
- if (!ereg('^[a-zA-Z]+$',$id)) {
- return(false) ;
- }
-
- if (file_exists("$dat_dir/$id")) {
- return true;
- } else {
- return false;
- }
-}
-
-function load_formul($filename)
-{
- if (!file_exists($filename)) {
- return array();
- }
-
- if (!filesize($filename) || filesize($filename) > 10*1024*1024) {
- return undef;
- }
- $fp = fopen($filename, 'r');
- $contents = fread ($fp, filesize ($filename));
- fclose ($fp);
-
- $formul = unserialize($contents);
- if (!is_array($formul)) {
- return undef;
- }
-
- return $formul;
-}
-
-function print_formul_file($filename, $admin) {
-
- $formul = load_formul($filename);
- if (!$formul) {
- return 0;
- }
-
- if (!$admin) {
- if (!$formul['visible']) {
- return 0;
- }
- } else {
- print "<a href=\"?page=testimonial&btnSubmit=Modify&id=" . $formul['id'] . "\">Modify</a><br>\n";
- }
-
- return print_formul($formul);
-}
-
-function print_formul($formul)
-{
- global $country_lst, $org_type_lst, $org_industry_lst, $os_lst,$catalog_lst;
-
- ?>
- <table width="80%">
- <td>
- <b><? echo ($formul['publish_orgname'])?$formul['org_name']:'N/A' ?></b><br>
- <table>
- <tr><td> Location: </td><td><? $a = $formul['country_id'] ; echo $country_lst[$a] ?> </td></tr>
- <tr><td> Organization Type: </td><td><? echo $org_type_lst[$formul['orgtype_id']] ?> </td></tr>
- <tr><td> Industry/Function: </td><td><? echo $org_industry_lst[$formul['orgindustry_id']] ?> </td></tr>
-
- <? if ($formul['publish_orgsize']) { ?>
- <tr><td> Organisation Size: </td><td><? echo $formul['org_size'] ?> </td></tr>
- <? } ?>
-
- <? if ($formul['publish_website']) { ?>
- <tr><td> Website: </td><td><? echo $formul['website'] ?> </td></tr>
- <? } ?>
-
- <? if ($formul['number_fd'] > 1) { ?>
- <tr><td> Number of fd: </td><td><? echo $formul['number_fd'] ?> </td></tr>
- <? } ?>
-
- <? if ($formul['month_gb'] > 1) { ?>
- <tr><td> GB/Month: </td><td><? echo $formul['month_gb'] ?> </td></tr>
- <? } ?>
-
- <tr><td> Comments: </td><td width='450'><i><? echo $formul['comments'] ?> </i></td></tr>
- <? if ($formul['publish_contact']) { ?>
- <tr align='right'><td></td><td><i><? echo $formul['contact_name'] ?> </i></td></tr>
- <? } ?>
- </table>
- </td>
- <td>
- <? if ($formul['org_logo']) { ?>
- <a href="<? echo $formul['org_logo'] ?>" ><img width='150' src="<? echo $formul['org_logo'] ?>"></a>
- <? } ?>
- </td>
- </table>
-<?
- return 1;
-}
-
-?>
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic">
- Testimonials
- </td>
-</tr>
-<tr>
- <td class="content">
- Below, you will find excerpts from email that users have sent us.
- The purpose is to give you some idea of what kinds of
- sites are running Bacula and how they are using it.
- These testimonials are used with permission of the author.
- </td>
-</tr>
-
-<tr>
- <td class="content">
- <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Norm Dressler - 2004/06/15 </h3>
- Bacula has been awesome for us. We used to use Ar**** but I
- have always hated the interface. And the cost was outrageous.
- Then I found bacula and wow! Everything in Ar**** and then
- some! The console is easy to use, easy to understand once you
- get the hang of it, and I usually don't have any problems
- restoring files! :)
- <br>
- I have 15+ machines I backup with Bacula
- with an autoloader, and I'm extremely happy with the product.
- Whenever someone asks me about what to use, I point them at
- Bacula.
- <p> Norm Dressler, Senior Network Architect</p>
- </td>
-</tr>
-
-<tr>
- <td class="content">
- <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Michael Scherer - 2005/02/09 </h3>
- Our former backup-system was ARGHserve running on NT4.
- Due to the fact that we replaced most of our servers with
- Linux machines we had to find some other solution.<br> At
- first we tried ARGHserve on Linux, without much comfort.
- Database updates took days to complete, the database
- itself grew enormously large, ... not really something
- you except from such an expensive piece of software.<br>
- I began the quest for a new backup-solution, testing
- almost anything I could find on Sourceforge and Freshmeat
- and finally decided to go with Bacula.<br> It's perfectly
- maintained by Kern and many others, is an (very) active
- project with good support through maillists and an
- irc-channel, which can be found on Freenode.<br>
- <br>
- Today we run Bacula on a SuSE based x86 machine with a
- 2.6 kernel, some RAID5-Systems and IBM Ultrium
- Tapelibrary. Without any issues and without more work
- than changing two tapes in the morning.<br>
- <br>
- Recoveries aren't complicated as well, you either choose
- a jobid to restore from or let Bacula find the correct
- jobid for a file or directory you need to recover. You
- mark everything you need, Bacula tells you which tapes it
- needs, done.<br>
- You don't even have to wait for any daemon to finish
- database updates for backuped files, you can start with
- the recovery right after the backup-job is done.
- Perfect. <br>
-
- <br>
- <p> Michael Scherer, some admin </p>
- </td>
-</tr>
-<tr>
- <td class="content">
- <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Ludovicz Strappazon - 2005/03/05</h3>
- I had previously used Veritas Netbackup, but it was really too expensive
- for our University. Bacula permitted us to buy a library. Now, we use
- Bacula since 10/2002 with an ADIC Scalar 24 library and LTO ultrium,
- without any problems. I think it can do anything Netbackup could do with our
- configuration. We backup seven Linux servers, one NT server, four
- Windows 2003 servers and a few XP workstations. Some of these servers
- are backed up across a firewall using ssh; some others are on a private
- network. We tried succesfully the disaster recovery procedure on Linux
- and had some good results in restoring Windows "from bare metal". What do I
- like in Bacula ? It is very flexible and reliable. With its light
- interface console, I can manage the backups from everywhere. A few words
- about the support : it is free but efficient. I don't have to cross a
- level 1, level 2 helpdesk to have some help, I never felt alone, and the
- bacula-users mailing list is a mix of courtesy and honest speech. At
- last, you don't need to be a big company to have your features requests
- heard.<br>
- Thanks to Kern Sibbald and the others who give so much work and time
- for this project.<br>
- <br>
- Ludovic Strappazon<br>
- University Marc Bloch de Strasbourg.<br>
- </td>
-</tr>
-
-<tr>
- <td class="content">
- <h3 style="padding: 5px; border-bottom: 1px dotted #002244"> Jeff Richards - 2006/08/26</h3>
- I used Bacula at my previous employer to backup: Linux, OpenBSD, Windows 2000,XP,2003, and AIX 5.1
- <br> <br>
- Bacula provided a solution when I had no budget for backup
- software. The Linux systems (about 30) acted as Tivoli (TMF)
- gateways. The Linux systems were commodity PCs, so when the IDE
- HDs failed it took hours (usually at least 4) to clean up the
- Tivoli environment and rebuild the failed gateway. Using Bacula
- and mkCDrec I cut that time down to under an hour, and most of
- that time was not spent doing anything except waiting for the
- restore to finish. I recovered 2 failed Linux systems with
- Bacula.
- <br>
- I would like to thank you and the entire Bacula team for an
- excellent piece of software.
- <br> <br>
- Jeff Richards<br>
- Consultant<br>
- </td>
-</tr>
-
-</table>
-
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-</tr>
-<tr>
- <td class="content">
- <p>
- <img src="images/1.39-wishlist-votes.png">
- </td>
-</tr>
-</table>
-
-<? require_once("inc/footer.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-<table>
-<tr>
- <td class="contentTopic">
- What is Bacula?
- </td>
-</tr>
-<tr>
- <td class="content">
-
-<b>Bacula</b> is a set of computer programs that permit you (or the
-system administrator) to manage backup, recovery, and verification of
-computer data across a network of computers of different kinds. In
-technical terms, it is a network Client/Server based backup program.
-Bacula is relatively easy to use and efficient, while offering many
-advanced storage management features that make it easy to find and
-recover lost or damaged files. Due to its modular design, Bacula is
-scalable from small single computer systems to systems consisting of
-hundreds of computers located over a large network.
-<h3>Who Needs Bacula?</h3>
-If you are currently using a program such as <b>tar</b>, <b>dump</b>, or
-<b>bru</b> to backup your computer data, and you would like a network
-solution, more flexibility, or catalog services, Bacula will most
-likely provide the additional features you want. However, if you are
-new to Unix systems or do not have offsetting experience with a sophisticated
-backup package, we do not recommend using Bacula as it is
-much more difficult to setup and use than <b>tar</b> or <b>dump</b>.
-<p>If you are running <b>Amanda</b> and would like a backup program that
-can write to multiple volumes (i.e. is not limited by your tape drive
-capacity), Bacula can most likely fill your needs. In addition,
-quite a number of our users report that Bacula is simpler to
-setup and use than other equivalent programs.
-<p>If you are
-currently using a sophisticated commercial package such as Legato
-Networker. ARCserveIT, Arkeia, or PerfectBackup+, you may be interested
-in Bacula, which provides many of the same features, and is free
-software available under the GNU Version 2 software license.
-
-<h3>Bacula Components or Services</h3>
-Bacula is made up of the following five major components or services:
-<p style="text-align: center; font-size: small">
- <img src="images/manual/bacula-applications.png" alt="" width="576" height="734"><br>
- thanks to Aristedes Maniatis for this graphic and the one below
-</p>
-<p>
-<ul>
-<li><a name="DirDef"></a>
- <b>Bacula Director</b> service consists of the program that
- supervises all the backup, restore, verify and archive operations.
- The system administrator uses the Bacula Director to schedule
- backups and to recover files. For more details see the <a
- href="rel-manual/director.html">Director Services Daemon Design Document</a>.
- The Director runs as a daemon or a service (i.e. in the background).
-</li>
-<li><a name="UADef"></a>
- <b>Bacula Console</b> services is the program that allows the
- administrator or user to communicate with the <b>Bacula Director</b>
- (see above). Currently, the Bacula Console is available in three
- versions. The first and simplest is to run the Console program in a
- shell window (i.e. TTY interface). Most system administrators will
- find this completely adequate. The second version is a GNOME GUI
- interface that for the moment (23 November 2003) is far from complete,
- but quite functional as it has most the capabilities of the shell
- Console. The third version is a wxWidgets GUI with an interactive file
- restore. It also has most the capabilities of the shell console,
- allows command completion with tabulation, and gives you instant
- help about the command you are typing. For more details see the
- <a href="rel-manual/console.html">Bacula Console Design Document</a>.
-</li>
-<li><a name="FDDef"></a>
- <b>Bacula File</b> services (or Client program) is the software
- program that is installed on the machine to be backed up. It is
- specific to the operating system on which it runs and is responsible
- for providing the file attributes and data when requested by the
- Director. The File services are also responsible for the file
- system dependent part of restoring the file attributes and data
- during a recovery operation. For more details see the <a
- href="rel-manual/file.html">File Services Daemon Design Document</a>. This
- program runs as a daemon on the machine to be backed up, and in some
- of the documentation, the File daemon is referred to as the Client
- (for example in Bacula's configuration file). In addition to
- Unix/Linux File daemons, there is a Windows File daemon (normally
- distributed in binary format). The Windows File daemon runs on
- all currently known Windows versions (95, 98, Me, NT, 2000, XP).
-</li>
-<li><a name="SDDef"></a>
- <b>Bacula Storage</b> services consist of the software programs that
- perform the storage and recovery of the file attributes and data to
- the physical backup media or volumes. In other words, the Storage daemon
- is responsible for reading and writing your tapes (or other
- storage media, e.g. files). For more details see the <a
- href="rel-manual/storage.html">Storage Services Daemon Design Document</a>.
- The Storage services runs as a daemon on the machine that has the
- backup device (usually a tape drive).
-</li>
-<li><a name="DBDefinition"></a>
- <b>Catalog</b> services are comprised of the software programs
- responsible for maintaining the file indexes and volume databases for
- all files backed up. The Catalog services permit the System
- Administrator or user to quickly locate and restore any desired
- file. The Catalog services sets Bacula apart from simple backup
- programs like tar and bru, because the catalog maintains a record
- of all Volumes used, all Jobs run, and all Files saved, permitting
- efficicient restoration and Volume management.
- Bacula currently supports three different databases, MySQL,
- PostgreSQL, and SQLite, one of which must be chosen when building
- <b>Bacula</b>. There also exists an Internal database, but it is no
- longer supported.
- <p>
- The three SQL databases currently supported (MySQL, PostgreSQL or SQLite)
- provide quite a number of features,
- including rapid indexing, arbitrary queries, and security. Although
- we plan to support other major SQL databases, the current
- Bacula implementation interfaces only to MySQL, PostgreSQL and SQLite.
- For more details see the <a href="rel-manual/catalog.html">Catalog Services
- Design Document</a>.
- <p>The RPMs for MySQL and PostgreSQL ship as part of the Linux RedHat release,
- or building it from the source is quite easy, see the
- <a href="rel-manual/mysql.html"> Installing and Configuring MySQL</a> chapter
- of this document for the details. For more information on MySQL,
- please see: <a href="http://www.mysql.com">www.mysql.com</a>.
- Or see the <a href="rel-manual/postgresql.html"> Installing and Configuring
- PostgreSQL</a> chapter of this document for the details. For more
- information on PostgreSQL, please see: <a
- href="http://www.postgresql.org">www.postgresql.org</a>.
- <p>Configuring and building SQLite is even easier. For the details
- of configuring SQLite, please see the <a href="rel-manual/sqlite.html">
- Installing and Configuring SQLite</a> chapter of this document.
-</li>
-<li><a name="MonDef"></a>
- <b>Bacula Monitor</b> services is the program that allows the
- administrator or user to watch current status of <b>Bacula Directors</b>,
- <b>Bacula File Daemons</b> and <b>Bacula Storage Daemons</b>
- (see above). Currently, only a GTK+ version is available, which
- works with Gnome and KDE (or any window manager that supports the
- FreeDesktop.org system tray standard).
-</li>
-</ul>
-To perform a successful save or restore, the following four daemons
-must be configured and running: the Director daemon, the File daemon,
-the Storage daemon, and MySQL, PostgreSQL or SQLite.
-
-<h3>Bacula Configuration</h3>
-In order for Bacula to understand your system, what clients you
-want backed up, and how, you must create a number of configuration
-files containing resources (or objects). The following presents an
-overall picture of this:
-<p style="text-align: center">
- <img src="images/manual/bacula-objects.png" alt="" width="576" height="734">
-</p>
-
-<h3>Conventions Used in this Document</h3>
-<b>Bacula</b> is in a state of evolution, and as a consequence,
-this manual will not always agree with the code. If an
-item in this manual is preceded by an asterisk (*), it indicates
-that the particular feature is not implemented. If it is preceded
-by a plus sign (+), it indicates that the feature may be partially
-implemented.
-<p>If you are reading this manual as supplied in a released version
-of the software, the above paragraph holds true. If you are reading
-the online version of the manual, <a href="/dev-manual">
-http://www.bacula.org/rel-manual</a>, please bear in mind that this version
-describes the current version in development (in the SVN) that may
-contain features not in the released version. Just the same,
-it generally lags behind the code a bit.
-<h3>Quick Start</h3>
-To get Bacula up and running quickly, we recommend that you first
-scan the Terminology section below, then quickly review the next chapter
-entitled <a href="rel-manual/state.html">The Current State of Bacula</a>, then the
-<a href="rel-manual/quickstart.html">Quick Start Guide to Bacula</a>, which will
-give you a quick overview of getting Bacula running. After
-which, you should proceed to the
-chapter on <a href="rel-manual/install.html"> Installing Bacula</a>, then <a
-href="rel-manual/configure.html">How to Configure Bacula</a>,
-and finally the chapter on <a href="rel-manual/running.html">
-Running Bacula</a>.
-
-<h3>Terminology</h3>
-To facilitate communication about this project, we provide here
-the definitions of the terminology that we use.
-<dl>
- <dt>Administrator</dt>
- <dd>The person or persons responsible for administrating the Bacula system.</dd>
-
- <dt>Backup</dt>
- <dd>We use the term <b>Backup</b> to refer to a Bacula Job that saves files. </dd>
-
- <dt>Bootstrap File</dt>
- <dd>The bootstrap file is an ASCII file
- containing a compact form of commands that allow Bacula or
- the stand-alone file extraction utility (<b>bextract</b>) to
- restore the contents of one or more Volumes, for example, the
- current state of a system just backed up. With a bootstrap file,
- Bacula can restore your system without a Catalog. You can
- create a bootstrap file from a Catalog to extract any file or
- files you wish.</dd>
-
- <dt>Catalog</dt>
- <dd>The Catalog is used to store summary information
- about the Jobs, Clients, and Files that were backed up and on
- what Volume or Volumes. The information saved in the Catalog
- permits the administrator or user to determine what jobs were
- run, their status as well as the important characteristics
- of each file that was backed up. The Catalog is an online resource,
- but does not contain the data for the files backed up. Most of
- the information stored in the catalog is also stored on the
- backup volumes (i.e. tapes). Of course, the tapes will also have
- a copy of the file in addition to the File Attributes (see below).
- <p>The catalog feature is one part of Bacula that distinguishes
- it from simple backup and archive programs such as <b>dump</b>
- and <b>tar</b>.
- </dd>
-
- <dt>Client</dt>
- <dd>In Bacula's terminology, the word Client
- refers to the machine being backed up, and it is synonymous
- with the File services or File daemon, and quite often, we
- refer to it as the FD. A Client is defined in a configuration
- file resource. </dd>
-
- <dt>Console</dt>
- <dd>The program that interfaces to the Director allowing
- the user or system administrator to control Bacula.</dd>
-
- <dt>Daemon</dt>
- <dd>Unix terminology for a program that is always present in
- the background to carry out a designated task. On Windows systems, as
- well as some Linux systems, daemons are called <b>Services</b>.</dd>
-
- <dt>Directive</dt>
- <dd>The term directive is used to refer to a statement
- or a record within a Resource in a configuration file that
- defines one specific thing. For example, the <b>Name</b> directive
- defines the name of the Resource.</dd>
-
- <dt>Director</dt>
- <dd>The main Bacula server daemon that schedules and directs all
- Bacula operations. Occassionally, we refer to the Director as DIR.</dd>
-
- <dt>Differential</dt>
- <dd>A backup that includes all files changed since the last
- Full save started. Note, other backup programs may define this differently.</dd>
-
- <dt>File Attributes</dt>
- <dd>The File Attributes are all the information
- necessary about a file to identify it and all its properties such as
- size, creation date, modification date, permissions, etc. Normally, the
- attributes are handled entirely by Bacula so that the user never
- needs to be concerned about them. The attributes do not include the
- file's data.
-
- <dt>File Daemon</dt>
- <dd>The daemon running on the client
- computer to be backed up. This is also referred to as the File
- services, and sometimes as the Client services or the FD.
-
- <dt><a name="FileSetDef"></a> FileSet</dt>
- <dd>A FileSet is a Resource contained in a configuration
- file that defines the files to be backed up. It consists
- of a list of included files or directories, a list of excluded files, and
- how the file is to be stored (compression, encryption, signatures).
- For more details, see the
- <a href="rel-manual/director.html#FileSetResource">FileSet Resource definition</a>
- in the Director chapter of this document.</dd>
-
- <dt>Incremental</dt>
- <dd>A backup that includes all files changed since the
- last Full, Differential, or Incremental backup started. It is normally
- specified on the <b>Level</b> directive within the Job resource
- definition, or in a Schedule resourc. </dd>
-
- <dt><a name="JobDef"></a>Job</dt>
- <dd>A Bacula Job is a configuration resource that defines
- the work that Bacula must perform to backup or restore a particular
- Client. It consists of the <b>Type</b> (backup, restore, verify,
- etc), the <b>Level</b> (full, incremental,...), the <b>FileSet</b>,
- and <b>Storage</b> the files are to be backed up (Storage device,
- Media Pool). For more details, see the
- <a href="rel-manual/director.html#JobResource">Job Resource definition</a>
- in the Director chapter of this document. </dd>
-
- <dt>Monitor</dt>
- <dd>The program that interfaces to the all the daemons
- allowing the user or system administrator to monitor Bacula status.</dd>
-
- <dt>Resource</dt>
- <dd>A resource is a part of a configuration file that
- defines a specific unit of information that is available to Bacula.
- For example, the <b>Job</b> resource defines all the properties of
- a specific Job: name, schedule, Volume pool, backup type, backup
- level, ...</dd>
-
- <dt>Restore</dt>
- <dd>A restore is a configuration resource that
- describes the operation of recovering a file (lost or damaged) from
- backup media. It is the inverse of a save, except that in most
- cases, a restore will normally have a small set of files to restore,
- while normally a Save backs up all the files on the system. Of
- course, after a disk crash, Bacula can be called upon to do
- a full Restore of all files that were on the system. </dd>
-
- <dt>Schedule</dt>
- <dd>A Schedule is a configuration resource that
- defines when the Bacula Job will be scheduled for
- execution. To use the Schedule, the Job resource will refer to
- the name of the Schedule. For more details, see the <a
- href="rel-manual/director.html#ScheduleResource">Schedule Resource
- definition</a> in the Director chapter of this document. </dd>
-
- <dt>Service</dt>
- <dd>This is Windows terminology for a <b>daemon</b> -- see
- above. It is now frequently used in Unix environments as well.</dd>
-
- <dt>Storage Coordinates</dt>
- <dd>The information returned from the
- Storage Services that uniquely locates a file on a backup medium. It
- consists of two parts: one part pertains to each file saved, and the
- other part pertains to the whole Job. Normally, this information is
- saved in the Catalog so that the user doesn't need specific knowledge
- of the Storage Coordinates. The Storage Coordinates include the
- File Attributes (see above) plus the unique location of the information on
- the backup Volume. </dd>
-
- <dt>Storage Daemon</dt>
- <dd>The Storage daemon, sometimes referred to as
- the SD, is the code that writes the attributes and data to a storage
- Volume (usually a tape or disk).</dd>
-
- <dt>Session</dt>
- <dd>Normally refers to the internal conversation between
- the File daemon and the Storage daemon. The File daemon opens a
- <b>session</b> with the Storage daemon to save a FileSet, or to restore
- it. A session has a one to one correspondence to a Bacula Job (see
- above). </dd>
-
- <dt>Verify</dt>
- <dd>A verify is a job that compares the current file
- attributes to the attributes that have previously been stored in the
- Bacula Catalog. This feature can be used for detecting changes to
- critical system files similar to what <b>Tripwire</b> does. One
- of the major advantages of using Bacula to do this is that
- on the machine you want protected such as a server, you can run
- just the File daemon, and the Director, Storage daemon, and Catalog
- reside on a different machine. As a consequence, if your server is
- ever compromised, it is unlikely that your verification database
- will be tampered with.
- <p>Verify can also be used to check that the most recent Job
- data written to a Volume agrees with what is stored in the Catalog
- (i.e. it compares the file attributes), *or it can check the
- Volume contents against the original files on disk. </dd>
-
- <dt>*Archive</dt>
- <dd>An Archive operation is done after a Save, and it
- consists of removing the Volumes on which data is saved from active
- use. These Volumes are marked as Archived, and many no longer be
- used to save files. All the files contained on an Archived Volume
- are removed from the Catalog. NOT YET IMPLEMENTED. </dd>
-
- <dt>*Update</dt>
- <dd>An Update operation causes the files on the remote
- system to be updated to be the same as the host system. This is
- equivalent to an <b>rdist</b> capability. NOT YET IMPLEMENTED.
- </dd>
-
- <dt>Retention Period</dt>
- <dd>There are various kinds of retention
- periods that Bacula recognizes. The most important are the
- <b>File</b> Retention Period, <b>Job</b> Retention Period, and the
- <b>Volume</b> Retention Period. Each of these retention periods
- applies to the time that specific records will be kept in the
- Catalog database. This should not be confused with the time that
- the data saved to a Volume is valid. <p>The File Retention Period
- determines the time that File records are kept in the catalog
- database. This period is important because the volume of the
- database File records by far use the most storage space in the
- database. As a consequence, you must ensure that regular
- "pruning" of the database file records is done. (See
- the Console <b>retention</b> command for more details on this
- subject). <p>The Job Retention Period is the length of time that
- Job records will be kept in the database. Note, all the File
- records are tied to the Job that saved those files. The File
- records can be purged leaving the Job records. In this case,
- information will be available about the jobs that ran, but not the
- details of the files that were backed up. Normally, when a Job
- record is purged, all its File records will also be purged. <p>The
- Volume Retention Period is the minimum of time that a Volume will be
- kept before it is reused. Bacula will normally never
- overwrite a Volume that contains the only backup copy of a file.
- Under ideal conditions, the Catalog would retain entries for all
- files backed up for all current Volumes. Once a Volume is
- overwritten, the files that were backed up on that Volume are
- automatically removed from the Catalog. However, if there is a very
- large pool of Volumes or a Volume is never overwritten, the Catalog
- database may become enormous. To keep the Catalog to a manageable
- size, the backup information should removed from the Catalog after
- the defined File Retention Period. Bacula provides the
- mechanisms for the catalog to be automatically pruned according to
- the retention periods defined. </dd>
-
- <dt>Scan</dt>
- <dd>A Scan operation causes the contents of a Volume or a
- series of Volumes to be scanned. These Volumes with the information
- on which files they contain are restored to the Bacula Catalog.
- Once the information is restored to the Catalog, the files contained
- on those Volumes may be easily restored. This function is
- particularly useful if certain Volumes or Jobs have exceeded
- their retention period and have been pruned or purged from the
- Catalog. Scanning data from Volumes into the Catalog is done
- by using the <b>bscan</b> program. See the <a href="rel-manual/progs.html#bscan">
- bscan section</a> of the Bacula Utilities Chapter of this manual
- for more details.</dd>
-
- <dt>Volume</dt>
- <dd>A Volume is an archive unit, normally a tape or
- a named disk file where Bacula stores the data from one or more
- backup jobs. All Bacula Volumes have a software label written to
- the Volume by Bacula so that it identify what Volume it is really
- reading. (Normally there should be no confusion with disk files,
- but with tapes, it is easy to mount the wrong one).</dd>
-</dl>
-
-<h3>What Bacula is Not</h3>
-<b>Bacula</b> is a backup, restore and verification program and is not a
-complete disaster recovery system in itself, but it can be a key part
-of one if you plan carefully and follow the instructions included in the <a
-href="rel-manual/rescue.html"> Disaster Recovery</a> Chapter of this manual.
-<p>
-With proper planning, as mentioned in the Disaster Recovery chapter
-<b>Bacula</b> can be a central component of your disaster recovery
-system. For example, if you have created an emergency boot disk, a
-Bacula Rescue disk to save the current partitioning information of your
-hard disk, and maintain a complete Bacula backup, it is possible to
-completely recover your system from "bare metal".
-<p>
-If you have used the <b>WriteBootstrap</b> record in your job or some
-other means to save a valid bootstrap file, you will be able to use it
-to extract the necessary files (without using the catalog or manually
-searching for the files to restore).
-
-<h3>Interactions Between the Bacula Services</h3>
-The following block diagram shows the typical interactions
-between the Bacula Services for a backup job. Each block
-represents in general a separate process (normally a daemon).
-In general, the Director oversees the flow of information. It also
-maintains the Catalog.
-<p style="text-align: center">
- <img src="images/manual/flow.jpeg" border="0" alt="Interactions between Bacula Services" width="480" height="370">
-</p>
- </td>
-</tr>
-</table>
-
-<? require_once("inc/header.php"); ?>
+++ /dev/null
-<? require_once("inc/header.php"); ?>
-TODO!
-<? require_once("inc/footer.php"); ?>