<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>n8blog &#187; Backup-Bouncer</title>
	<atom:link href="http://www.n8gray.org/blog/category/projects/backup-bouncer/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.n8gray.org</link>
	<description>distraction in action</description>
	<lastBuildDate>Thu, 10 Dec 2009 04:36:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Backup Bouncer 0.2.0</title>
		<link>http://www.n8gray.org/blog/2009/09/15/backup-bouncer-020/</link>
		<comments>http://www.n8gray.org/blog/2009/09/15/backup-bouncer-020/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 01:49:59 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Backup-Bouncer]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/?p=179</guid>
		<description><![CDATA[I just wrapped up Backup Bouncer 0.2.0, with the major change being that it now builds on Snow Leopard.  Get it at the usual place.  BB used to include a program called ctool that I had thought about using but never actually used.  This ctool program was unmaintained and didn&#8217;t build on [...]]]></description>
			<content:encoded><![CDATA[<p>I just wrapped up Backup Bouncer 0.2.0, with the major change being that it now builds on Snow Leopard.  Get it at <a href="http://www.n8gray.org/code/backup-bouncer/">the usual place</a>.  BB used to include a program called ctool that I had thought about using but never <strong>actually</strong> used.  This ctool program was unmaintained and didn&#8217;t build on SnoLep, so I finally just wiped it out.</p>

<p>All is not quite well on the Snow Leopard front, however.  The rsync that Apple ships (at least the one in 10.6.1) has a bug.  When copying a <span class="caps">FIFO </span>it attempts to copy the <strong>contents</strong> of the <span class="caps">FIFO. </span> If you know what a <span class="caps">FIFO </span>is, you know why this is bad.  So rsync hangs in the <code>90-fifo</code> test of the test suite.  When running from a terminal you can work around this by just hitting Control-C, which will cause the copy to stop and the other copiers to be tested.  If you want to avoid the hang you can rename <code>tests.d/90-fifo.test</code> to <code>tests.d/90-fifo.test.disabled</code> or whatever floats your boat.  I haven&#8217;t done that already because, well, a hang is arguably a valid test result!</p>

<p>Oh, and I also fixed a bug with the <span class="caps">BSD </span>flags test.  If you care about that stuff you should re-test.</p>

<p>One other interesting tidbit &#8212; I changed the &#8220;lots of metadata&#8221; test to lock the file.  This trips up some copiers that duplicate the &#8220;locked&#8221; status before setting up other metadata, causing the other metadata to be lost.</p>

<p>Much to my shame, I had an e-mail upheaval and I can&#8217;t find the names of the individuals who reported the <span class="caps">BSD </span>flags bug and the &#8220;early locking&#8221; phenomenon.  If that was you, please drop me a message and I&#8217;ll give you the credit you deserve.</p>

<p><strong><span class="caps">UPDATE</span>:</strong>  It was Rob Kennedy who reported the <span class="caps">BSD </span>flags bug and the &#8220;early locking&#8221; phenomenon.  I hadn&#8217;t thought to search through my blog comments.  Silly me!  Thanks a lot for those tips, Rob!</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2009%2F09%2F15%2Fbackup-bouncer-020%2F&amp;linkname=Backup%20Bouncer%200.2.0"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2009/09/15/backup-bouncer-020/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Backup Bouncer and Time Machine</title>
		<link>http://www.n8gray.org/blog/2008/06/09/backup-bouncer-and-time-machine/</link>
		<comments>http://www.n8gray.org/blog/2008/06/09/backup-bouncer-and-time-machine/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 00:18:36 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Backup-Bouncer]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/?p=174</guid>
		<description><![CDATA[Oh Mama!  Another Backup Bouncer post!  You might think that I, the author of Backup Bouncer, the crusader for end-user verification of backup tools, would have run BB on Time Machine at some point.  If so, you have seriously underestimated my laziness.  But this morning I got an e-mail from a [...]]]></description>
			<content:encoded><![CDATA[<p>Oh Mama!  Another Backup Bouncer post!  You might think that I, the author of Backup Bouncer, the crusader for end-user verification of backup tools, would have run BB on Time Machine at some point.  If so, you have seriously underestimated my laziness.  But this morning I got an e-mail from a user asking for help testing TM with <span class="caps">BB, </span>and this finally spurred me to do the test myself.</p>

<p>Here&#8217;s how you test Time Machine with Backup Bouncer:</p>



<pre>$ mkdir ~/bb
# We need to trick BB into thinking this is a volume it created
$ touch ~/bb/bbouncer-vol
$ sudo bbouncer create ~/bb
# Now do a Time Machine backup and wait till it's done
$ mv ~/bb ~/bb-orig
# Now restore the ~/bb directory from Time Machine.  
# Try not to catch SPACE MADNESS!!!
$ bbouncer verify -d ~/bb-orig ~/bb
</pre>



<p>On my Leopard 10.5.3 machine here&#8217;s what I get with BB 0.1.3:</p>



<pre>Verifying:    basic-permissions ... ok (Critical)
Verifying:           timestamps ... ok (Critical)
Verifying:             symlinks ... ok (Critical)
Verifying:    symlink-ownership ... FAIL 
Verifying:            hardlinks ... FAIL (Important)
Verifying:       resource-forks ... 
   Sub-test:             on files ... ok (Critical)
   Sub-test:  on hardlinked files ... FAIL (Important)
Verifying:         finder-flags ... ok (Critical)
Verifying:         finder-locks ... ok 
Verifying:        creation-date ... ok 
Verifying:            bsd-flags ... FAIL 
Verifying:       extended-attrs ... 
   Sub-test:             on files ... ok (Important)
   Sub-test:       on directories ... ok (Important)
   Sub-test:          on symlinks ... ok 
Verifying: access-control-lists ... 
   Sub-test:             on files ... ok (Important)
   Sub-test:              on dirs ... ok (Important)
Verifying:                 fifo ... FAIL 
Verifying:              devices ... FAIL 
Verifying:          combo-tests ... 
   Sub-test:  xattrs + rsrc forks ... ok 
   Sub-test:     lots of metadata ... ok 
</pre>



<p>The only annoyance is that hardlinks aren&#8217;t preserved, but that&#8217;s not surprising considering the way hardlinks are used internally by TM to prevent wasted space.  (I should point out that the hardlink failure here is <strong>not</strong> the same as <a href="http://www.n8gray.org/blog/2008/06/09/more-backup-bouncer/">the Apple rsync one I mentioned earlier today</a>, and it&#8217;s not nearly as bad.)  These results are not perfect but I would have no problem recommending TM backups to any less-than-hardcore user.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2008%2F06%2F09%2Fbackup-bouncer-and-time-machine%2F&amp;linkname=Backup%20Bouncer%20and%20Time%20Machine"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2008/06/09/backup-bouncer-and-time-machine/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>More Backup Bouncer</title>
		<link>http://www.n8gray.org/blog/2008/06/09/more-backup-bouncer/</link>
		<comments>http://www.n8gray.org/blog/2008/06/09/more-backup-bouncer/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 23:09:47 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Backup-Bouncer]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/?p=173</guid>
		<description><![CDATA[I just released Backup Bouncer 0.1.3.  I&#8217;ve changed the output format to print the &#8220;priority&#8221; of a test along with its outcome, which hopefully should clear up some confusion among less experienced users.  On a tip from Patrick Power I&#8217;ve added a new test that combines resource forks and hard links.  Unfortunately, [...]]]></description>
			<content:encoded><![CDATA[<p>I just released <a href="http://www.n8gray.org/code/backup-bouncer/">Backup Bouncer 0.1.3</a>.  I&#8217;ve changed the output format to print the &#8220;priority&#8221; of a test along with its outcome, which hopefully should clear up <a href="http://www.n8gray.org/blog/2008/06/02/backup-bouncer-is-working/">some confusion</a> among less experienced users.  On a tip from <a href="http://www.n8gray.org/blog/2007/11/03/backup-bouncer-012/#comment-20735">Patrick Power</a> I&#8217;ve added a new test that combines resource forks and hard links.  Unfortunately, Apple&#8217;s rsync fails this test in OS X 10.5.3:</p>



<pre>------------------ rsync-apple ------------------
Verifying:    basic-permissions ... ok (Critical)
Verifying:           timestamps ... ok (Critical)
Verifying:             symlinks ... ok (Critical)
Verifying:    symlink-ownership ... ok 
Verifying:            hardlinks ... ok (Important)
Verifying:       resource-forks ... 
   Sub-test:             on files ... ok (Critical)
   Sub-test:  on hardlinked files ... FAIL (Important)
Verifying:         finder-flags ... ok (Critical)
Verifying:         finder-locks ... FAIL 
Verifying:        creation-date ... FAIL 
Verifying:            bsd-flags ... ok 
Verifying:       extended-attrs ... 
   Sub-test:             on files ... ok (Important)
   Sub-test:       on directories ... ok (Important)
   Sub-test:          on symlinks ... FAIL 
Verifying: access-control-lists ... 
   Sub-test:             on files ... ok (Important)
   Sub-test:              on dirs ... ok (Important)
Verifying:                 fifo ... ok 
Verifying:              devices ... ok 
Verifying:          combo-tests ... 
   Sub-test:  xattrs + rsrc forks ... ok 
   Sub-test:     lots of metadata ... ok 
</pre>



<p>If you add a resource fork to a file that&#8217;s hardlinked to another file then only one of the files gets copied.  <img src='http://www.n8gray.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />   This, no doubt, is due to the hackery involved to make <span class="caps">HFS</span>+ look like it has a real hardlinks when it actually doesn&#8217;t.</p>

<p>Some of the changes in BB 0.1.3 were a bit invasive and Bash is not the greatest of programming languages, so please keep your eyes open for bugs.  If you see something in your results that doesn&#8217;t make sense just let me know.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2008%2F06%2F09%2Fmore-backup-bouncer%2F&amp;linkname=More%20Backup%20Bouncer"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2008/06/09/more-backup-bouncer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Backup Bouncer is Working, Confusing, Annoying Developers</title>
		<link>http://www.n8gray.org/blog/2008/06/02/backup-bouncer-is-working/</link>
		<comments>http://www.n8gray.org/blog/2008/06/02/backup-bouncer-is-working/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 20:05:38 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Backup-Bouncer]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/?p=172</guid>
		<description><![CDATA[A friend recently pointed out that BB gets some love on the Carbon Copy Cloner product page.  This is quite satisfying to me, since my indirect goal with BB was to get it into the hands of the folks making the tools.  The primary goal was always to let users validate backup tools [...]]]></description>
			<content:encoded><![CDATA[<p>A friend recently pointed out that BB gets some love on <a href="http://www.bombich.com/software/ccc.html">the Carbon Copy Cloner product page</a>.  This is quite satisfying to me, since my indirect goal with BB was to get it into the hands of the folks making the tools.  The primary goal was always to let users validate backup tools on their own, but it was always clear that this would end up putting pressure on the tool makers.  When a user comes to you and says, &#8220;your tool fails backup bouncer test foo,&#8221; you either pay attention or lose a customer.  This is very empowering for end-users, but one can see how it has the potential to irritate tool developers if they disagree with <span class="caps">BB&#8217;</span>s test methodology.</p>

<p><span id="more-172"></span></p>

<p>So I wasn&#8217;t too surprised when a user forwarded me a somewhat exasperated-sounding note from Shirt Pocket software explaining why SD doesn&#8217;t pass <span class="caps">BB&#8217;</span>s <span class="caps">FIFO </span>and device file tests.  I won&#8217;t paste the note in here, since I feel that would be poor form, but I will pass along their rationale for not copying these files.  They feel that <span class="caps">FIFO</span>s and device files are normally system-created files that are not meant to be preserved across reboots or backups.  For that reason, SD doesn&#8217;t back up these filesystem object types at all.</p>

<p>One can understand how Shirt Pocket arrived at this policy.  Writing a good <i>system-level</i> backup tool is more subtle than it might appear.  There are actually parts of the filesystem that you <strong>don&#8217;t</strong> want to back up, like caches, VM files, and so forth.  You <strong>don&#8217;t</strong> want to back up the device files under <code>/dev</code>, since those get created dynamically depending on what devices are attached.  In short, there are some parts of the filesystem that are tied to the state of the running system, and these should not normally be copied in a backup.</p>

<p>The problem with Shirt Pocket&#8217;s policy is that although it is certainly true that the system-created <span class="caps">FIFO</span>s and device files should not be copied in a system-level backup, there are legitimate reasons a <strong>user</strong> might create <span class="caps">FIFO</span>s or device files, and there&#8217;s every reason to preserve those user-created objects during a backup.  Don&#8217;t get me wrong &#8212; this is obscure stuff that only advanced <span class="caps">UNIX </span>hackers would do, but hey, advanced <span class="caps">UNIX </span>hackers need reliable backups too!  <span class="caps">SD&#8217;</span>s policy is, <span class="caps">IMHO, </span>overly broad.  I would be much more comfortable if SD excluded filesystem <strong>locations</strong> rather than entire classes of filesystem objects.</p>

<p>The Shirt Pocket letter also accused BB of being &#8220;rather misleading to most&#8221; on this issue because it makes people worry about something that won&#8217;t cause them any problems.  Although I vehemently disagree with the &#8220;misleading&#8221; characterization, I agree that not every BB test is equally important in practical terms.  Most end-users will absolutely not care that tool X doesn&#8217;t backup <span class="caps">FIFO</span>s.  This is why BB has <strong>always</strong> had a prioritization feature.  Quoting from the usage string of bbouncer:</p>


<pre>-T &lt;set&gt;     Use the given set of tests.  &lt;set&gt; can be either 
             &quot;critical&quot;, for tests whose failure will cause problems
             for average users, or &quot;important&quot;, for tests whose
             failure may not cause problems for many users, but which
             may be important to power-users or may qualify as 
             critical in the future.
</pre>



<p>The <span class="caps">FIFO</span>/device file tests are not included in either the &#8220;critical&#8221; or &#8220;important&#8221; set of tests.  So I&#8217;m saying (and have always said) that most users, even most power users, won&#8217;t care about them.  So why test for them at all?  Consider the situation before <a href="http://blog.plasticsfuture.org/2006/03/05/the-state-of-backup-and-cloning-tools-under-mac-os-x/">Maurits&#8217; blogged on backups</a> and BB existed.  Most people, myself included, didn&#8217;t even know what the full set of OS X filesystem object types and metadata <strong>was</strong>.  Maurits filled us in on what existed, but knowing how to test for preservation was still a black art.  BB was meant to democratize that testing, but also to act as an <strong>exhaustive</strong> test set.  (I don&#8217;t claim to have achieved even close to 100% coverage, but that&#8217;s the goal.)  So it&#8217;s important to me that BB include tests for any metadatum or filesystem object that can conceivably have a reason to be backed up.</p>

<p>Having said that, I&#8217;ll concede there&#8217;s a usability bug here.  The -T option is unlikely to be discovered by casual users, and they&#8217;re the ones who need it most!  It&#8217;s not used by <code>autopilot</code> and it&#8217;s not even documented in the <span class="caps">README. </span> So I think I&#8217;ll be making the following changes:</p>


<ul>
<li>I&#8217;ll document -T more pervasively</li>
<li>I&#8217;ll have the priority of a test appear in <span class="caps">BB&#8217;</span>s output</li>
<li>I&#8217;ll have BB default to running in &#8220;important&#8221; mode, changing the exhaustive mode to an opt-in option</li>
</ul>



<p>Hopefully this will help prevent confusion for casual users and ease the support burden of tool developers while maintaining <span class="caps">BB&#8217;</span>s goals of providing easy backup tool validation and exhaustive test coverage.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2008%2F06%2F02%2Fbackup-bouncer-is-working%2F&amp;linkname=Backup%20Bouncer%20is%20Working%2C%20Confusing%2C%20Annoying%20Developers"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2008/06/02/backup-bouncer-is-working/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Backup Bouncer 0.1.2</title>
		<link>http://www.n8gray.org/blog/2007/11/03/backup-bouncer-012/</link>
		<comments>http://www.n8gray.org/blog/2007/11/03/backup-bouncer-012/#comments</comments>
		<pubDate>Sun, 04 Nov 2007 05:58:04 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Backup-Bouncer]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2007/11/03/backup-bouncer-012/</guid>
		<description><![CDATA[Hi folks,

I just uploaded Backup Bouncer 0.1.2 for your backup-tool-testing pleasure.  Get it at the usual place.  Not a whole lot has changed, but there&#8217;s a fix to extended attribute handling that solves some problems in Leopard.  Andreas Fuchs provided a patch for this and also mentioned that SuperDuper can&#8217;t handle dangling [...]]]></description>
			<content:encoded><![CDATA[<p>Hi folks,</p>

<p>I just uploaded Backup Bouncer 0.1.2 for your backup-tool-testing pleasure.  Get it at <a href="http://www.n8gray.org/code/backup-bouncer/">the usual place</a>.  Not a whole lot has changed, but there&#8217;s a fix to extended attribute handling that solves some problems in Leopard.  Andreas Fuchs provided a patch for this and also mentioned that SuperDuper can&#8217;t handle dangling symlinks!  I haven&#8217;t verified this, but if it&#8217;s true it&#8217;s a pretty huge failure for an otherwise excellent tool.  In any case, I added a case to the symlink test to check for it.</p>

<p>I&#8217;ve also added a check for extended attributes on symlinks.  This is pretty obscure, but a well-written tool shouldn&#8217;t care, since the extended attribute support would be orthogonal to the file type.  If your favorite tool fails that test I wouldn&#8217;t worry about it <strong>too</strong> much, but you might want to file a bug report.</p>

<p>In related news, I read a while back that Apple was using xar for packaging in Leopard.  After installing Leopard on my own machine I was a bit disappointed to find that Apple has installed xar 1.4, which does <strong>not</strong> do a good job of preserving metadata:</p>



<pre>------------------ xar ------------------
Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
   Sub-test:    modification time ... ok
ok
Verifying:             symlinks ... ok
Verifying:    symlink-ownership ... FAIL
Verifying:            hardlinks ... ok
Verifying:       resource-forks ... ok
Verifying:         finder-flags ... ok
Verifying:         finder-locks ... FAIL
Verifying:        creation-date ... FAIL
Verifying:            bsd-flags ... ok
Verifying:       extended-attrs ...
   Sub-test:             on files ... FAIL
   Sub-test:       on directories ... FAIL
   Sub-test:          on symlinks ... FAIL
FAIL
Verifying: access-control-lists ...
   Sub-test:             on files ... FAIL
   Sub-test:              on dirs ... FAIL
FAIL
Verifying:                 fifo ... FAIL
Verifying:              devices ... FAIL
Verifying:          combo-tests ...
   Sub-test:  xattrs + rsrc forks ... FAIL
   Sub-test:     lots of metadata ... FAIL
FAIL
</pre>



<p>This is a crying shame, since xar 1.5 and later do a <strong>great</strong> job.  Hopefully people won&#8217;t pass judgment on xar based on the version shipped with Leopard.</p>

<p>On the other hand, rsync seems to have improved in Leopard:</p>



<pre>------------------ rsync-apple ------------------
Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
   Sub-test:    modification time ... ok
ok
Verifying:             symlinks ... ok
Verifying:    symlink-ownership ... ok
Verifying:            hardlinks ... ok
Verifying:       resource-forks ... ok
Verifying:         finder-flags ... ok
Verifying:         finder-locks ... FAIL
Verifying:        creation-date ... FAIL
Verifying:            bsd-flags ... ok
Verifying:       extended-attrs ...
   Sub-test:             on files ... ok
   Sub-test:       on directories ... ok
   Sub-test:          on symlinks ... FAIL
FAIL
Verifying: access-control-lists ...
   Sub-test:             on files ... ok
   Sub-test:              on dirs ... ok
ok
Verifying:                 fifo ... ok
Verifying:              devices ... ok
Verifying:          combo-tests ...
   Sub-test:  xattrs + rsrc forks ... ok
   Sub-test:     lots of metadata ... ok
ok
</pre><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2007%2F11%2F03%2Fbackup-bouncer-012%2F&amp;linkname=Backup%20Bouncer%200.1.2"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2007/11/03/backup-bouncer-012/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>xar rox</title>
		<link>http://www.n8gray.org/blog/2007/05/07/xar-rox/</link>
		<comments>http://www.n8gray.org/blog/2007/05/07/xar-rox/#comments</comments>
		<pubDate>Mon, 07 May 2007 23:18:16 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Backup-Bouncer]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2007/05/07/xar-rox/</guid>
		<description><![CDATA[Let&#8217;s hear it for xar, the first copier to ace the Backup Bouncer test suite!  In my last post I mentioned that they were just one test away, and now that bug 19 is fixed they&#8217;ve nailed it.  Kudos to Rob Braun and the rest of the folks working on xar (if there [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s hear it for <a href="http://code.google.com/p/xar/">xar</a>, the first copier to <strong>ace</strong> the Backup Bouncer test suite!  In <a href="/blog/2007/05/02/hail-to-the-xar/">my last post</a> I mentioned that they were just one test away, and now that <a href="http://code.google.com/p/xar/issues/detail?id=19">bug 19</a> is fixed they&#8217;ve nailed it.  Kudos to Rob Braun and the rest of the folks working on xar (if there are any others).</p>

<p>This is only in the svn version, folks, so don&#8217;t go downloading 1.4 and expecting greatness.</p>



<pre>------------------ xar ------------------
Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
   Sub-test:    modification time ... ok
ok
Verifying:             symlinks ... ok
Verifying:    symlink-ownership ... ok
Verifying:            hardlinks ... ok
Verifying:       resource-forks ... ok
Verifying:         finder-flags ... ok
Verifying:         finder-locks ... ok
Verifying:        creation-date ... ok
Verifying:            bsd-flags ... ok
Verifying:       extended-attrs ...
   Sub-test:             on files ... ok
   Sub-test:       on directories ... ok
   Sub-test:          on symlinks ... ok
ok
Verifying: access-control-lists ...
   Sub-test:             on files ... ok
   Sub-test:              on dirs ... ok
ok
Verifying:                 fifo ... ok
Verifying:              devices ... ok
Verifying:          combo-tests ...
   Sub-test:  xattrs + rsrc forks ... ok
   Sub-test:     lots of metadata ... ok
ok
</pre>



<p>Hmm, I guess that means it&#8217;s time to start thinking up some harder tests.  Single-file backups?  These are tricky on Mac because the finder puts the metadata for a whole folder into a single .DS_Store file.  To do single-file backup right you need to be able to extract that one file&#8217;s metadata from the .DS_Store file, archive it, then reinsert it when you do a restore, all without disturbing the metadata of any other files in the folder.  It can be done, but it&#8217;s not the easiest thing in the world.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2007%2F05%2F07%2Fxar-rox%2F&amp;linkname=xar%20rox"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2007/05/07/xar-rox/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Hail to the xar!</title>
		<link>http://www.n8gray.org/blog/2007/05/02/hail-to-the-xar/</link>
		<comments>http://www.n8gray.org/blog/2007/05/02/hail-to-the-xar/#comments</comments>
		<pubDate>Thu, 03 May 2007 02:10:09 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Backup-Bouncer]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2007/05/02/hail-to-the-xar/</guid>
		<description><![CDATA[I just tried testing the latest SVN HEAD revision of xar, and wow.



------------------ xar ------------------
Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
   Sub-test:    modification time ... ok
ok
Verifying:             [...]]]></description>
			<content:encoded><![CDATA[<p>I just tried testing the latest <span class="caps">SVN HEAD </span>revision of <a href="http://code.google.com/p/xar/">xar</a>, and wow.</p>



<pre>------------------ xar ------------------
Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
   Sub-test:    modification time ... ok
ok
Verifying:             symlinks ... ok
Verifying:    symlink-ownership ... ok
Verifying:            hardlinks ... ok
Verifying:       resource-forks ... ok
Verifying:         finder-flags ... ok
Verifying:         finder-locks ... ok
Verifying:        creation-date ... FAIL
Verifying:            bsd-flags ... ok
Verifying:       extended-attrs ...
   Sub-test:             on files ... ok
   Sub-test:       on directories ... ok
   Sub-test:          on symlinks ... ok
ok
Verifying: access-control-lists ...
   Sub-test:             on files ... ok
   Sub-test:              on dirs ... ok
ok
Verifying:                 fifo ... ok
Verifying:              devices ... ok
Verifying:          combo-tests ...
   Sub-test:  xattrs + rsrc forks ... ok
   Sub-test:     lots of metadata ... ok
ok
</pre>



<p>Now that&#8217;s one impressive result!  They&#8217;ve got a bug in their tracker for the creation date issue, so hopefully it&#8217;ll be solved soon.  There&#8217;s still an unfortunate issue with xar that prevents me from gushing uncontrollably about it &#8212; you can&#8217;t build a &#8220;xarpipe&#8221; to copy filesystem subtrees around.  In other words, you always have to archive to a file, then unarchive from that file.  This means that if you want to, say, transfer all your files from an old drive to a new drive you&#8217;d better have a third drive around, or your new drive had better be twice as big as the size of the files on your old one.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2007%2F05%2F02%2Fhail-to-the-xar%2F&amp;linkname=Hail%20to%20the%20xar%21"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2007/05/02/hail-to-the-xar/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Backup Bouncer 0.1.1</title>
		<link>http://www.n8gray.org/blog/2007/05/01/backup-bouncer-011/</link>
		<comments>http://www.n8gray.org/blog/2007/05/01/backup-bouncer-011/#comments</comments>
		<pubDate>Wed, 02 May 2007 01:29:03 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Backup-Bouncer]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2007/05/01/backup-bouncer-011/</guid>
		<description><![CDATA[I just released Backup Bouncer 0.1.1, because the ACL tests in 0.1.0 were totally broken.

Get it while it&#8217;s hot!]]></description>
			<content:encoded><![CDATA[<p>I just released Backup Bouncer 0.1.1, because the <span class="caps">ACL </span>tests in 0.1.0 were totally broken.</p>

<p><a href="/code/backup-bouncer">Get it while it&#8217;s hot!</a></p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2007%2F05%2F01%2Fbackup-bouncer-011%2F&amp;linkname=Backup%20Bouncer%200.1.1"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2007/05/01/backup-bouncer-011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Backup-Bouncer</title>
		<link>http://www.n8gray.org/blog/2007/04/27/introducing-backup-bouncer/</link>
		<comments>http://www.n8gray.org/blog/2007/04/27/introducing-backup-bouncer/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 21:50:44 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Backup-Bouncer]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2007/04/27/introducing-backup-bouncer/</guid>
		<description><![CDATA[Do you back up your files?  Of course you do!  (Right?  Right???)  But do your backups work?  Really?  Are you sure?  Have you checked?

Doing backups in OS X has always been a bit nerve-wracking.  We&#8217;ve got resource forks, Finder flags, and various other odd metadata that don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>Do you back up your files?  Of course you do!  (Right?  Right???)  But do your backups work?  Really?  Are you sure?  Have you checked?</p>

<p>Doing backups in OS X has always been a bit nerve-wracking.  We&#8217;ve got resource forks, Finder flags, and various other odd metadata that don&#8217;t exist on other platforms.  With the advent of Tiger, Apple told us that cp, tar, and rsync would finally be aware of our metadata and preserve it properly.  And there was much rejoicing.</p>

<p>But then someone (or something?) named maurits actually <strong>tested</strong> these tools (and quite a few others), and <a href="http://blog.plasticsfuture.org/2006/03/05/the-state-of-backup-and-cloning-tools-under-mac-os-x/">the results weren&#8217;t pretty</a>.  This was a valuable wake-up call for many in the Mac community, but maurits never got around to releasing his test suite so we could do our own testing.  Backup Bouncer is here to remedy this omission.</p>

<p><span id="more-141"></span></p>

<p>Backup Bouncer&#8217;s job is to keep the ugly backup tools out of the club.  It&#8217;s here to show you exactly how bad (or, dare I say it, good?) your backup tools are.  The way you use it is simple.  First you create a couple of volumes:</p>



<pre>bbouncer create-vol Src
bbouncer create-vol Dst</pre>



<p>Next you create the test files on the source volume:</p>

<code>bbouncer create /Volumes/Src</code>

<p>Now you use any old method you want to copy the files from <code>/Volumes/Src</code> to <code>/Volumes/Dst</code>.  Once that&#8217;s done, you verify the copy and see how well (or poorly) it went.  You can start by checking the &#8220;critical&#8221; properties &#8212; properties that you&#8217;ll almost always want preserved:</p>

<code>bbouncer verify -d -T critical /Volumes/Src /Volumes/Dst</code>

<p>Next you can expand the scope to &#8220;important&#8221; properties &#8212; properties that power-users may find important or may be critical in the future:</p>

<code>bbouncer verify -d -T important /Volumes/Src /Volumes/Dst</code>

<p>Finally, you can see how the tool fares on the entire test suite:</p>

<code>bbouncer verify -d /Volumes/Src /Volumes/Dst</code>

<p>As an example of how the results look, here are the results for <code>ditto</code> on the entire test suite:</p>



<pre>Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
   Sub-test:    modification time ... ok
ok
Verifying:             symlinks ... ok
Verifying:    symlink-ownership ... FAIL
Verifying:            hardlinks ... ok
Verifying:       resource-forks ... ok
Verifying:         finder-flags ... ok
Verifying:         finder-locks ... FAIL
Verifying:        creation-date ... FAIL
Verifying:            bsd-flags ... FAIL
Verifying:       extended-attrs ...
   Sub-test:             on files ... FAIL
   Sub-test:       on directories ... FAIL
   Sub-test:          on symlinks ... FAIL
FAIL
Verifying: access-control-lists ...
   Sub-test:             on files ... FAIL
   Sub-test:              on dirs ... FAIL
ok
Verifying:                 fifo ... FAIL
Verifying:              devices ... ok
Verifying:          combo-tests ...
   Sub-test:  xattrs + rsrc forks ... FAIL
   Sub-test:     lots of metadata ... FAIL
FAIL
</pre>



<p>Pretty bad, eh?  On a more optimistic note, here are the results from Shirt Pocket Software&#8217;s <a href="http://www.shirt-pocket.com/SuperDuper/SuperDuperDescription.html">SuperDuper!</a>, one of the only tools to even come close to passing all tests:</p>



<pre>Verifying:    basic-permissions ... ok
Verifying:           timestamps ...
   Sub-test:    modification time ... ok
ok
Verifying:             symlinks ... ok
Verifying:    symlink-ownership ... ok
Verifying:            hardlinks ... ok
Verifying:       resource-forks ... ok
Verifying:         finder-flags ... ok
Verifying:         finder-locks ... ok
Verifying:        creation-date ... ok
Verifying:            bsd-flags ... ok
Verifying:       extended-attrs ...
   Sub-test:             on files ... ok
   Sub-test:       on directories ... ok
   Sub-test:          on symlinks ... ok
ok
Verifying: access-control-lists ...
   Sub-test:             on files ... ok
   Sub-test:              on dirs ... ok
ok
Verifying:                 fifo ... FAIL
Verifying:              devices ... FAIL
Verifying:          combo-tests ...
   Sub-test:  xattrs + rsrc forks ... ok
   Sub-test:     lots of metadata ... ok
ok
</pre>



<p>Very nice!</p>

<p>Backup Bouncer also has a built-in set of &#8220;copiers&#8221;, to automate testing of command-line tools like cp, rsync, tar, asr, pax, ditto, and so on.  You can run these tests using the &#8220;bbouncer copy&#8221; command:</p>

<code>bbouncer copy -d /Volumes/Src /Volumes/Dst</code>

<p>You&#8217;ll get several pages of output, so I won&#8217;t show it all here.  Finally, I&#8217;ve included an <code>autopilot</code> script that you can use to create some volumes, initialize the source files, run all the copiers, and verify the results.</p>

<p>You can get Backup Bouncer <a href="/code/backup-bouncer">here</a>.</p>

<p><strong>Update:</strong> My <span class="caps">ACL </span>tests were broken.  I&#8217;ve updated the output shown here to reflect the corrected tests.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2007%2F04%2F27%2Fintroducing-backup-bouncer%2F&amp;linkname=Introducing%20Backup-Bouncer"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2007/04/27/introducing-backup-bouncer/feed/</wfw:commentRss>
		<slash:comments>75</slash:comments>
		</item>
	</channel>
</rss>
