]> git.alrj.org Git - brioche.git/commitdiff
* Add the "dow" script, update documentation.
authorAmand Tihon <amand.tihon@alrj.org>
Thu, 8 Jan 2009 10:33:23 +0000 (11:33 +0100)
committerAmand Tihon <amand.tihon@alrj.org>
Fri, 9 Jan 2009 14:27:34 +0000 (15:27 +0100)
* Prepare for GnuPG.
* Support no compression (may be useful with gnupg, later).

README
README.html
TODO
brioche
brioche.conf
changelog
dow [new file with mode: 0644]

diff --git a/README b/README
index 21e198e908c1fd3a4c2698d9ecb26c997c039193..9652a13f3a4777e6311221e4a130956835a70ef8 100644 (file)
--- a/README
+++ b/README
@@ -1,13 +1,14 @@
 .. HTML version generated with rst2html -t README > README.html
 
-==============
+.. |date| date:: %b %e, %Y
+
 Brioche Backup
-==============
+~~~~~~~~~~~~~~
 
 :Author:    Amand Tihon
 :Contact:   <amand.tihon@alrj.org>
-:Version:   1.1
-:Date:      Jan 5th, 2008
+:Version:   1.2
+:Date:      |date|
 :Copyright: GNU GPL, see copyright file.
 
 .. sectnum::
@@ -113,8 +114,8 @@ USAGE_WARN
 
 COMPRESS
   This directive allows to specify the compression method to apply to the
-  archives. Possible values are "gz", "bz2" and "lzma". **Warning** : lzma may
-  not be available with older versions of GNU tar.
+  archives. Possible values are "none", "gz", "bz2" and "lzma".
+  **Warning** : lzma may not be available with older versions of GNU tar.
 
 TAR_OPTS
   Additionnal options that you may want to pass to tar. A typical value could
@@ -133,6 +134,18 @@ SNAPSHOT_SIZE
   Set the size of the snapshot volume. The same suffix than for lvcreate(8)
   are available.
 
+USE_GPG
+  When set to "yes", Brioche will encrypt the archives with GnuPG.
+  See the `Encryption with GnuPG`_ section below for a detailed explanation on
+  how to use GnuPG with Brioche.
+
+GPG_KEY
+  The identifier of the public GnuPG key to use when encrypting the archives.
+  This is the key that will be needed in case of restore.
+
+GPG_PASSPHRASE
+  The passphrase for the GnuPG private key used to encrypt the archives.
+
 USE_FTP
   If set to "yes", Brioche will upload the backups on an FTP server.
   See the `Using FTP`_ section for more information about this feature.
@@ -211,6 +224,10 @@ previous example would lead to the following structure: ::
 +--------------------------------------------------------------------------+
 
 
+Encryption with GnuPG
+---------------------
+
+
 Using FTP
 ---------
 
@@ -272,12 +289,13 @@ If all is fine, it can be added in the system crontab. Here's a suggestion for
 weekly full backup on Sunday, with differential during the weekdays: ::
 
   # Daily incremental backup
-  30  3  *  *  1-6  /usr/local/bin/brioche > /var/log/backup.`date "+%a"`.log 2>&1
+  30  3  *  *  1-6  /usr/local/bin/brioche > /var/log/backup.`dow`.log 2>&1
   # Weekly full backup on Sunday
-  30  3  *  *  0  /usr/local/bin/brioche -f > /var/log/backup.`date "+%a"`.log 2>&1
+  30  3  *  *  0  /usr/local/bin/brioche -f > /var/log/backup.`dow`.log 2>&1
 
 The output of the script will be saved in /var/log/backup.DOW.log with DOW
 being the abbreviated day of the week (see man date(1) for the format).
+The ``dow`` bash script is provided alongside Brioche.
 
 
 Bug reporting
index 160a9829ee4136f226d260c4e27f99b621b5bf6c..30a9f596839bcad7f9cdb30a77ef9ef8b9a71706 100644 (file)
@@ -6,7 +6,7 @@
 <meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
 <title>Brioche Backup</title>
 <meta name="author" content="Amand Tihon" />
-<meta name="date" content="Jan 5th, 2008" />
+<meta name="date" content="Jan  9, 2009" />
 <meta name="copyright" content="GNU GPL, see copyright file." />
 <style type="text/css">
 
@@ -298,9 +298,9 @@ ul.auto-toc {
 <tr><th class="docinfo-name">Contact:</th>
 <td>&lt;<a class="reference external" href="mailto:amand.tihon&#64;alrj.org">amand.tihon&#64;alrj.org</a>&gt;</td></tr>
 <tr><th class="docinfo-name">Version:</th>
-<td>1.1</td></tr>
+<td>1.2</td></tr>
 <tr><th class="docinfo-name">Date:</th>
-<td>Jan 5th, 2008</td></tr>
+<td>Jan  9, 2009</td></tr>
 <tr><th class="docinfo-name">Copyright:</th>
 <td>GNU GPL, see copyright file.</td></tr>
 </tbody>
@@ -317,12 +317,13 @@ ul.auto-toc {
 <li><a class="reference internal" href="#using-brioche" id="id7">6&nbsp;&nbsp;&nbsp;Using Brioche</a><ul class="auto-toc">
 <li><a class="reference internal" href="#configuration" id="id8">6.1&nbsp;&nbsp;&nbsp;Configuration</a></li>
 <li><a class="reference internal" href="#defining-backups" id="id9">6.2&nbsp;&nbsp;&nbsp;Defining backups</a></li>
-<li><a class="reference internal" href="#using-ftp" id="id10">6.3&nbsp;&nbsp;&nbsp;Using FTP</a></li>
-<li><a class="reference internal" href="#running-brioche" id="id11">6.4&nbsp;&nbsp;&nbsp;Running Brioche</a></li>
+<li><a class="reference internal" href="#encryption-with-gnupg" id="id10">6.3&nbsp;&nbsp;&nbsp;Encryption with GnuPG</a></li>
+<li><a class="reference internal" href="#using-ftp" id="id11">6.4&nbsp;&nbsp;&nbsp;Using FTP</a></li>
+<li><a class="reference internal" href="#running-brioche" id="id12">6.5&nbsp;&nbsp;&nbsp;Running Brioche</a></li>
 </ul>
 </li>
-<li><a class="reference internal" href="#bug-reporting" id="id12">7&nbsp;&nbsp;&nbsp;Bug reporting</a></li>
-<li><a class="reference internal" href="#references" id="id13">8&nbsp;&nbsp;&nbsp;References</a></li>
+<li><a class="reference internal" href="#bug-reporting" id="id13">7&nbsp;&nbsp;&nbsp;Bug reporting</a></li>
+<li><a class="reference internal" href="#references" id="id14">8&nbsp;&nbsp;&nbsp;References</a></li>
 </ul>
 </div>
 <div class="section" id="abstract">
@@ -409,8 +410,8 @@ Make sure there's enough free space on the device where REPODIR is located.</dd>
 beyond the given threshold. The value must be an integer.</dd>
 <dt>COMPRESS</dt>
 <dd>This directive allows to specify the compression method to apply to the
-archives. Possible values are &quot;gz&quot;, &quot;bz2&quot; and &quot;lzma&quot;. <strong>Warning</strong> : lzma may
-not be available with older versions of GNU tar.</dd>
+archives. Possible values are &quot;none&quot;, &quot;gz&quot;, &quot;bz2&quot; and &quot;lzma&quot;.
+<strong>Warning</strong> : lzma may not be available with older versions of GNU tar.</dd>
 <dt>TAR_OPTS</dt>
 <dd>Additionnal options that you may want to pass to tar. A typical value could
 be <tt class="docutils literal"><span class="pre">&quot;--one-file-system</span> <span class="pre">-S&quot;</span></tt>. The first option will skip all other
@@ -424,6 +425,15 @@ sparse files.</dd>
 <dt>SNAPSHOT_SIZE</dt>
 <dd>Set the size of the snapshot volume. The same suffix than for lvcreate(8)
 are available.</dd>
+<dt>USE_GPG</dt>
+<dd>When set to &quot;yes&quot;, Brioche will encrypt the archives with GnuPG.
+See the <a class="reference internal" href="#encryption-with-gnupg">Encryption with GnuPG</a> section below for a detailed explanation on
+how to use GnuPG with Brioche.</dd>
+<dt>GPG_KEY</dt>
+<dd>The identifier of the public GnuPG key to use when encrypting the archives.
+This is the key that will be needed in case of restore.</dd>
+<dt>GPG_PASSPHRASE</dt>
+<dd>The passphrase for the GnuPG private key used to encrypt the archives.</dd>
 <dt>USE_FTP</dt>
 <dd>If set to &quot;yes&quot;, Brioche will upload the backups on an FTP server.
 See the <a class="reference internal" href="#using-ftp">Using FTP</a> section for more information about this feature.</dd>
@@ -498,8 +508,11 @@ in the backup if you've included the device in your <tt class="docutils literal"
 </tbody>
 </table>
 </div>
+<div class="section" id="encryption-with-gnupg">
+<h2>6.3&nbsp;&nbsp;&nbsp;Encryption with GnuPG</h2>
+</div>
 <div class="section" id="using-ftp">
-<h2>6.3&nbsp;&nbsp;&nbsp;Using FTP</h2>
+<h2>6.4&nbsp;&nbsp;&nbsp;Using FTP</h2>
 <p>With the help of lftp, Brioche is able to store an history of backups on an FTP
 server. This is mainly usefull when no other distant repository is available.
 If possible, consider using an CIFS, NFS, sshfs or any other kind of remote
@@ -536,7 +549,7 @@ etc)</li>
 </ul>
 </div>
 <div class="section" id="running-brioche">
-<h2>6.4&nbsp;&nbsp;&nbsp;Running Brioche</h2>
+<h2>6.5&nbsp;&nbsp;&nbsp;Running Brioche</h2>
 <p>Brioche understands the following arguments:</p>
 <table class="docutils option-list" frame="void" rules="none">
 <col class="option" />
@@ -559,12 +572,13 @@ will gracefully fall back and do a full backup if none is available.</p>
 weekly full backup on Sunday, with differential during the weekdays:</p>
 <pre class="literal-block">
 # Daily incremental backup
-30  3  *  *  1-6  /usr/local/bin/brioche &gt; /var/log/backup.`date &quot;+%a&quot;`.log 2&gt;&amp;1
+30  3  *  *  1-6  /usr/local/bin/brioche &gt; /var/log/backup.`dow`.log 2&gt;&amp;1
 # Weekly full backup on Sunday
-30  3  *  *  0  /usr/local/bin/brioche -f &gt; /var/log/backup.`date &quot;+%a&quot;`.log 2&gt;&amp;1
+30  3  *  *  0  /usr/local/bin/brioche -f &gt; /var/log/backup.`dow`.log 2&gt;&amp;1
 </pre>
 <p>The output of the script will be saved in /var/log/backup.DOW.log with DOW
-being the abbreviated day of the week (see man date(1) for the format).</p>
+being the abbreviated day of the week (see man date(1) for the format).
+The <tt class="docutils literal"><span class="pre">dow</span></tt> bash script is provided alongside Brioche.</p>
 </div>
 </div>
 <div class="section" id="bug-reporting">
@@ -584,7 +598,7 @@ as possible in your report.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2009-01-06 15:56 UTC.
+Generated on: 2009-01-09 14:26 UTC.
 
 </div>
 </body>
diff --git a/TODO b/TODO
index 7034459b8c741266cfb9d55b00599fc15e854aa9..591346de46922861b5b21aa8113769d82f07b550 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,3 +8,4 @@ Brioche to-do list, in random order.
 * Implement hooks, in various parts of the script, that would allow to run
   external commands (for instance, to freeze a database just before making a
   snapshot).
+* Support GnuPG to encrypt the files
diff --git a/brioche b/brioche
index 8e0597af7eb4dd503e769cd8da7402fd4a9cd88c..8e7e6322be1a26a7251f2afa900b2eaf3aee88cc 100755 (executable)
--- a/brioche
+++ b/brioche
@@ -361,6 +361,10 @@ case "$COMPRESS" in
   lzma)
     COMPRESS_OPT="--lzma"
     ;;
+  none)
+    COMPRESS_OPT=""
+    COMPRESS=""
+    ;;
   *)
     summary "Unknown compression method: ${COMPRESS}. Falling back to gzip."
     COMPRESS="gz"
index fd82863ddf9dd09fe16b323a2e31f05ce17758f2..39fa9d3a721018786f00b303dd085192f4d66bf2 100644 (file)
@@ -18,7 +18,8 @@ REPODIR="/backup"
 USAGE_WARN="80"
 
 # COMPRESS: What kind of compression should tar use.
-# Can be "gz", "bz2" or "lzma". Make sure your version of tar understands it.
+# Can be "none", "gz", "bz2" or "lzma". Make sure your version of tar
+# understands lzma if you want to use it.
 COMPRESS="gz"
 
 # TAR_OPTS: Additionnal options to the tar invocation.
@@ -35,6 +36,15 @@ SNAPSHOT_NAME="brioche-snapshot"
 # automatically, rendering the backup unusable.
 SNAPSHOT_SIZE="5G"
 
+# USE_GPG: Encrypt all the tar archives with GnuPG
+USE_GPG="no"
+
+# GPG_KEY: The *target* GnuPG public key to use
+GPG_KEY="12345678"
+
+# GPG_PASSPHRASE: The passphrase for the backup private key
+GPG_PASSPHRASE="This is the backup passphrase"
+
 # USE_FTP: Mirror the local backup directory on a remote FTP
 USE_FTP="yes"
 
index 9fbf98fe64244d684dad51d7b390a35c335aa038..5f7b908a7d8687bb267713048bdb40d04aaf884d 100644 (file)
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+brioche 1.2
+  [ Amand Tihon]
+  
+
 brioche 1.1
 
   [ Amand Tihon ]
@@ -14,7 +18,7 @@ brioche 1.1
     - Some cosmetic changes.
     - Renamed briochetab to briochetab.example.
 
- -- Amand Tihon <amand.tihon@alrj.org>  Mon, 6 Jan 2008 17:00:00 +0100
+ -- Amand Tihon <amand.tihon@alrj.org>  Tue, 6 Jan 2008 17:00:00 +0100
 
 brioche 1.0
 
diff --git a/dow b/dow
new file mode 100644 (file)
index 0000000..fa57508
--- /dev/null
+++ b/dow
@@ -0,0 +1,16 @@
+#! /bin/bash
+
+# This script simply prints the abbreviated weekday name, using the C locale
+# and without line feed.
+#
+# Written by Amand Tihon <amand.tihon@alrj.org> for the Brioche backup script.
+# This script is Public Domain.
+#
+# A possible use is to generate daily logfiles names, like with
+# ... > /var/log/something.`dow`.log
+#
+# Note that if you intend to use it like this from your crontab, it should be
+# placed in a directory present in the limited PATH set by cron, like /usr/bin.
+
+export LC_ALL=C
+echo -n `date "+%a"`