<?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>My two ¢&#039;s &#187; Linux</title>
	<atom:link href="http://www.linuxaddicted.de/blog/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.linuxaddicted.de/blog</link>
	<description>A Gentoo addict, linux admin and developer</description>
	<lastBuildDate>Wed, 31 Mar 2010 12:12:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>OpenVPN active/active cluster</title>
		<link>http://www.linuxaddicted.de/blog/2010/02/01/openvpn-activeactive-cluster/</link>
		<comments>http://www.linuxaddicted.de/blog/2010/02/01/openvpn-activeactive-cluster/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 18:49:10 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[keepalived]]></category>
		<category><![CDATA[OpenVPN]]></category>

		<guid isPermaLink="false">http://www.linuxaddicted.de/blog/?p=293</guid>
		<description><![CDATA[<p>Code snippets are for Gentoo systems but it should be easy to adapt this for other systems</p> <p>This is a small howto explaining how to run a active/active Cluster (keeplaived) setup with OpenVPN. The active/active reflects that both cluster nodes run the same OpenVPN instance. In server mode this setup leads to routing problems <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.linuxaddicted.de/blog/2010/02/01/openvpn-activeactive-cluster/">OpenVPN active/active cluster</a></span>]]></description>
			<content:encoded><![CDATA[<p><em>Code snippets are for Gentoo systems but it should be easy to adapt this for other systems</em></p>
<p>This is a small howto explaining how to run a active/active Cluster (keeplaived) setup with OpenVPN. The active/active reflects that both cluster nodes run the same OpenVPN instance. In server mode this setup leads to routing problems as both nodes have the tunnel route added during startup (not after connect). This results in routing trouble as i needed the passive node to access the VPN tunnel via the active node. This is how i solved it:<br />
<span id="more-293"></span></p>
<h2>Routing setup</h2>
<p>Both firewall nodes have a static route which forwards tunnel traffic to one of the internal cluster IP&#8217;s. The metric for this route is 2 so a active tunnel is preferred over that static route.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">routes_eth2</span>=<span style="color: #7a0874; font-weight: bold;">&#40;</span> <span style="color: #ff0000;">&quot;192.168.44.0/24 via 192.168.20.254 metric 2&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>It doesn&#8217;t matter which node is active and gets the VPN connects as the other node has the right routing entries.</p>
<h2>OpenVPN configuration</h2>
<p>This setup requires the use of sudo or to run the OpenVPN daemon as root (sudo, sudo, sudo!!!). First we disable to automatically adding of routes and specify scripts for client-connect and client-disconnect. Dont forget to set script security.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">route-noexec
client-connect <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>cluster_routing.sh
client-disconnect <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>openvpn<span style="color: #000000; font-weight: bold;">/</span>cluster_routing.sh
script-security <span style="color: #000000;">3</span></pre></div></div>

<h2>cluster_routing.sh</h2>
<p>This is a simple version of the script but it should be sufficient to work in most scenarios.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## This is useful for debugging and to get the available env vars</span>
<span style="color: #666666; font-style: italic;">##exec &amp;gt; /tmp/ovpn.debug.$$ 2&amp;gt;&amp;amp;1; set -x</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">${script_type}</span>&quot;</span> == <span style="color: #ff0000;">&quot;client-connect&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>;
<span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>route add <span style="color: #660033;">-net</span> <span style="color: #800000;">${route_network_1}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span> gw <span style="color: #800000;">${route_vpn_gateway}</span>
<span style="color: #000000; font-weight: bold;">else</span>
    <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>route del <span style="color: #660033;">-net</span> <span style="color: #800000;">${route_network_1}</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span> gw <span style="color: #800000;">${route_vpn_gateway}</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span></pre></div></div>

<p>This script adds and removes the needed route to get a operational tunnel.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxaddicted.de/blog/2010/02/01/openvpn-activeactive-cluster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Short review: Puppet for Gentoo servers</title>
		<link>http://www.linuxaddicted.de/blog/2009/12/18/short-review-puppet-for-gentoo-servers/</link>
		<comments>http://www.linuxaddicted.de/blog/2009/12/18/short-review-puppet-for-gentoo-servers/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:51:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.linuxaddicted.de/blog/?p=246</guid>
		<description><![CDATA[<p>I recently started to integrate Puppet with my company&#8217;s OS installer to build custom Gentoo servers in almost no time. The install/build system reached a stable state and i want to share some information&#8217;s on what i did to get it working. The Gentoo support of puppet is not perfect but sufficient for my <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.linuxaddicted.de/blog/2009/12/18/short-review-puppet-for-gentoo-servers/">Short review: Puppet for Gentoo servers</a></span>]]></description>
			<content:encoded><![CDATA[<p>I recently started to integrate <a href="http://reductivelabs.com/trac/puppet/" target="_blank">Puppet</a> with my company&#8217;s OS installer to build custom Gentoo servers in almost no time. The install/build system reached a stable state and i want to share some information&#8217;s on what i did to get it working. The Gentoo support of puppet is not perfect but sufficient for my use case. There are still some issues to solve:</p>
<ul>
<li>Slots don&#8217;t work (I&#8217;m working on a patch for the portage provider to address this issue)</li>
<li>No nice way to manage /etc/conf.d/net</li>
<li>Only the runlevel &#8220;default&#8221; can be managed (This is sufficient for most cases)</li>
<li>No built in USE flag support (i use a binhost so this doesn&#8217;t really affect my setup). Check this <a href="http://log.onthebrink.de/2008/05/using-puppet-on-gentoo.html" target="_blank">site</a> for a possible solution</li>
</ul>
<p>The missing slots integration is especially important when it comes to Tomcat. Tomcat requires sun-jdk-1.5 and sun-jdk-1.6. I solved this by adding sun-jdk-1.5 to our install image. Apart from this problems it works very well.<span id="more-246"></span></p>
<h2>Binhost setup</h2>
<p>The easiest way to ensure that all systems run the same software (version, use flags) is to setup a portage binhost and force all clients to use this server as only package source. There are a lot of howto&#8217;s out there on creating a binhost so i won&#8217;t explain it detail. To force all clients to use only binary packages set the following statements in make.conf (Puppet distribution!):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">PORTAGE_BINHOST</span>=<span style="color: #ff0000;">&quot;http://192.168.1.1/x86_64&quot;</span>
<span style="color: #007800;">EMERGE_DEFAULT_OPTS</span>=<span style="color: #ff0000;">&quot;--getbinpkgonly --usepkgonly&quot;</span></pre></div></div>

<p>The parameter EMERGE_DEFAULT_OPTS is important because Puppet will run the command &#8220;emerge xxx/yyy&#8221; so you can&#8217;t specify extra parameters. This parameter setup ensures that the package cannot be installed when the binary package is missing on the binhost.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxaddicted.de/blog/2009/12/18/short-review-puppet-for-gentoo-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl: Use of &#8220;flock&#8221;</title>
		<link>http://www.linuxaddicted.de/blog/2008/12/10/perl-use-of-flock/</link>
		<comments>http://www.linuxaddicted.de/blog/2008/12/10/perl-use-of-flock/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 21:31:39 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.linuxaddicted.de/blog/?p=180</guid>
		<description><![CDATA[<p>This is a small example on flock. It may help you to prevent multiple running instances of the same script. Assume you run the script via cron and it may not be finished when cron attempts to start it again. This few lines of code solve this issue.</p> <p></p> if &#40; ! open&#40; LOCK, <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.linuxaddicted.de/blog/2008/12/10/perl-use-of-flock/">Perl: Use of &#8220;flock&#8221;</a></span>]]></description>
			<content:encoded><![CDATA[<p>This is a small example on flock. It may help you to prevent multiple running instances of the same script. Assume you run the script via cron and it may not be finished when cron attempts to start it again. This few lines of code solve this issue.</p>
<p><span id="more-180"></span></p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span> LOCK<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;&gt;/var/run/my_app.lock&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Failed to open lock file: $!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">## Create exclusive, non blocking lock: LOCK_EX(2) + LOCK_NB(4)</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <span style="color: #000066;">flock</span><span style="color: #009900;">&#40;</span> LOCK<span style="color: #339933;">,</span> <span style="color: #cc66cc;">6</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span> LOCK <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span> PID<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;&lt;/var/run/my_app.pid&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Failed to read PID file: $!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">my</span> <span style="color: #0000ff;">$pid</span> <span style="color: #339933;">=</span> <span style="color: #009999;">&lt;PID&gt;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span> PID <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Failed to accquire lock. Another instance (PID $pid) running!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span> PID<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;&gt;/var/run/my_app.pid&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Failed to open pid file: $!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066;">print</span> PID <span style="color: #0000ff;">$$</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <span style="color: #000066;">close</span><span style="color: #009900;">&#40;</span> PID <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066;">print</span> <span style="color: #ff0000;">&quot;Failed to write PID file: $!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000066;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>That&#8217;s it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxaddicted.de/blog/2008/12/10/perl-use-of-flock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portage: Patch existing Perl module ebuild by using a overlay</title>
		<link>http://www.linuxaddicted.de/blog/2008/12/10/portage-patch-existing-perl-module-ebuild-by-using-a-overlay/</link>
		<comments>http://www.linuxaddicted.de/blog/2008/12/10/portage-patch-existing-perl-module-ebuild-by-using-a-overlay/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 19:19:09 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ebuild]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Portage]]></category>

		<guid isPermaLink="false">http://www.linuxaddicted.de/blog/?p=173</guid>
		<description><![CDATA[<p>You may have had the same issue as i some time ago. You install a perl module from Portage but you have to modify the module&#8217;s code. Of course you don&#8217;t want to patch and install manually. Assuming the module is named &#8220;foobar&#8221; here&#8217;s how i solved it:</p> <p></p> Create a Portage Overlay (refer <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.linuxaddicted.de/blog/2008/12/10/portage-patch-existing-perl-module-ebuild-by-using-a-overlay/">Portage: Patch existing Perl module ebuild by using a overlay</a></span>]]></description>
			<content:encoded><![CDATA[<p>You may have had the same issue as i some time ago. You install a perl module from Portage but you have to modify the module&#8217;s code. Of course you don&#8217;t want to patch and install manually. Assuming the module is named &#8220;foobar&#8221; here&#8217;s how i solved it:</p>
<p><span id="more-173"></span></p>
<ol>
<li>Create a Portage Overlay (refer to the official documentation) and enable it in /etc/make.conf</li>
<li>Create a new category directory within your overlay dir (mkdir /usr/local/portage/my-ebuilds)</li>
<li>Create application directory (mkdir /usr/local/portage/my-ebuilds/foobar)</li>
<li>Copy the existing ebuild to the new app directory</li>
<li>Create a files directory and put the patch there</li>
<li>Modify the ebuild to apply your patch</li>
</ol>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;"><span style="color: #339933;">...</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># This is the magic line:</span>
PATCHES<span style="color: #339933;">=</span><span style="color: #ff0000;">&quot;${FILESDIR}/my_patch.patch&quot;</span>
&nbsp;
<span style="color: #339933;">...</span></pre></div></div>

<p>After you finished these tasks you have to (re)generate the Manifest:</p>

<div class="wp_syntax"><div class="code"><pre class="perl" style="font-family:monospace;">ebuild <span style="color: #009900;">&#91;</span>OVERLAY_PATH<span style="color: #009900;">&#93;</span><span style="color: #339933;">/</span>my<span style="color: #339933;">-</span>ebuilds<span style="color: #339933;">/</span>foobar<span style="color: #339933;">/</span>foobar<span style="color: #339933;">-</span>1<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>ebuild digest</pre></div></div>

<p>That&#8217;s it. If you have trouble feel free to contact me: daniel@linuxaddicted.de</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxaddicted.de/blog/2008/12/10/portage-patch-existing-perl-module-ebuild-by-using-a-overlay/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gentoo: Unmerging software including configs and data</title>
		<link>http://www.linuxaddicted.de/blog/2008/12/03/gentoo-unmerging-software-including-configs-and-data/</link>
		<comments>http://www.linuxaddicted.de/blog/2008/12/03/gentoo-unmerging-software-including-configs-and-data/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 13:33:11 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Portage]]></category>

		<guid isPermaLink="false">http://www.linuxaddicted.de/blog/?p=157</guid>
		<description><![CDATA[<p>If you&#8217;re unmerging software in Gentoo some files stay on your server. This is a result of the setting CONFIG_PROTECT. To unmerge a package completely use this command:</p> ~&#62; CONFIG_PROTECT=&#34;&#34; emerge -C &#91;SOFTWARE&#93; ]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re unmerging software in Gentoo some files stay on your server. This is a result of the setting CONFIG_PROTECT. To unmerge a package completely use this command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">~<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">CONFIG_PROTECT</span>=<span style="color: #ff0000;">&quot;&quot;</span> emerge <span style="color: #660033;">-C</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>SOFTWARE<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.linuxaddicted.de/blog/2008/12/03/gentoo-unmerging-software-including-configs-and-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Useful BASH setting: Ignore duplicate commands</title>
		<link>http://www.linuxaddicted.de/blog/2008/12/03/useful-bash-setting-ignore-duplicate-commands/</link>
		<comments>http://www.linuxaddicted.de/blog/2008/12/03/useful-bash-setting-ignore-duplicate-commands/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 13:31:16 +0000</pubDate>
		<dc:creator>daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://www.linuxaddicted.de/blog/?p=154</guid>
		<description><![CDATA[<p>There are many settings that make BASH even more usable. As many people doesn&#8217;t seem to know this particular parameter i post it here:</p> HISTCONTROL=&#34;ignoredups&#34; <p>This setting in bashrc or profile makes BASH ignore duplicate commands when searching the history. It&#8217;s pretty useful if you had entered the same command several times.</p> ]]></description>
			<content:encoded><![CDATA[<p>There are many settings that make BASH even more usable. As many people doesn&#8217;t seem to know this particular parameter i post it here:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">HISTCONTROL</span>=<span style="color: #ff0000;">&quot;ignoredups&quot;</span></pre></div></div>

<p>This setting in bashrc or profile makes BASH ignore duplicate commands when searching the history. It&#8217;s pretty useful if you had entered the same command several times.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxaddicted.de/blog/2008/12/03/useful-bash-setting-ignore-duplicate-commands/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

