]> git.sur5r.net Git - bacula/docs/commitdiff
Add new files
authorKern Sibbald <kern@sibbald.com>
Wed, 14 Oct 2009 16:15:06 +0000 (18:15 +0200)
committerKern Sibbald <kern@sibbald.com>
Wed, 14 Oct 2009 16:15:06 +0000 (18:15 +0200)
1  2 
docs/home-page/de/pages/testimonial.php
docs/home-page/en/pages/testimonial.php
docs/home-page/es/pages/testimonial.php
docs/manuals/en/concepts/newfeatures.tex

index c25aeb2049a05dc7194e22d3d6455c08df20b750,a3f62216bbc24eb34d50e80c9719de8af403753c..fa1879a035e1cd551f75ccc47c1ef2c565432c12
@@@ -20,12 -20,12 +20,19 @@@ $org_type_lst = array
  
  $version_lst = array(
         'empty'   => "SELECT ONE",
++<<<<<<< HEAD
++=======
+        '206'   => "3.0.x",
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
         '200'   => "1.36.x",
         '201'   => "1.38.x",
         '202'   => "2.0.x",
         '203'   => "2.2.x",
         '206'   => "2.4.x",
++<<<<<<< HEAD
 +       '206'   => "3.0.x",
++=======
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
         '204'   => "GIT master version"
  );
  
@@@ -209,11 -209,12 +216,19 @@@ if ($_REQUEST['action'] == 'Add' or $_R
  
  <script type="text/javascript" language="JavaScript">
  
++<<<<<<< HEAD
 +function validate_testimonial (form) {
++=======
+ function validate_testimonial () {
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
      var alertstr = '';
      var invalid  = 0;
      var invalid_fields = new Array();
      var ok;
++<<<<<<< HEAD
++=======
+     var form = document.forms['form1'];
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
      // email: standard text, hidden, password, or textarea box
      var email = form.elements['email_address'].value;
      if (email == null || ! email.match(/^[\w\-\+\._]+\@[a-zA-Z0-9][-a-zA-Z0-9\.]*\.[a-zA-Z]+$/)) {
      }
      var number = form.elements['orgtype_id'].value;
      if (number == null || ! number.match(/^[0-9]+$/)) {
++<<<<<<< HEAD
 +        alertstr += '-  Choose one of the "Organization type" options\n';
++=======
+         alertstr += '- Choose one of the "Organization type" options\n';
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
          invalid_fields.push('orgtype_id');
          invalid++;
      } 
      }
      var ostype = form.elements['ostype_id'].value;
      if (ostype == null || ! ostype.match(/^[0-9]+$/)) {
++<<<<<<< HEAD
 +        alertstr += '-  Choose one of the "Director OS" field\n';
++=======
+         alertstr += '- Choose one of the "Director OS" field\n';
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
          invalid_fields.push('ostype_id');
          invalid++;
      }
      var catalog = form.elements['catalog_id'].value;
      if (catalog == null || ! catalog.match(/^[0-9]+$/)) {
++<<<<<<< HEAD
 +        alertstr += '-  Choose one of the "Catalog type" field\n';
 +        invalid_fields.push('catalog_id');
 +        invalid++;
 +    }
 +    var number = form.elements['number_fd'].value;
 +    if (number == null || ! number.match(/^[0-9,\.]+$/)) {
 +        alertstr += '-  Invalid entry for the "Number of Client" field\n';
++=======
+         alertstr += '- Choose one of the "Catalog type" field\n';
+         invalid_fields.push('catalog_id');
+         invalid++;
+     }
+     var comments = form.elements['comments'].value;
+     if (comments != null && comments.match(/http:\/\//)) {
+         alertstr += '- Invalid entry for the "Comments" field, we disallow spam url\n';
+         invalid_fields.push('comments');
+         invalid++;
+     }
+     comments = form.elements['hardware_comments'].value;
+     if (comments != null && comments.match(/http:\/\//)) {
+         alertstr += '- Invalid entry for the "Hardware comments" field, we disallow spam url\n';
+         invalid_fields.push('hardware_comments');
+         invalid++;
+     }
+     var number = form.elements['number_fd'].value;
+     if (number == null || ! number.match(/^[0-9,\.]+$/)) {
+         alertstr += '- Invalid entry for the "Number of Client" field\n';
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
          invalid_fields.push('number_fd');
          invalid++;
      } 
      number = form.elements['number_sd'].value;
      if (number == null || ! number.match(/^[0-9,\.]+$/)) {
++<<<<<<< HEAD
 +        alertstr += '-  Invalid entry for the "Number of Storage" field\n';
++=======
+         alertstr += '- Invalid entry for the "Number of Storage" field\n';
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
          invalid_fields.push('number_sd');
          invalid++;
      } 
      number = form.elements['number_dir'].value;
++<<<<<<< HEAD
 +    if (number == null || ! number.match(/^[0-9,\.]+$/)) {
 +        alertstr += '-  Invalid entry for the "Number of Director" field\n';
++=======
+     if (number == null || ! number.match(/^[0-9,\.]+$/) || number > 100) {
+         alertstr += '- Invalid entry for the "Number of Director" field\n';
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
          invalid_fields.push('number_dir');
          invalid++;
      } 
      number = form.elements['month_gb'].value;
      if (number == null || ! number.match(/^[0-9,\.]+$/)) {
++<<<<<<< HEAD
 +        alertstr += '-  Invalid entry for the "Number GB/month" field\n';
++=======
+         alertstr += '- Invalid entry for the "Number GB/month" field\n';
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
          invalid_fields.push('month_gb');
          invalid++;
      } 
      number = form.elements['number_files'].value;
      if (number == null || ! number.match(/^[0-9,\.]+$/)) {
++<<<<<<< HEAD
 +        alertstr += '-  Invalid entry for the "File number" field\n';
 +        invalid_fields.push('number_files');
 +        invalid++;
 +    } 
++=======
+         alertstr += '- Invalid entry for the "File number" field\n';
+         invalid_fields.push('number_files');
+         invalid++;
+     }
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
      if (invalid > 0 || alertstr != '') {
          if (! invalid) invalid = 'The following';   // catch for programmer error
          alert(''+invalid+' error(s) were encountered with your submission:'+'\n\n'
@@@ -562,7 -575,7 +627,11 @@@ Nics
  <?
   if ($_REQUEST['action'] == 'Modify') {
    echo "<input type='hidden' title='testimonial id' id='id' name='id' class='ItemValue' value=''>";
++<<<<<<< HEAD
 +  echo "<input type='submit' name='action' class='ItemValue' onclick='return validate_testimonial(this);' value='Save'>";
++=======
+   echo "<input type='submit' name='action' class='ItemValue' onclick='return validate_testimonial();' value='Save'>";
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
    echo "<input type='submit' name='action' class='ItemValue' onclick='confirm(\"Are you sure ?\");' value='Delete'><br>";
    echo "<input type='hidden' name='page' class='ItemValue' value='testimonial'><br>";
  
@@@ -900,8 -913,23 +969,26 @@@ function get_formul(
          $attribs = array('title','website','hardware_comments','comments')            ;
          foreach ($attribs as $arr) {
                  $formul[$arr] = preg_replace('/[^a-zA-Z0-9!\.?\:\/,;_()@\n -]/', " ", $_REQUEST[$arr]);
++<<<<<<< HEAD
++=======
+         }
+         /* Disallow http:// links into comments field */
+         $m = array();
+         preg_match('/http:\/\//', $_REQUEST['comments'], $m);
+         if (sizeof($m) > 2) {
+            return '';
+         }
+         $m = array();
+         preg_match('/http:\/\//', $_REQUEST['hardware_comments'], $m);
+         if (sizeof($m) > 2) {
+            return '';
+         }
+         /* Disallow when number of dir too big or > number of fd */
+         if (intval($_REQUEST['number_dir']) > 100 || 
+             intval($_REQUEST['number_dir']) > intval($_REQUEST['number_fd'])) {
+            return '';
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
          }
          $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',
index c25aeb2049a05dc7194e22d3d6455c08df20b750,a3f62216bbc24eb34d50e80c9719de8af403753c..01c1588e1ea9c46b9392c16fe4a907db7d3fb5cc
@@@ -25,7 -26,6 +26,10 @@@ $version_lst = array
         '202'   => "2.0.x",
         '203'   => "2.2.x",
         '206'   => "2.4.x",
++<<<<<<< HEAD
 +       '206'   => "3.0.x",
++=======
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
         '204'   => "GIT master version"
  );
  
index c25aeb2049a05dc7194e22d3d6455c08df20b750,a3f62216bbc24eb34d50e80c9719de8af403753c..01c1588e1ea9c46b9392c16fe4a907db7d3fb5cc
@@@ -25,7 -26,6 +26,10 @@@ $version_lst = array
         '202'   => "2.0.x",
         '203'   => "2.2.x",
         '206'   => "2.4.x",
++<<<<<<< HEAD
 +       '206'   => "3.0.x",
++=======
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
         '204'   => "GIT master version"
  );
  
index 947522908371a45f7f3197321df6a020d3446ef1,d657c04981c04fd50948a3e37f45881a4375c9ae..e8925bda0222f09bd8452c95b9e7235e5761674a
  
  %%
  
++<<<<<<< HEAD
 +\chapter{Released Version 3.0.3}
 +There are no new features.  This version simply fixes a number of
 +bugs found in version 3.0.2 during the onging development process.
 +
 +\chapter{New Features in Released Version 3.0.2}
 +
++=======
+ \chapter{New Features in 3.1.4 (Development Version}
+ \label{NewFeaturesChapter}
+ This chapter presents the new features that are currently under development
+ in the 3.1.x versions to be released as Bacula version 3.2.0 sometime in
+ late 2009 or early 2010.
+ \section{Maximum concurent jobs for Devices}
+ \label{sec:maximumconcurentjobdevice}
+ {\bf Maximum Concurrent Jobs} is a new Device directive in the Storage
+ Daemon configuration permits setting the maximum number of Jobs that can
+ run concurrently on a specified Device.  Using this directive, it is
+ possible to have different Jobs using multiple drives, because when the
+ Maximum Concurrent Jobs limit is reached, the Storage Daemon will start new
+ Jobs on any other available compatible drive.  This facilitates writing to
+ multiple drives with multiple Jobs that all use the same Pool.
+ \section{Restore from Multiple Storage Daemons}
+ \index[general]{Restore}
+ Previously, you were able to restore from multiple devices in a single Storage
+ Daemon. Now, Bacula is able to restore from multiple Storage Daemons. For
+ example, if your full backup runs on a Storage Daemon with an autochanger, and
+ your incremental jobs use another Storage Daemon with lots of disks, Bacula
+ will switch automatically from one Storage Daemon to an other within the same
+ Restore job.
+ You must upgrade your File Daemon to version 3.1.3 or greater to use this feature.
+ This project was funded by Bacula Systems with the help of Equiinet.
+ \section{File Deduplication using Base Jobs}
+ 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.
+ 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.
+ A new Job directive \texttt{Base=Jobx, Joby...} permits to specify the list of
+ files that will be used during Full backup as base.
+ \begin{verbatim}
+ Job {
+    Name = BackupLinux
+    Level= Base
+    ...
+ }
+ Job {
+    Name = BackupZog4
+    Base = BackupZog4, BackupLinux
+    Accurate = yes
+    ...
+ }
+ \end{verbatim}
+ In this example, the job \texttt{BackupZog4} will use the most recent version
+ of all files contained in \texttt{BackupZog4} and \texttt{BackupLinux}
+ jobs. Base jobs should have run with \texttt{level=Base} to be used.
+ By default, Bacula will compare permissions bits, user and group fields,
+ modification time, size and the checksum of the file to choose between the
+ current backup and the BaseJob file list. You can change this behavior with the
+ \texttt{BaseJob} FileSet option. This option works like the \texttt{verify=}
+ one, that is described in the \ilink{FileSet}{FileSetResource} chapter.
+ \begin{verbatim}
+ FileSet {
+   Name = Full
+   Include = {
+     Options {
+        BaseJob  = pmugcs5
+        Accurate = mcs5
+        Verify   = pin5
+     }
+     File = /
+   }
+ }
+ \end{verbatim}
+ This project was funded by Bacula Systems.
+ \section{Accurate Fileset options}
+ \label{sec:accuratefileset}
+ In previous versions, the accurate code used the file creation and
+ modification times to determine if a file was modified or not. Now you can specify
+ which attributes to use (time, size, checksum, permission, owner, group,
+ \dots), similar to the Verify options.
+ \begin{verbatim}
+ FileSet {
+   Name = Full
+   Include = {
+     Options {
+        Accurate = mcs5
+        Verify   = pin5
+     }
+     File = /
+   }
+ }
+ \end{verbatim}
+ \begin{description}  
+ \item {\bf i}
+   compare the inodes  
+   
+ \item {\bf p}
+   compare the permission bits  
+   
+ \item {\bf n}
+   compare the number of links  
+   
+ \item {\bf u}
+   compare the user id  
+   
+ \item {\bf g}
+   compare the group id  
+   
+ \item {\bf s}
+   compare the size  
+   
+ \item {\bf a}
+   compare the access time  
+   
+ \item {\bf m}
+   compare the modification time (st\_mtime)  
+   
+ \item {\bf c}
+   compare the change time (st\_ctime)  
+   
+ \item {\bf d}
+   report file size decreases  
+   
+ \item {\bf 5}
+   compare the MD5 signature  
+   
+ \item {\bf 1}
+   compare the SHA1 signature  
+ \end{description}
+ \textbf{Important note:} If you decide to use checksum in Accurate jobs,
+ the File Daemon will have to read all files even if they normally would not
+ be saved.  This increases the I/O load, but also the accuracy of the
+ deduplication.  By default, Bacula will check modification/creation time
+ and size.
+ \section{Bvfs API}
+ \label{sec:bvfs}
+ To help developers of restore GUI interfaces, we have added new \textsl{dot
+   commands} that permit browsing the catalog in a very simple way.
+ \begin{itemize}
+ \item \texttt{.bvfs\_update [jobid=x,y,z]} This command is required to update the
+   Bvfs cache in the catalog. You need to run it before any access to the Bvfs
+   layer.
+ \item \texttt{.bvfs\_lsdirs jobid=x,y,z path=/path | pathid=101} This command
+   will list all directories in the specified \texttt{path} or
+   \texttt{pathid}. Using \texttt{pathid} avoids problems with character
+   encoding of path/filenames.
+ \item \texttt{.bvfs\_lsfiles jobid=x,y,z path=/path | pathid=101} This command
+   will list all files in the specified \texttt{path} or \texttt{pathid}. Using
+   \texttt{pathid} avoids problems with character encoding.
+ \end{itemize}
+ You can use \texttt{limit=xxx} and \texttt{offset=yyy} to limit the amount of
+ data that will be displayed.
+ \begin{verbatim}
+ * .bvfs_update jobid=1,2
+ * .bvfs_update
+ * .bvfs_lsdir path=/ jobid=1,2
+ \end{verbatim}
+ \section{Testing your tape drive}
+ \label{sec:btapespeed}
+ To determine the best configuration of your tape drive, you can run the new
+ \texttt{speed} command available in the \texttt{btape} program.
+ This command can have the following arguments:
+ \begin{itemize}
+ \item[\texttt{file\_size=n}] Specify the Maximum File Size for this test
+   (between 1 and 5GB). This counter is in GB.
+ \item[\texttt{nb\_file=n}] Specify the number of file to be written. The amount
+   of data should be greater than your memory ($file\_size*nb\_file$).
+ \item[\texttt{skip\_zero}] This flag permits to skip tests with constant
+   data.
+ \item[\texttt{skip\_random}] This flag permits to skip tests with random
+   data.
+ \item[\texttt{skip\_raw}] This flag permits to skip tests with raw access.
+ \item[\texttt{skip\_block}] This flag permits to skip tests with Bacula block
+   access.
+ \end{itemize}
+ \begin{verbatim}
+ *speed file_size=3 skip_raw
+ btape.c:1078 Test with zero data and bacula block structure.
+ btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes.
+ ++++++++++++++++++++++++++++++++++++++++++
+ btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0)
+ btape.c:406 Volume bytes=3.221 GB. Write rate = 44.128 MB/s
+ ...
+ btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 43.531 MB/s
+ btape.c:1090 Test with random data, should give the minimum throughput.
+ btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes.
+ +++++++++++++++++++++++++++++++++++++++++++
+ btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0)
+ btape.c:406 Volume bytes=3.221 GB. Write rate = 7.271 MB/s
+ +++++++++++++++++++++++++++++++++++++++++++
+ ...
+ btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 7.365 MB/s
+ \end{verbatim}
+ When using compression, the random test will give your the minimum throughput
+ of your drive . The test using constant string will give you the maximum speed
+ of your hardware chain. (cpu, memory, scsi card, cable, drive, tape).
+ You can change the block size in the Storage Daemon configuration file.
+ \section{New {\bf Block Checksum} Device directive}
+ You may now turn off the Block Checksum (CRC32) code
+ that Bacula uses when writing blocks to a Volume.  This is
+ done by adding:
+ \begin{verbatim}
+ Block Checksum = no
+ \end{verbatim}
+ doing so can reduce the Storage daemon CPU usage slightly.  It
+ will also permit Bacula to read a Volume that has corrupted data.
+ The default is {\bf yes} -- i.e. the checksum is computed on write
+ and checked on read. 
+ We do not recommend to turn this off particularly on older tape
+ drives or for disk Volumes where doing so may allow corrupted data
+ to go undetected.
+ \section{New Bat Features}
+ \subsection{Media information view}
+ By double-clicking on a volume (on the Media list, in the Autochanger content
+ or in the Job information panel), you can access a detailed overview of your
+ Volume. (cf \ref{fig:mediainfo}.)
+ \begin{figure}[htbp]
+   \centering
+   \includegraphics[width=13cm]{\idir bat11.eps}  
+   \caption{Media information}
+   \label{fig:mediainfo}
+ \end{figure}
+ \subsection{Job information view}
+ By double-clicking on a Job record (on the Job run list or in the Media
+ information panel), you can access a detailed overview of your Job. (cf
+ \ref{fig:jobinfo}.)
+ \begin{figure}[htbp]
+   \centering
+   \includegraphics[width=13cm]{\idir bat12.eps}  
+   \caption{Job information}
+   \label{fig:jobinfo}
+ \end{figure}
+ \subsection{Autochanger content view}
+ By double-clicking on a Storage record (on the Storage list panel), you can
+ access a detailed overview of your Autochanger. (cf \ref{fig:jobinfo}.)
+ \begin{figure}[htbp]
+   \centering
+   \includegraphics[width=13cm]{\idir bat13.eps}  
+   \caption{Autochanger content}
+   \label{fig:achcontent}
+ \end{figure}
+ \section{Console timeout option}
+ You can now use the -u option of bconsole to set a timeout for each command.
+ \chapter{New Features in Released Version 3.0.2}
++>>>>>>> ce16a41849ac5434c59158bfb03ec94c11334ef8
  This chapter presents the new features added to the
  Released Bacula Version 3.0.2.