<?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>Torsten Rehn Photography &#187; System Administration</title> <atom:link href="http://trehn.com/category/sysadmin/feed/" rel="self" type="application/rss+xml" /><link>http://trehn.com</link> <description>Personal website and blog of photographer Torsten Rehn</description> <lastBuildDate>Mon, 31 May 2010 07:16:37 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0</generator> <item><title>Chromium Auto-Update</title><link>http://trehn.com/2010/05/29/chromium-auto-update/</link> <comments>http://trehn.com/2010/05/29/chromium-auto-update/#comments</comments> <pubDate>Sat, 29 May 2010 00:28:01 +0000</pubDate> <dc:creator>Torsten Rehn</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[System Administration]]></category> <category><![CDATA[Chromium]]></category> <category><![CDATA[Python]]></category><guid isPermaLink="false">http://trehn.com/?p=247</guid> <description><![CDATA[Posted a Python script to auto-update Chromium for Mac.]]></description> <content:encoded><![CDATA[<p>Just hacked together a small Python script to automatically update Chromium on my Mac to the latest SVN revision. I wrote this around 2am, so don&#8217;t expect bells and whistles. You can download it here:</p> &nbsp;&nbsp;&nbsp;&nbsp;<a href="http://files.trehn.com/chromium-updater.py">http://files.trehn.com/chromium-updater.py</a><p> The script is public domain, meant to be run interactively and provided without any warranties or batteries. It may or may not do bad things to your house and your cat, but mostly it just updates Chromium.</p> ]]></content:encoded> <wfw:commentRss>http://trehn.com/2010/05/29/chromium-auto-update/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Munin plugin graphing MySQL rows</title><link>http://trehn.com/2010/01/05/munin-plugin-graphing-mysql-rows/</link> <comments>http://trehn.com/2010/01/05/munin-plugin-graphing-mysql-rows/#comments</comments> <pubDate>Tue, 05 Jan 2010 21:44:14 +0000</pubDate> <dc:creator>Torsten Rehn</dc:creator> <category><![CDATA[System Administration]]></category> <category><![CDATA[monitoring]]></category> <category><![CDATA[Munin]]></category> <category><![CDATA[MySQL]]></category><guid isPermaLink="false">http://trehn.com/?p=107</guid> <description><![CDATA[Want to watch your tables grow? (okay, that screenshot isn&#8217;t great, but you get the idea) I just wrote a munin plugin that graphs the number of rows in your MySQL databases. If you haven&#8217;t heard of Munin yet, check it out &#8211; it&#8217;s pretty awesome.]]></description> <content:encoded><![CDATA[<p>Want to watch your tables grow?</p> <a href="http://trehn.com/wp-content/uploads/2010/01/munin_mysql_rowcount_nagify_wordpress.png"><img src="http://trehn.com/wp-content/uploads/2010/01/munin_mysql_rowcount_nagify_wordpress.png" alt="" title="munin_mysql_rowcount_nagify_wordpress" width="497" height="404" class="aligncenter size-full wp-image-108" /></a> <br /><i>(okay, that screenshot isn&#8217;t great, but you get the idea)</i><p>I just wrote a <a href="http://github.com/trehn/munin_mysql_rowcount/blob/master/mysql_rowcount_">munin plugin that graphs the number of rows</a> in your MySQL databases. If you haven&#8217;t heard of <a href="http://munin.projects.linpro.no">Munin</a> yet, check it out &#8211; it&#8217;s pretty awesome.</p>]]></content:encoded> <wfw:commentRss>http://trehn.com/2010/01/05/munin-plugin-graphing-mysql-rows/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>nagify 1.0 released</title><link>http://trehn.com/2010/01/01/nagify-1-0-released/</link> <comments>http://trehn.com/2010/01/01/nagify-1-0-released/#comments</comments> <pubDate>Fri, 01 Jan 2010 20:15:42 +0000</pubDate> <dc:creator>Torsten Rehn</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[System Administration]]></category> <category><![CDATA[Growl]]></category> <category><![CDATA[nagify]]></category> <category><![CDATA[Nagios]]></category> <category><![CDATA[Python]]></category> <category><![CDATA[release]]></category><guid isPermaLink="false">http://trehn.com/?p=95</guid> <description><![CDATA[I just released version 1.0 of nagify, a new Python library and utility for displaying notifications about Nagios alerts. The original purpose was to display Growl notifications for Nagios alerts, but nagify is designed to be very flexible and can be expanded to output notifications in pretty much any way. Please report any bugs to [...]]]></description> <content:encoded><![CDATA[<p> I just <a href="http://github.com/trehn/nagify/downloads">released</a> version 1.0 of <a href="http://nagify.org">nagify</a>, a new Python library and utility for displaying notifications about <a href="http://nagios.org">Nagios</a> alerts.</p><p> The original purpose was to display <a href="http://growl.info">Growl</a> notifications for Nagios alerts, but nagify is designed to be very flexible and can be expanded to output notifications in pretty much any way.</p><p> Please report any bugs to the <a href="http://github.com/trehn/nagify/issues">issue tracker at github</a>.</p><p> <b>Update:</b> 1.0.1 is out, now also available via the <a href="http://pypi.python.org/pypi/nagify">Python Package Index</a>.</p>]]></content:encoded> <wfw:commentRss>http://trehn.com/2010/01/01/nagify-1-0-released/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>A whacky storage solution</title><link>http://trehn.com/2009/05/02/a-whacky-storage-solution/</link> <comments>http://trehn.com/2009/05/02/a-whacky-storage-solution/#comments</comments> <pubDate>Sat, 02 May 2009 20:36:31 +0000</pubDate> <dc:creator>Torsten Rehn</dc:creator> <category><![CDATA[System Administration]]></category> <category><![CDATA[digital asset management]]></category> <category><![CDATA[encryption]]></category> <category><![CDATA[LVM]]></category> <category><![CDATA[RAID]]></category> <category><![CDATA[storage]]></category> <category><![CDATA[TrueCrypt]]></category><guid isPermaLink="false">http://blog.trehn.com/?p=28</guid> <description><![CDATA[Description of my self-made personal RAID storage system.]]></description> <content:encoded><![CDATA[<p>While photographers aren&#8217;t producing as much digital assets as video people, a couple of thousands of raw files and a good load of PSDs can build up quite a storage need over the years.</p><p>While I was looking for a storage solution, I had four priorities:</p><ul><li><b>Expandability</b>: I had to copy <i>all</i> my stuff once to get them onto a bigger drive &#8211; I never want to repeat that experience.</li><li><b>Encryption</b>: A good deal of my photos is not meant for everyone&#8217;s eyes &#8211; I think it&#8217;s my responsibility to protect the privacy of my models from anyone who might eventually get their hands on one of the drives.</li><li><b>Cost</b>: Storage systems can cost nearly unlimited amounts of money &#8211; money that I&#8217;d rather invest in a new lens.</li><li><b>Fault tolerance</b>: Obviously.</li></ul><p>After some testing I came up this totally insane solution:</p><p>Take my existing two 500GB WD USB drives and put two shiny (actually, they&#8217;re black.) new 1TB WD USB drives next to them. Next, using Linux <a href="http://en.wikipedia.org/wiki/RAID">software RAID 1</a>, I mirror the identical disks, so I get a redundant 500GB and 1TB volume. These volumes are now being encrypted with three different cipher algorithms (yay for paranoia) using <a href="http://truecrypt.org">TrueCrypt</a>. The final layer is an LVM volume group using the TrueCrypt volumes as PVs.</p><p>Here&#8217;s some ASCII art:</p><pre class="code">

  +-----------------------+
  |          LVM          |
  +-----------------------+
       |             |
   TrueCrypt     TrueCrypt
       |             |
     RAID1         RAID1
    |     |       |     |
  +---+ +---+   +---+ +---+
  | 5 | | 5 |   | 1 | | 1 |
  | 0 | | 0 |   | T | | T |
  | 0 | | 0 |   | B | | B |
  | G | | G |   +---+ +---+
  | B | | B |
  +---+ +---+

</pre><p>This setup covers all of my four priorities (the only limitation is that you have to expand it in steps of two identical disks). Naturally, this monster isn&#8217;t that fast. According to bonnie++, I get about 10MB/s for writing and about 18MB/s for reading. Enough for me.</p><p>If you know a better way to get 1.5 TB expandable, encrypted and fault tolerant storage for less than 250 EUR, feel free to email me.</p>]]></content:encoded> <wfw:commentRss>http://trehn.com/2009/05/02/a-whacky-storage-solution/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Turbocharging BCFG2</title><link>http://trehn.com/2009/04/30/turbocharging-bcfg2/</link> <comments>http://trehn.com/2009/04/30/turbocharging-bcfg2/#comments</comments> <pubDate>Thu, 30 Apr 2009 20:41:47 +0000</pubDate> <dc:creator>Torsten Rehn</dc:creator> <category><![CDATA[Development]]></category> <category><![CDATA[System Administration]]></category> <category><![CDATA[BCFG2]]></category> <category><![CDATA[config management]]></category> <category><![CDATA[Genshi]]></category> <category><![CDATA[XML]]></category><guid isPermaLink="false">http://blog.trehn.com/?p=30</guid> <description><![CDATA[How to use XInclude to make your BCFG2 bundles even more powerful.]]></description> <content:encoded><![CDATA[<p>I&#8217;ve spent a lot of time at work tinkering around with the <a href="http://bcfg2.org">BCFG2</a> configuration management system. Here&#8217;s a neat stunt you can pull off in your bcfg2 repo to achieve great flexibility when it comes to templating.</p><p>First off, <i>all</i> my bundles are defined in SGenshi. Now you can obviously use &lt;ConfigFile&gt; and point to a TGenshi template. But you might run into a problem here: A TGenshi template always has a static owner/group/perms tuple set in the info.xml file (which is bad if you need multiple instances of the template that belong to different users). I tried working around this via an extra &lt;Permissions&gt;, but the default info from &lt;ConfigFile&gt; seems to have a higher priority (see <a href="http://trac.mcs.anl.gov/projects/bcfg2/ticket/627">BCFG2 bug #627</a>).</p><p>My next shot was to use &lt;BoundConfigFile&gt;, which lets you inline the template in the bundle file. However, this method has a number of problems as it tends to clutter your bundle files and forces you to use XML templating for text files.</p><p>So here&#8217;s my <i>ingenious</i> solution: Genshi allows the use of XInclude in XML templates, but with a special twist: You can tell Genshi to parse the referenced file as a text template! So here we go:</p><pre class="code">
&lt;BoundConfigFile 
    name="/foo/bar" owner="${owner}" group="${group}" perms="0644">
  &lt;xi:include parse="text" href="templates/foo/bar.newtxt" />
&lt;/BoundConfigFile>
</pre>Remember to include the xi namespace reference in your &lt;Bundle&gt;. ]]></content:encoded> <wfw:commentRss>http://trehn.com/2009/04/30/turbocharging-bcfg2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached (user agent is rejected)
Database Caching 4/15 queries in 0.061 seconds using memcached
Object Caching used 209/370 cached requests

Served from: trehn.com @ 2010-07-29 19:20:19 -->