<?xml version="1.0" encoding="iso-8859-1"?>
        <?xml-stylesheet type="text/css" href="http://www.miek.nl/blog/"?>
<rss version="2.0"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title>Filed under: rdup | Miek</title>
<atom:link href="http://www.miek.nl/blog/archives/rdup/index-rss.xml" rel="self" type="application/rss+xml" />
<link>http://www.miek.nl/blog</link>
<description>Thoughts on (technical) stuff</description>
<dc:language>en-us</dc:language>
<dc:creator>Miek Gieben</dc:creator>
<dc:date>2012-02-04T04:15:11+01:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />

<item>
<link>http://www.miek.nl/blog/archives/2011/02/20/rdup_1_1_11/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2011/02/20/rdup_1_1_11/index.html</guid>
<title>rdup 1.1.11</title>
<dc:date>2011-02-20T15:15:41+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup</dc:subject>
<description><![CDATA[<p>A new version of <code>rdup</code> has been released.</p>

<ul>
<li>Polish</li>
<li><code>rdup-up</code>: added <code>-q</code> option. Be quiet when chown
fails even when root (handy for backups on <code>sshfs</code>)</li>
</ul>

<p><a href="http://www.miek.nl/projects/rdup/rdup-1.1.11.tar.bz2">Download 1.1.11</a></p>]]></description>

</item>
<item>
<link>http://www.miek.nl/blog/archives/2010/10/24/rdup_1_1_8_released/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2010/10/24/rdup_1_1_8_released/index.html</guid>
<title>rdup 1.1.8 released</title>
<dc:date>2010-10-24T09:53:51+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup</dc:subject>
<description><![CDATA[<p>I've released a new version of rdup. This is a bugfix release:</p>

<pre><code>24 Oct 2010: 1.1.8 Miek Gieben &lt;rdup@miek.nl&gt;
   * rdup: Check for two more I/O errors when reading files
   * rdup: Permission fix for AIX (Crispin Boylan)
   * autoconf: Fix dirfd detection on mac OS X (still does not work)
</code></pre>

<ul>
<li><a href="http://www.miek.nl/projects/rdup/rdup-1.1.8.tar.bz2">Download 1.1.8</a></li>
<li><a href="http://www.miek.nl/projects/rdup/">Project Page</a></li>
</ul>]]></description>

</item>
<item>
<link>http://www.miek.nl/blog/archives/2010/06/23/rdup_1_1_7/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2010/06/23/rdup_1_1_7/index.html</guid>
<title>rdup 1.1.7</title>
<dc:date>2010-06-23T09:31:45+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup</dc:subject>
<description><![CDATA[<p>A new version of <code>rdup</code> is out. This is a bugfix release: </p>

<ul>
<li>Named pipes (see <code>mkfifo(1)</code>) are now created by <code>rdup-up</code>.</li>
<li>Assorted cleanups</li>
</ul>

<p><a href="http://www.miek.nl/projects/rdup/rdup-1.1.7.tar.bz2">Download 1.1.7</a></p>]]></description>

</item>
<item>
<link>http://www.miek.nl/blog/archives/2010/04/14/rdup_1_1_5/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2010/04/14/rdup_1_1_5/index.html</guid>
<title>rdup 1.1.5</title>
<dc:date>2010-04-14T13:05:12+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup</dc:subject>
<description><![CDATA[<p>And another version is out. This version only has a small
compile fix. This <em>somehow</em> slipped through when I released 1.1.4.</p>

<p><a href="http://www.miek.nl/projects/rdup/rdup-1.1.5.tar.bz2">Download 1.1.5</a></p>]]></description>

</item>
<item>
<link>http://www.miek.nl/blog/archives/2010/04/05/rdup_1_1_4/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2010/04/05/rdup_1_1_4/index.html</guid>
<title>rdup 1.1.4</title>
<dc:date>2010-04-05T08:56:37+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup</dc:subject>
<description><![CDATA[<p>Another small update to rdup. This release fixes some smaller bugs and
all <code>BUGBUG</code>s in the source have been cleaned up. The documentation
also received some polish.</p>

<pre><code>04 Apr 2010: 1.1.4 Miek Gieben &lt;rdup@miek.nl&gt;
* re-touch timestamp after the backup is made when -a is used,
  otherwise it is done before the the backup
* spring cleaning, remove/clean BUGBUGs and some dead code and
  polish the documentation a bit
* revert changes in mkpath.c to make FreeBSD happy
* fix hardlinks in tar/pax output (they must come last)
</code></pre>

<p><a href="http://www.miek.nl/projects/rdup/rdup-1.1.4.tar.bz2">Download 1.1.4</a> or
<a href="http://www.miek.nl/projects/rdup/index.html">see the project page</a>.</p>]]></description>

</item>
<item>
<link>http://www.miek.nl/blog/archives/2010/03/23/rdup_1_1_3/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2010/03/23/rdup_1_1_3/index.html</guid>
<title>rdup 1.1.3 </title>
<dc:date>2010-03-23T19:31:48+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup</dc:subject>
<description><![CDATA[<p>And
<a href="http://www.miek.nl/projects/rdup/rdup-1.1.3.tar.bz2">rdup-1.1.3</a> 
is released. It is a small bugfix release which fixes
the <code>-a</code> switch (restore atime) in <code>rdup</code> and adds the switch to
<code>rdup-simple</code>.</p>]]></description>

</item>
<item>
<link>http://www.miek.nl/blog/archives/2010/03/16/backups_met_rdup/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2010/03/16/backups_met_rdup/index.html</guid>
<title>Backups met rdup</title>
<dc:date>2010-03-16T18:54:49+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup, dutch</dc:subject>
<description><![CDATA[<p>Dit is een Nederlandstalige <em>howto</em> over hoe je backups kunt maken
met <a href="http://www.miek.nl/projects/rdup">rdup</a> &mdash; waarbij gezegd
moet worden dat ik de auteur van <code>rdup</code> ben. <code>rdup</code> is geen <em>point</em>
en <em>click</em> applicatie, 't is bedoelt als een powertool voor mensen die
(meer) controle willen over hun backups.</p>

<p>Wat is <code>rdup</code>?</p>

<blockquote>
  <p><code>rdup</code> is een platform voor backups. Het genereert een lijst van files die moeten
worden gebackupped. Verder levert het de tools om deze lijst te verwerken.
Het delegeert encryptie, compressie, transport en format-conversie naar andere 
programmas op een echte Unix manier.</p>

<p><a href="http://www.nicehacks.org/archive/rdup">nicehacks.org</a></p>
</blockquote>

<p>Of met andere woorden: </p>

<blockquote>
  <p><code>rdup</code> is de eerste backup tool die geen backups maakt!</p>
</blockquote>

<p>Eerst een (semi)waarschuwing, als je "gewoon" je data van machine A naar
B wilt kopieren en verder niks geavanceerders nodig hebt (encryptie,
compressie of <em>whatever</em>), dan wil je waarschijnlijk
<a href="http://samba.anu.edu.au/rsync/">rsync</a> of <code>rsnapshot</code> gaan gebruiken. </p>

<p>Goed, als je nog leest, dan wil je waarschijnlijk meer geavanceerde
backups maken dan je tot nu toe hebt gaan. Met <code>rdup</code> kun je:</p>

<ul>
<li>alle bestanden laten converteren, denk aan encryptie, maar elk Unix
filter kan hiervoor gebruikt worden (rev, sort, grep, gzip, etc.);</li>
<li>pad encryptie, oftewel <code>/home/miekg</code> wordt iets als
<code>/Xyfgs==/maAXX==</code> in je backup;</li>
<li>remote storage; bewaar je backup offsite;</li>
<li>verschillende output formaten: tar, pax of files op disk.</li>
</ul>

<p>In dit artikeltje wil ik het hebben over:</p>

<ul>
<li>Installatie;</li>
<li>Backups met <code>rdup-simple</code>;</li>
<li>Remote backup;</li>
<li>Restore.</li>
</ul>

<h1>Installatie</h1>

<p>We gaan hier <code>rdup</code> zelf even compileren, daarvoor heb je wel wat
extra pakketten nodig.  Op een Debian/Ubuntu machine:</p>

<pre><code># apt-get install libglib2.0-0 libglib2.0-dev libpcre3-dev libpcre3 \
libarchive-dev libarchive1 mcrypt automake autoconf gcc libc6-dev
</code></pre>

<p>Dan <code>rdup</code> downloaden vanaf
<a href="http://www.miek.nl/projects/rdup/rdup.tar.bz2">miek.nl/projects/rdup/rdup.tar.bz2</a>.
Je krijgt dan automatische de laatste versie, nu <code>rdup-1.1.2</code>. Nu
uitpakken, compileren en installeren:</p>

<pre><code>$ tar xvf rdup-1.1.2.tar.bz2
$ cd rdup-1.1.2
$ ./configure &amp;&amp; make
# make install
</code></pre>

<p>Als alles goed gegaan is heb je nu rdup geinstalleerd in <code>/usr/local</code>,
en zou <code>/usr/local/bin/rdup -V</code> moeten werken en:</p>

<pre><code>rdup 1.1.2
</code></pre>

<p>weer geven. <code>rdup</code> zit ook in de meeste distributies, maar dan is 
je installatie niet altijd up to date en er zijn de laatste tijd nogal
wat wijzingen geweest. Je kunt ook het GIT repository uit checken,
zie daarvoor <a href="http://www.miek.nl/projects/rdup/">miek.nl/projects/rdup</a>.</p>

<h1>Backups maken</h1>

<p><code>rdup</code> bestaat uit een 3-tal commando's: </p>

<ul>
<li><code>rdup</code>: dit zoekt uit wat er gebackupped moet worden;</li>
<li><code>rdup-tr</code>: transformeer rdup output naar iets anders (tar, pax, ...).
In deze howto zullen we hiermee vooralsnog weinig doen;</li>
<li><code>rdup-up</code>: update een bestaande directory met een nieuwe backup.</li>
</ul>

<p>Verder zit er een hulp script dat een aantal zaken makkelijker <em>kan</em>
maken, dit script heet <code>rdup-simple</code> en is een wrapper rond de drie
genoemde commando's. Het werkt als volgt:</p>

<pre><code>$ /usr/local/bin/rdup-simple ~ /backup/
</code></pre>

<p>Maakt een backup van je homedir (<code>~</code>) naar <code>/backup/</code> waar <code>rdup-simple</code>
een datum structuur aanmaakt, je krijgt dus iets te zien als 201003/15
als je op 15 maart 2010 een backup maakt. </p>

<p>Met de <code>-z</code> vlag van <code>rdup-simple</code> wordt de hele backup gezipped. Met
<code>-k KEYFILE</code> worden alle files gecodeerd met de sleutel die in de
file <code>KEYFILE</code> staat. Deze vlaggen kunnen ook gecombineerd worden:</p>

<pre><code>$ echo "mijn sleutel" &gt; KEY
$ /usr/local/bin/rdup-simple -z -k KEY ~ /backup
</code></pre>

<p>geeft je een gecomprimeerde <em>en</em> gecodeerde backup in <code>/backup</code>:</p>

<pre><code> $ file /backup/201003/15/home/miekg/bin/cgo
 /backup/201003/15/home/miekg/bin/cgo: mcrypt 2.5 encrypted
 data, algorithm: rijndael-128, keysize: 32 bytes, mode: cbc,
</code></pre>

<p>Inderdaad gecodeerd. Ook maar even controleren of het gzipped is. Eerst
decoderen:</p>

<pre><code> $ mcrypt -d -f KEY &lt; /backup/201003/15/home/miekg/bin/cgo &gt; /tmp/cgo.plain 
 $ file /tmp/cgo.plain  
 /tmp/cgo.plain: gzip compressed data, from Unix, last modified: Sun Feb  7 12:03:36 2010
</code></pre>

<p>Ja, die is dus ook gezipped; <code>rdup-simple</code> zal altijd eerst comprimeren
en dan coderen.</p>

<h1>Going places</h1>

<p>Als je gewoon lokaal een backup maakt die niet gecodeerd is, kun
je net zo goed <code>rsync</code> of <code>rsnapshot</code> gebruiken. Het wordt pas
leuk als je <em>jouw</em> backup bij iemand anders wilt neerzetten en 
dan natuurlijk gecodeerd <em>en</em> eventueel ook met pad-encryptie.
Deze functionaliteit is ook in <code>rdup-simple</code> ingebouwd.</p>

<p>Met:</p>

<pre><code>$ rdup-simple ~ ssh://user@remotehost/backup/mijnhost
</code></pre>

<p>stuur je een backup van je home directory naar remotehost in
de directory <code>/backup/mijnhost</code>. Die backup staat daar zonder
encryptie en dat kan natuurlijk niet, dus:</p>

<pre><code>$ echo "mijn geheime sleutel" &gt; KEY  # voor de file encryptie
$ echo "pad sleutel12345" &gt; PADKEY   # pad encryptie, precies 16 lang
$ rdup-simple -z -k KEY -X PADKEY ~ \
ssh://user@remotehost/backup/encryptedhost
</code></pre>

<p>Nu krijgen we dus een backup die gecodeerd is plus waarin elk
pad gecodeerd is <em>en</em> waarin de files gecomprimeerd zijn. Dit
is dus absoluut niet te lezen voor buitenstaanders, en ook
niet meer voor jezelf als de encryptie sleutels kwijt raakt! De
backup ziet er dan ongeveer zo uit:</p>

<pre><code>$ ls -Rl /backup/encryptedhost
/backup/encryptedhost/201003/16:
drwxr-xr-x 3 miekg miekg 4.0K Mar 16 11:29 MaSchL_1t1U6LCJMQ5OdKg\=\=/
/backup/encryptedhost/201003/16/MaSchL_1t1U6LCJMQ5OdKg==:
-rwxr-xr-x 1 miekg miekg  397 Feb 20  2009 0Z0qU5amjVCNA0oadhW3Uw\=\=*
-rwxr-xr-x 2 miekg miekg 1.3K Feb 20  2009 2FFibrYPg_uAkEuN3Ff0tg\=\=*
-rwxr-xr-x 1 miekg miekg  557 Apr 13  2009 doxnpTxs3ImH__swNVZLMeSigknQ7JiWlJYYGu54Foo\=*
lrwxrwxrwx 1 miekg miekg   24 Mar 16 11:29 iZgUeeB4vURP7wIST_JXlw\=\= -&gt; 2FFibrYPg_uAkEuN3Ff0tg\=\=*
</code></pre>

<p>Dat die laatste file is een symlink is, is zo'n beetje het enige dat te
onderscheiden is.</p>

<h1>Terug zetten backup</h1>

<p>Ik geloof in het <a href="http://nl.wikipedia.org/wiki/KISS-principe">KISS</a>
principe en dus maakt <code>rdup-simple</code> alleen maar backups, er zit
zelfs geen support in om oude backups op te ruimen, want daar hebben
we al een andere tool voor (<code>rm -rf</code>). Het terug zetten van een
backup is feitelijk een omgekeerde backup maken. We grijpen 
dan terug op de <code>rdup</code> commando's. </p>

<p>Laten we de backup die
we gemaakt hebben met <code>/usr/local/bin/rdup-simple -z -k KEY ~ /backup</code>
eens terug zetten naar een directory <code>/tmp/restore</code>.</p>

<pre><code>$ rdup -Pmcrypt,-d,-f,KEY,-q -Pgzip,-d,-c /dev/null \
/backup/201003/15/home/miekg | rdup-up -t /tmp/restore
</code></pre>

<blockquote>
  <p>Apropos: dit is bijna <em>identiek</em> aan hoe <code>rdup-simple</code> de pipeline
samenstelt voor de backup...</p>
</blockquote>

<p>We laten <code>rdup</code> hier alle bestanden uit de backup directory
oplepelen (<code>rdup /dev/null /backup/....</code>) <em>en</em> laten <code>rdup</code> deze
eerst door <code>mcrypt -d -f KEY -q</code> sturen, in de commando regel hierboven
is dat:</p>

<pre><code>-Pmcrypt,-d,-f,KEY,-q
</code></pre>

<p>En <em>daarna</em> nog een keer door <code>gzip -d -c</code>, met:</p>

<pre><code>-Pgzip,-d,-c
</code></pre>

<p>Dit wordt dan allemaal opgevangen door <code>rdup-up</code> en die zet het
in <code>/tmp/restore</code> neer. Nu krijg je in je restore directory wel
het hele backup pad (<code>tmp/backup/201003/16/home/miekg</code>) terug, dus
de files waar het om gaat staan vrij "diep". Gelukkig kun je 
hier om heen werken door de <code>-s N</code> vlag te gebruiken van <code>rdup-up</code> deze
sloopt <code>N</code> pad elementen uit je restore, dus met</p>

<pre><code>$ rdup -Pmcrypt,-d,-f,KEY,-q -Pgzip,-d,-c /dev/null \
/backup/201003/15/home/miekg | rdup-up -t -s 5 /tmp/restore
</code></pre>

<p>Wordt <code>/tmp/backup/201003/16/home</code> (5 slashes) van het pad
afgesnoept en staat de restore gelijk onder <code>/tmp/restore</code>. Je zou 
in dit geval <em>zelfs</em> <code>-r /tmp/backup/201003/16/home/miekg</code> kunnen
gebruiken, welke niet slashes telt maar gewoon dat pad-deel eraf sloopt.</p>

<h1>Meer info</h1>

<p>Er is nog wel meer te vertellen over <code>rdup</code>, maar ik wil het hierbij
laten en eventueel nog een artikel erover schrijven. Heb je nog
vragen en/of opmerkingen dan kun je
direct naar mij <a href="http://www.miek.nl/about">mailen</a> of kijken op
de <a href="http://miek.nl/projects/rdup">rdup pagina</a>.</p>]]></description>

</item>
<item>
<link>http://www.miek.nl/blog/archives/2010/03/14/rdup_1_1_2/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2010/03/14/rdup_1_1_2/index.html</guid>
<title>rdup 1.1.2.</title>
<dc:date>2010-03-14T15:29:30+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup</dc:subject>
<description><![CDATA[<p>Just released: a new and improved 
<a href="http://www.miek.nl/projects/rdup">rdup</a> version.</p>

<p><a href="http://www.miek.nl/projects/rdup/rdup-1.1.2.tar.bz2">rdup-1.1.2.tar.bz2</a>.</p>]]></description>

</item>
<item>
<link>http://www.miek.nl/blog/archives/2010/03/02/rdup_1_1_1/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2010/03/02/rdup_1_1_1/index.html</guid>
<title>rdup 1.1.1</title>
<dc:date>2010-03-02T19:52:08+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup</dc:subject>
<description><![CDATA[<p>A new month, a new rdup release.</p>

<p>This is a bugfix release, with the following ChangeLog:</p>

<p>2 Mar 2010: 1.1.1 Miek Gieben <a href="&#x6D;&#x61;&#x69;&#x6C;&#x74;&#x6F;:&#114;&#x64;&#x75;&#x70;&#64;&#109;&#x69;&#101;k&#46;&#x6E;&#x6C;">&#114;&#x64;&#x75;&#x70;&#64;&#109;&#x69;&#101;k&#46;&#x6E;&#x6C;</a></p>

<ul>
<li>tests: Skip gpg test when gpg is not found (Tom)</li>
<li>rdup: Rename strmode() to rdup_strmode for FreeBSD (Charlie Kester)</li>
<li>rdup: Dont descend when toplevel directory is a symlink (same behavoir
as Gnu tar) (Reported by Charlie Kester)</li>
<li>rdup: reap our childeren with waitpid() (Oliver Dain)</li>
<li>build: Building fix on rpm distros (SuSE/Fedora) (Sven Hartrumpf)</li>
<li>build: add --enable-debug to built debug build</li>
</ul>

<p><a href="http://www.miek.nl/projects/rdup/rdup-1.1.1.tar.bz2">Quick download</a>
and <a href="http://www.miek.nl/projects/rdup11/">project page</a></p>]]></description>

</item>
<item>
<link>http://www.miek.nl/blog/archives/2010/01/27/rdup_1_1_0/index.html</link>
<guid isPermaLink="true">http://www.miek.nl/blog/archives/2010/01/27/rdup_1_1_0/index.html</guid>
<title>rdup 1.1.0</title>
<dc:date>2010-01-27T19:21:28+01:00</dc:date>
<dc:creator>Miek Gieben</dc:creator>
<dc:subject> rdup</dc:subject>
<description><![CDATA[<p>Maybe I'm marketing this to death, but I've released
<a href="http://www.miek.nl/projects/rdup11/">rdup version 1.1.0</a>
a couple of days ago.</p>

<p>It should rock! :-) Further details can be found on
the <a href="http://www.miek.nl/projects/rdup11/">temporary project page</a>.</p>]]></description>

</item>
</channel>
</rss>

