<?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>Screenage &#187; Debian</title>
	<atom:link href="http://www.screenage.de/blog/category/debian/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.screenage.de/blog</link>
	<description></description>
	<lastBuildDate>Sun, 13 Nov 2011 10:33:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>RubyGems 9.9.9 packaged &#8211; Fake install RubyGems on Debian/Ubuntu</title>
		<link>http://www.screenage.de/blog/2011/07/02/rubygems-9-9-9-packaged-fake-install-rubygems-on-debianubuntu/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rubygems-9-9-9-packaged-fake-install-rubygems-on-debianubuntu</link>
		<comments>http://www.screenage.de/blog/2011/07/02/rubygems-9-9-9-packaged-fake-install-rubygems-on-debianubuntu/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 20:27:10 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Packaging]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/?p=322</guid>
		<description><![CDATA[For a lot of reasons I often rely on a mixture of a Debian/Ubuntu pre packaged Ruby with a self compiled RubyGems. It helps you in situations where you don&#8217;t care that much about the Ruby interpreter itself but need &#8230; <a href="http://www.screenage.de/blog/2011/07/02/rubygems-9-9-9-packaged-fake-install-rubygems-on-debianubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For a lot of reasons I often rely on a mixture of a Debian/Ubuntu pre packaged Ruby with a self compiled RubyGems. It helps you in situations where you don&#8217;t care that much about the Ruby interpreter itself but need an up to date RubyGems. While this is easy to install, you might run into trouble when installing packages that depend on Ruby and RubyGems, namely packages like &#8220;rubygems&#8221;, &#8220;rubygems1.8&#8243; and &#8220;rubygems1.9&#8243;.</p>
<p>After unsuccessfully playing around with dpkg for a while (you can put packages on &#8220;hold&#8221; which prevents them from being installed automatically, I came to the conclusion, the best way is to install a fake package that is empty but satisfies depencies.</p>
<p><a title="RubyGems 9.9.9 Fake Package" href="http://www.screenage.de/blog/files/rubygems_9.9.9_all.deb">So, here it is: The shiny new RubyGems 9.9.9</a> which delivers rubygems, rubygems1.8 and rubygems1.9 right away. Just install it (e.g. with dpkg) and you&#8217;ll be able installing packages that rely on a rubygems package.</p>
<p>In case you want to play around with the package and customize it to your needs, e.g. only deliver rubygems1.8 or rubygems1.9, take</p>
<p><strong>1. Install equivs</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> equivs</pre></div></div>

<p><strong>2. create a control file</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ equivs-control rubygems</pre></div></div>

<p><strong>3. edit the control file</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">vim</span> rubygems</pre></div></div>

<p>You can compare the default settings in the control file with the output of e.g. &#8220;apt-cache show rubygems&#8221;. The crucial field is &#8220;Provides:&#8221; where you can put a comma separated list of packages you want to fake install. Choose a high version for  there &#8220;Version: &#8221; field as this will mark the package newer as the distribution&#8217;s own package. This prevents the packager from replacing it.</p>

<div class="wp_syntax"><div class="code"><pre class="" style="font-family:monospace;">Section: universe/interpreters
Priority: optional
Homepage: http://www.screenage.de/blog/
Standards-Version: 3.6.2
&nbsp;
Package: rubygems
Version: 9.9.9
Maintainer: Caspar Clemens Mierau &lt;ccm@screenage.de&gt;
Provides: rubygems1.8,rubygems1.9,rubygems
Architecture: all
Description: Fake RubyGems replacement
 This is a fake meta package satisfying rubygems dependencies.
 .
 This package can be used when you installed a packaged ruby but want
 to use rubygems from source and still rely on software that depends
 on ruby and rubygems</pre></div></div>

<p>4. build the package</p>

<div class="wp_syntax"><div class="code"><pre class="" style="font-family:monospace;">$ equivs-build rubygems</pre></div></div>

<p>p.s.: You can also use equivs for easily building meta packages containing a list of packages you want to install at a glance, e.g. for semi automated server bootstrapping.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2011/07/02/rubygems-9-9-9-packaged-fake-install-rubygems-on-debianubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bootstrapping a Puppet agent/master on Ubuntu</title>
		<link>http://www.screenage.de/blog/2011/06/06/boostrapping-a-puppet-agentmaster-on-ubuntu/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=boostrapping-a-puppet-agentmaster-on-ubuntu</link>
		<comments>http://www.screenage.de/blog/2011/06/06/boostrapping-a-puppet-agentmaster-on-ubuntu/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 09:37:29 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/?p=314</guid>
		<description><![CDATA[Though it&#8217;s really great that Puppet made it into Ubuntu&#8217;s main repository, the provided version is rather outdated which prevents you from using advanced language features when writing your manifests. So sooner or later you end up installing Puppet manually. &#8230; <a href="http://www.screenage.de/blog/2011/06/06/boostrapping-a-puppet-agentmaster-on-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Though it&#8217;s really great that Puppet made it into Ubuntu&#8217;s main repository, the provided version is rather outdated which prevents you from using advanced language features when writing your manifests. So sooner or later you end up installing Puppet manually. In order to speed up installation I stripped it down to the following:</p>
<p>install agent:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">bash</span> <span style="color: #000000; font-weight: bold;">&amp;</span>lt; <span style="color: #000000; font-weight: bold;">&amp;</span>lt;<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-qO</span> - https:<span style="color: #000000; font-weight: bold;">//</span>bit.ly<span style="color: #000000; font-weight: bold;">/</span>install-puppet-agent<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>install master:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">bash</span> <span style="color: #000000; font-weight: bold;">&amp;</span>lt; <span style="color: #000000; font-weight: bold;">&amp;</span>lt;<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-qO</span> - https:<span style="color: #000000; font-weight: bold;">//</span>bit.ly<span style="color: #000000; font-weight: bold;">/</span>install-puppet-master<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>The call fetches the most recent version of the install script from github, installs Ubuntu&#8217;s Ruby (which is good enough for running Puppet), fetches an upstream version of gem itself and updates it to the most recent version and finally installs the Puppet gem.</p>
<p>You can, of course, also download, review and run the scripts manually. Just have a look at <a href="https://github.com/moviepilot/puppet/tree/master/tools">https://github.com/moviepilot/puppet/tree/master/tools</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2011/06/06/boostrapping-a-puppet-agentmaster-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>slides from the &#8216;From MySQL to MariaDB&#8217; presentation</title>
		<link>http://www.screenage.de/blog/2011/05/14/slides-from-the-from-mysql-to-mariadb-presentation/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=slides-from-the-from-mysql-to-mariadb-presentation</link>
		<comments>http://www.screenage.de/blog/2011/05/14/slides-from-the-from-mysql-to-mariadb-presentation/#comments</comments>
		<pubDate>Sat, 14 May 2011 19:09:44 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/?p=304</guid>
		<description><![CDATA[As announced, I held a short talk on switching from MySQL community edition (especially 5.1) to MariaDB (currently 5.2.6) at this years LinuxTag in Berlin. Here are the (German) slides for reference: (In case you cannot see the embedded presentation, &#8230; <a href="http://www.screenage.de/blog/2011/05/14/slides-from-the-from-mysql-to-mariadb-presentation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As announced, I held a <a href="http://www.linuxtag.org/2011/de/program/freies-vortragsprogramm/popup/vortragsdetails.html?no_cache=1&#038;talkid=390">short talk on switching from MySQL community edition (especially 5.1) to MariaDB (currently 5.2.6)</a> at this years LinuxTag in Berlin.</p>
<p>Here are the (German) slides for reference:</p>
<p><iframe src="https://docs.google.com/present/embed?id=dc7c88tp_77dxchh4c7&#038;interval=5&#038;size=m" frameborder="0" width="555" height="451"></iframe></p>
<p>(In case you cannot see the embedded presentation, you can also <a href="https://docs.google.com/present/view?id=dc7c88tp_77dxchh4c7&#038;interval=5">click here</a>)</p>
<p>Please note: There are a lot of good English slides around. If you want give a talk on MariaDB, the &#8220;Beginner&#8217;s Guide&#8221; might be a good start:</p>
<p><a title="View A Beginner's Guide to MariaDB Presentation on Scribd" href="http://www.scribd.com/doc/53200698/A-Beginner-s-Guide-to-MariaDB-Presentation" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;">A Beginner&#8217;s Guide to MariaDB Presentation</a><iframe class="scribd_iframe_embed" src="http://www.scribd.com/embeds/53200698/content?start_page=1&#038;view_mode=slideshow&#038;access_key=key-23nny9uco9ufyu2i9l08" data-auto-height="true" data-aspect-ratio="1.33333333333333" scrolling="no" id="doc_22767" width="100%" height="600" frameborder="0"></iframe><script type="text/javascript">(function() { var scribd = document.createElement("script"); scribd.type = "text/javascript"; scribd.async = true; scribd.src = "http://www.scribd.com/javascripts/embed_code/inject.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(scribd, s); })();</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2011/05/14/slides-from-the-from-mysql-to-mariadb-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Short talk on MariaDB at Linuxtag 2011</title>
		<link>http://www.screenage.de/blog/2011/05/12/short-talk-on-mariadb-at-linuxtag-2011/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=short-talk-on-mariadb-at-linuxtag-2011</link>
		<comments>http://www.screenage.de/blog/2011/05/12/short-talk-on-mariadb-at-linuxtag-2011/#comments</comments>
		<pubDate>Thu, 12 May 2011 07:04:46 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Berlin]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/?p=302</guid>
		<description><![CDATA[If you happen to be around at this years LinuxTag 2011 in Berlin/Germany, you are invited to attend my short talk on MariaDB as a drop-in replacement for MySQL. The talk focusses on differences between MySQL Community Edition and MariaDB &#8230; <a href="http://www.screenage.de/blog/2011/05/12/short-talk-on-mariadb-at-linuxtag-2011/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you happen to be around at this years <a href="http://www.linuxtag.org/2011/en.html">LinuxTag 2011</a> in Berlin/Germany, you are invited to attend my short talk on MariaDB as a drop-in replacement for MySQL. The talk focusses on differences between MySQL Community Edition and MariaDB (e.g. XtraDB, Aria, userstats), shows some features live and explains how to switch. I&#8217;ll probably post the slides here afterwards.</p>
<p>The talk will be held in German and is scheduled for Friday, the 13th of May, 16:30. The official announcement can be found <a href="http://www.linuxtag.org/2011/de/program/freies-vortragsprogramm/popup/vortragsdetails.html?no_cache=1&amp;talkid=390">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2011/05/12/short-talk-on-mariadb-at-linuxtag-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using backuppc as a dirty distributed shell</title>
		<link>http://www.screenage.de/blog/2011/05/09/using-backuppc-as-a-dirty-distributed-shell/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-backuppc-as-a-dirty-distributed-shell</link>
		<comments>http://www.screenage.de/blog/2011/05/09/using-backuppc-as-a-dirty-distributed-shell/#comments</comments>
		<pubDate>Mon, 09 May 2011 14:00:12 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[CommandLine]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/?p=281</guid>
		<description><![CDATA[Backuppc is a neat server-based backup solution. In Linux envorinments it is often used in combination with rsync over ssh &#8211; and, let&#8217;s be hontest &#8211; often fairly lazy sudo or root rights for the rsync over ssh connection. This &#8230; <a href="http://www.screenage.de/blog/2011/05/09/using-backuppc-as-a-dirty-distributed-shell/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://backuppc.sourceforge.net/">Backuppc</a> is a neat server-based backup solution. In Linux envorinments it is often used in combination with rsync over ssh &#8211; and, let&#8217;s be hontest &#8211; often fairly lazy sudo or root rights for the rsync over ssh connection. This has a lot of disadvantages, but at least, you can use this setup as a cheap distributed shell, as a good maintained backuppc server might have access to a lot of your servers.</p>
<p>I wrote a small wrapper, that reads the (especially Debian/Ubuntu packaged) backuppc configuration and iterates through the hosts, allowing you to issue commands on every valid connection. I used it so far for listing used ssh keys, os patch levels and even small system manipulations.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #007800;">SSH_KEY</span>=<span style="color: #ff0000;">&quot;-i /var/lib/backuppc/.ssh/id_rsa&quot;</span>
<span style="color: #007800;">SSH_LOGINS</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;root&quot;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>backuppc<span style="color: #000000; font-weight: bold;">/</span>hosts <span style="color: #000000; font-weight: bold;">|</span> \
 <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print &quot;root@&quot;$1&quot; &quot;}'</span> <span style="color: #000000; font-weight: bold;">|</span> \
 <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">':a;N;$!ba;s/\n//g'</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> SSH_LOGIN <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${SSH_LOGINS[@]}</span>&quot;</span>
<span style="color: #000000; font-weight: bold;">do</span>
 <span style="color: #007800;">HOST</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${SSH_LOGIN}</span>&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #660033;">-F</span><span style="color: #ff0000;">&quot;@&quot;</span> <span style="color: #ff0000;">'{print $2'</span><span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #000000; font-weight: bold;">`</span>
 <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;--------------------------------------------&quot;</span>
 <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;checking host: <span style="color: #007800;">${HOST}</span>&quot;</span>
 <span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-C</span> <span style="color: #660033;">-qq</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;NumberOfPasswordPrompts=0&quot;</span> \
 <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;PasswordAuthentication=no&quot;</span> <span style="color: #800000;">${SSH_KEY}</span> <span style="color: #800000;">${SSH_LOGIN}</span> <span style="color: #ff0000;">&quot;$1&quot;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></td></tr></table></div>

<p>You can easily change this to your needs (e.g. changing login user, adding sudo and so on).  </p>
<pre>
$ ./exec_remote_command.sh "date"
--------------------------------------------
checking host: a.b.com
Mo 9. Mai 15:40:26 CEST 2011
--------------------------------------------
checking host: b.b.com
[...]
</pre>
<p>Make sure to quote your command, especially when using commands with options, so the script can handle the command line as one argument.</p>
<p>A younger sister of the script is the following ssh key checker that lists and sorts the ssh keys used on systems by their key comment (feel free to include the key itself):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #007800;">SSH_KEY</span>=<span style="color: #ff0000;">&quot;-i /var/lib/backuppc/.ssh/id_rsa&quot;</span>
<span style="color: #007800;">SSH_LOGINS</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;root&quot;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>backuppc<span style="color: #000000; font-weight: bold;">/</span>hosts <span style="color: #000000; font-weight: bold;">|</span> \
 <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print &quot;root@&quot;$1&quot; &quot;}'</span> <span style="color: #000000; font-weight: bold;">|</span> \
 <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">':a;N;$!ba;s/\n//g'</span><span style="color: #000000; font-weight: bold;">`</span> <span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> SSH_LOGIN <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${SSH_LOGINS[@]}</span>&quot;</span>
<span style="color: #000000; font-weight: bold;">do</span>
 <span style="color: #007800;">HOST</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${SSH_LOGIN}</span>&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #660033;">-F</span><span style="color: #ff0000;">&quot;@&quot;</span> <span style="color: #ff0000;">'{print $2'</span><span style="color: #7a0874; font-weight: bold;">&#125;</span><span style="color: #000000; font-weight: bold;">`</span>
 <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;--------------------------------------------&quot;</span>
 <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;checking host: <span style="color: #007800;">${HOST}</span>&quot;</span>
 <span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-C</span> <span style="color: #660033;">-qq</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;NumberOfPasswordPrompts=0&quot;</span> \
 <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;PasswordAuthentication=no&quot;</span> <span style="color: #800000;">${SSH_KEY}</span> <span style="color: #800000;">${SSH_LOGIN}</span> \
 <span style="color: #ff0000;">&quot;cut -d: -f6 /etc/passwd | xargs -i{} egrep -s <span style="color: #000099; font-weight: bold;">\
</span> '^ssh-' {}/.ssh/authorized_keys {}/.ssh/authorized_keys2&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> \
 <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">3</span>- <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span>
 <span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-C</span> <span style="color: #660033;">-qq</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;NumberOfPasswordPrompts=0&quot;</span> \
 <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;PasswordAuthentication=no&quot;</span> <span style="color: #800000;">${SSH_KEY}</span> <span style="color: #800000;">${SSH_LOGIN}</span> \
 <span style="color: #ff0000;">&quot;egrep -s '^ssh-' /etc/skel/.ssh/authorized_keys <span style="color: #000099; font-weight: bold;">\
</span> /etc/skel/.ssh/authorized_keys2&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">3</span>- <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sort</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></td></tr></table></div>

<p>A sample output of the script:</p>
<pre>
$ ./check_keys.sh 2>/dev/null
--------------------------------------------
checking host: a.b.com
ccm@host1.key
backuppc@localhost
some random key comment
--------------------------------------------
checking host: b.b.com
[...]
</pre>
<p>That&#8217;s all for now. Don&#8217;t blame me for doing it this way &#8211; I am only the messenger <img src='http://www.screenage.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2011/05/09/using-backuppc-as-a-dirty-distributed-shell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Mom Runs Ubuntu &#8211; Update for Ada Lovelace Day</title>
		<link>http://www.screenage.de/blog/2010/03/24/my-mom-runs-ubuntu-update-for-ada-lovelace-day/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=my-mom-runs-ubuntu-update-for-ada-lovelace-day</link>
		<comments>http://www.screenage.de/blog/2010/03/24/my-mom-runs-ubuntu-update-for-ada-lovelace-day/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 23:01:42 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/?p=219</guid>
		<description><![CDATA[Just a couple of days ago I wrote update the upcoming &#8220;Ada Lovelace Day&#8221; &#8211; celebrating women in technology on the 24nd of March, which happens to be today. The day pledges for blog posts about this topic and here &#8230; <a href="http://www.screenage.de/blog/2010/03/24/my-mom-runs-ubuntu-update-for-ada-lovelace-day/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just a couple of days ago I wrote update the upcoming &#8220;Ada Lovelace Day&#8221; &#8211; celebrating women in technology on the 24nd of March, which happens to be today. The day pledges for blog posts about this topic and here we go with an Ubuntu flavored version.</p>
<p>At Ubucon 2008 in Göttingen, a German Ubuntu User Conference, I noticed that a lot people hanging around discussed how nicely their parents and especially moms are using Ubuntu. No hazzle, no further explanations needed &#8211; it just worked. And often they don&#8217;t even know or notice that they are using Ubuntu, as they just standard software like Firefox and Thunderbird. As this user group doesn&#8217;t belong to the tweeting, facebooking, social web society, I decided to found a launchpad group named &#8220;<a title="My Mom Runs Ubuntu on Launchpad" href="https://launchpad.net/~my-mom-runs-ubuntu">My Mum Runs Ubuntu</a>&#8220;, that has no further meaning than joining it means your mother runs Ubuntu &#8211; a simple way of giving this &#8220;silent&#8221; user group at least a number and a marker on a map.</p>
<p>I was surprised how fast the member list grew and happy to see that it&#8217;s members came and come from all over the world as you can see below:</p>
<div id="attachment_218" class="wp-caption alignnone" style="width: 310px"><a href="http://www.screenage.de/blog/uploads/ubuntu-moms-map-2010.jpg"><img class="size-medium wp-image-218" title="&quot;My Mom Runs Ubuntu&quot; global map (map by Google)" src="http://www.screenage.de/blog/uploads/ubuntu-moms-map-2010-300x152.jpg" alt="&quot;My Mom Runs Ubuntu&quot; global map (map by Google)" width="300" height="152" /></a><p class="wp-caption-text">&quot;My Mom Runs Ubuntu&quot; global map (map by Google)</p></div>
<p>So this is not about a single heroine in technology &#8211; it is about a general movement:  I am convinced, especially Ubuntu with it&#8217;s focus on an intuitive interface seems to keep the entry level very low and therefore attracts user groups that might be a suprprise for a lot of people. I know dozens of techie people stating that free operating systems are way too complicated to use for them. When telling about &#8220;My Mom Runs Ubuntu&#8221; they run out of reasons. At least there is nothing more convincing on using free software than people that are just using it on a daily basis without the need of telling everybody as they just take it as normal. I am sure, this user group continues to grow and am</p>
<p>So, if you already have a Launchpad account and your mum runs Ubuntu, too, give her a voice by just <a href="https://launchpad.net/~my-mom-runs-ubuntu/+join">joining the group</a>.</p>
<p>And if you think, this post misses real techie heroines, check the &#8220;<a href="http://ubuntu-women.org/">Ubuntu Women</a>&#8221; project, featuring some of the <a href="http://wiki.ubuntu-women.org/Profiles">most active member</a>s of the Ubuntu community.</p>
<div class="wp-caption alignnone" style="width: 360px"><img title="Ada Lovelace Day Logo" src="http://blog.findingada.com/wp-content/uploads/2010/03/lovelacedayshirtmucha-Lorin-white.png" alt="Ada Lovelace Day Logo" width="350" height="352" /><p class="wp-caption-text">Ada Lovelace Day Logo</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2010/03/24/my-mom-runs-ubuntu-update-for-ada-lovelace-day/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Ada Lovelace Day on 24nd of March</title>
		<link>http://www.screenage.de/blog/2010/03/20/ada-lovelace-day-on-24nd-of-march/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ada-lovelace-day-on-24nd-of-march</link>
		<comments>http://www.screenage.de/blog/2010/03/20/ada-lovelace-day-on-24nd-of-march/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 07:58:48 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/?p=212</guid>
		<description><![CDATA[On the 24nd of March &#8211; next Wednesday &#8211; the &#8220;Ada Lovelace Day&#8221; is taking place. If you don&#8217;t know Ada Lovelace so far &#8211; you should: She lived in the early 19th century, and is known today especially for &#8230; <a href="http://www.screenage.de/blog/2010/03/20/ada-lovelace-day-on-24nd-of-march/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><div class="wp-caption alignleft" style="width: 210px"><a href="http://en.wikipedia.org/wiki/File:Ada_Lovelace.jpg"><img class="alignleft" title="Ada Lovelace" src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Ada_Lovelace.jpg/200px-Ada_Lovelace.jpg" alt="Ada Lovelace" width="200" height="318" /></a><p class="wp-caption-text">Ada Lovelace</p></div> On the 24nd of March &#8211; next Wednesday &#8211; the &#8220;<a href="http://findingada.com/about/">Ada Lovelace Day</a>&#8221; is taking place. If you don&#8217;t know <a href="http://en.wikipedia.org/wiki/Ada_Lovelace">Ada Lovelace</a> so far &#8211; you should: She lived in the early 19th century, and is known today especially for her work on Charles Babbage&#8217;s early mechanical general-purpose computer, the analytical engine. Ada is regarded not only as the first female programmer, she is actually regarded as the world&#8217;s first computer programmer.</p>
<p>The &#8220;Ada Lovelace Day&#8221; celebrates the achievements of women in technology and science and pledges for blog posts about this topic. As the Ubuntu community tries to emphasize the involvement of women in the contribution to the project (e.g. see <a href="http://ubuntu-women.org/">Ubuntu Women</a>), there might interesting stories about an Ubuntu specific focus on this day&#8217;s topic.</p>
<p>I am looking forward the 24nd, there are over 1000 blog post pledges so far. In case you use twitter, have a look at the hash marks <a href="http://twitter.com/search?q=%23AdaLovelace">#AdaLovelace</a> and <a href="http://twitter.com/search?q=%23AdaLovelace#search?q=%23ALD10">#ald10</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2010/03/20/ada-lovelace-day-on-24nd-of-march/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GNU Emacs workshop at c-base / Berlin</title>
		<link>http://www.screenage.de/blog/2010/03/16/gnu-emacs-workshop-at-c-base-berlin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gnu-emacs-workshop-at-c-base-berlin</link>
		<comments>http://www.screenage.de/blog/2010/03/16/gnu-emacs-workshop-at-c-base-berlin/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 10:43:21 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Emacs]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2010/03/16/gnu-emacs-workshop-at-c-base-berlin/</guid>
		<description><![CDATA[Emacs? Emacs! I proudly announce the first Emacs workshop held by the incredible Anselm Helbig (also known as &#8220;mnemonikk&#8221;), starting next Monday, the 22nd of March at c-base/Berlin/Germany. If you ever wanted to start using Emacs as an advanced editor &#8230; <a href="http://www.screenage.de/blog/2010/03/16/gnu-emacs-workshop-at-c-base-berlin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Emacs? Emacs! I proudly announce the first Emacs workshop held by the incredible <a href="http://mnemonikk.org">Anselm Helbig</a> (also known as &#8220;mnemonikk&#8221;), starting next Monday, the 22nd of March at c-base/Berlin/Germany. If you ever wanted to start using Emacs as an advanced editor and development environment, this is the right kick off workshop for you. Anselm is ready to answer all your questions regarding installation, configuration, usage and programming of the GNU Emacs editor. The focus of the workshop is a hands on experience rather than a lecture.</p>
<p>A detailed German description of the workshop can be found <a href="http://mnemonikk.org/emacs-workshop/ankuendigung/">in Anselm&#8217;s blog</a>. The workshop is free of charge. </p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=09dc227b-47d8-8672-9a94-183f524d1cd5" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2010/03/16/gnu-emacs-workshop-at-c-base-berlin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>When backups fail: A mysql binlog race condition</title>
		<link>http://www.screenage.de/blog/2010/03/02/when-backups-fail-a-mysql-binlog-race-condition/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=when-backups-fail-a-mysql-binlog-race-condition</link>
		<comments>http://www.screenage.de/blog/2010/03/02/when-backups-fail-a-mysql-binlog-race-condition/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 21:24:42 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Backup]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2010/03/02/when-backups-fail-a-mysql-binlog-race-condition/</guid>
		<description><![CDATA[Today I ran into my first MySQL binlog race condition: The initial problem was quite simple: A typical MySQL master-&#62;slave setup with heavy load on the master and nearly no load on the slave, which only serves as a hot &#8230; <a href="http://www.screenage.de/blog/2010/03/02/when-backups-fail-a-mysql-binlog-race-condition/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I ran into my first MySQL binlog race condition: The initial problem was quite simple: A typical MySQL master-&gt;slave setup with heavy load on the master and nearly no load on the slave, which only serves as a hot fallback and job machine, showed differences on the same table on both machines. The differences showed up from time to time: entries that have been deleted from the master were still on the slave.</p>
<p>After several investigations I started examining the MySQL binlog from the master &#8211; a file containing all queries that will be transferred to the slave (and executed there if they don&#8217;t match any ignore-db-pattern). I grepped for ids of rows that have not been deleted on the slave as I&#8217;s interested if the DELETE statement was in the binlog. In order to read a binlog file just use &#8220;mysqlbinlog&#8221; and parse the output with grep, less or similar. To my surprise I found the following entries:
<pre wrap="">$ mysqlbinlog mysql-complete-bin.000335 | grep 1006974
DELETE FROM `tickets` WHERE `id` = 1006974
SET INSERT_ID=1006974/*!*/;
</pre>
<p>As &#8220;SET INSERT_ID&#8221; is a result of an INSERT statement it was clear, that MySQL wrote the INSERT =&gt; DELETE statements in the wrong order. As INSERT/DELETE sometimes occur quite fast after each other and several MySQL&nbsp; threads are open in the same MySQL server, you might run into a rare INSERT/DELETE race condition as the master successfully executes them, while the slave receives them in the wrong order.</p>
<p>As a comparision this is a normal order of INSERT and DELETE (please note that the actual INSERT is not displayed here):
<pre wrap="">$ mysqlbinlog mysql-complete-bin.000336 | grep 1007729&lt;br /&gt;SET INSERT_ID=1007729/*!*/;&lt;br /&gt;DELETE FROM `tickets` WHERE `id` = 1007729&lt;br /&gt;</pre>
<p>Actually this all so far. Lesson learned for me: A mysql binlog might get you into serious trouble when firing a MySQL server with INSERT and DELETE on the same rows as the linear binlog file can fail the correct statement order, which might be a result of different MySQL threads and an unclean log behavior. I have not yet found a generic solution for the problem but I am looking forward to it. </p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=6ad70f11-c173-82eb-ba85-9f75d441b02b" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2010/03/02/when-backups-fail-a-mysql-binlog-race-condition/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ubuntu Karmic Koala and Ubuntu Berlin enter metro system again</title>
		<link>http://www.screenage.de/blog/2009/10/26/ubuntu-karmic-koala-and-ubuntu-berlin-enter-metro-system-again/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ubuntu-karmic-koala-and-ubuntu-berlin-enter-metro-system-again</link>
		<comments>http://www.screenage.de/blog/2009/10/26/ubuntu-karmic-koala-and-ubuntu-berlin-enter-metro-system-again/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 13:46:16 +0000</pubDate>
		<dc:creator>ccm</dc:creator>
				<category><![CDATA[Berlin]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[KarmicKoala]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.screenage.de/blog/2009/10/26/ubuntu-karmic-koala-and-ubuntu-berlin-enter-metro-system-again/</guid>
		<description><![CDATA[Once again, &#8220;Berliner Fenster&#8220;, the company behind the Berlin inside metro tv advertising system was so kind to provide the Ubuntu Berlin Karmic Koala release party at c-base and the release of Ubuntu with it&#8217;s own spot. It  will be &#8230; <a href="http://www.screenage.de/blog/2009/10/26/ubuntu-karmic-koala-and-ubuntu-berlin-enter-metro-system-again/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.screenage.de/blog/2009/04/23/ubuntu-jaunty-jackalope-on-berlin-metro-system/" target="_blank">Once again</a>, &#8220;<a href="http://www.berliner-fenster.de/intro-engl.html" target="_blank">Berliner Fenster</a>&#8220;, the company behind the Berlin inside metro tv advertising system was so kind to provide the U<a href="http://www.ubuntu-berlin.de/karmic-release-party" target="_blank">buntu Berlin Karmic Koala release party</a> at <a href="http://c-base.org/" target="_blank">c-base</a> and the release of Ubuntu with it&#8217;s own spot. It  will be shown for three days from 29th to 31th this month every 15 minutes on hundreds of screens viewable by more than a million passengers:</p>
<div class="youtube-video"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/nW-9iVXRhsw&amp;feature=youtube_gdata" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/nW-9iVXRhsw&amp;feature=youtube_gdata" wmode="transparent"></embed></object></div>
<p>If you cannot see the embedded spot, click on <a href="http://www.youtube.com/watch?v=nW-9iVXRhsw" target="_blank">this link</a>.<a href="http://www.youtube.com/watch?v=vWxuTF5_L84"></a></p>
<p>It&#8217;s really nice to have this great audience-appealing support once again, as it presents Ubuntu in a totally non-techie medium, reaching an audience that is hard to reach and that has time to consume  input &#8211; as the screens inside the metro trains are quite appealing.</p>
<p>I&#8217;ll see if I can post some real life pictures of the spot soon.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=53537964-1fa4-827a-9023-c65bd2d2b20c" alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.screenage.de/blog/2009/10/26/ubuntu-karmic-koala-and-ubuntu-berlin-enter-metro-system-again/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

