<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>ipunct</title>
	
	<link>http://www.ipunct.net</link>
	<description>IT-Lösungen auf den Punkt gebracht</description>
	<lastBuildDate>Thu, 28 Oct 2010 13:45:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ipunct" /><feedburner:info uri="ipunct" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>OpenLDAP replication on Ubuntu Lucid with cn=config backend</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/svms-C75iQs/</link>
		<comments>http://www.ipunct.net/blog/2010/09/openldap-replication-on-ubuntu-lucid-with-cn-config-backend/#comments</comments>
		<pubDate>Tue, 07 Sep 2010 13:24:49 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenLDAP]]></category>
		<category><![CDATA[Replication]]></category>

		<guid isPermaLink="false">http://www.ipunct.net/?p=505</guid>
		<description><![CDATA[Introduced with Ubuntu 9.10 OpenLDAP uses the cn=config-Backend for &#8220;live&#8221; configuration of the LDAP-Server without restarting the service. The benefit of the &#8220;live&#8221; config feature is bought by a complexer configuration with LDAP Syntax and LDIF-Files. I will describe a easier way to setup a OpenLDAP Replication using slapd.conf as a base for the cn=config-Backend. [...]]]></description>
			<content:encoded><![CDATA[<p>Introduced with <a href="http://www.ubuntu.org"target="_blank"rel="external"title="Ubuntu" >Ubuntu</a> 9.10 <a href="http://www.openldap.org"target="_blank"rel="external"title="OpenLDAP" >OpenLDAP</a> uses the <code>cn=config</code>-Backend for &#8220;live&#8221; configuration of the LDAP-Server without restarting the service. The benefit of the &#8220;live&#8221; config feature is bought by a complexer configuration with LDAP Syntax and LDIF-Files.</p>
<p>I will describe a easier way to setup a OpenLDAP Replication using slapd.conf as a base for the <code>cn=config</code>-Backend.</p>
<p>The shown way is based on OpenLDAP shipped with Ubuntu 10.04 LTS (Lucid) using SSL. The master LDAP-Server configuration is not part of this HowTo. So we are considering you have a running Master LDAP Server, that is already configured to provide LDAP Replication mechanism.<br />
<span id="more-505"></span></p>
<h3>HowTo</h3>
<p><em>(I am assuming you are root on the Ubuntu Box, otherwise prefix the commands with <code>sudo</code>)</em></p>
<ul>
<li><code>aptitude install slapd ldap-utils</code></li>
<li><code>/etc/init.d/slapd stop</code></li>
<li><code>cd /etc/ldap</code></li>
<li><code>mv slapd.d slapd.d.backup</code></li>
<li>create slapd.conf (e.g. <code>vi slapd.conf</code>), with your replication directives know from Ubuntu &lt; 9.10<br />
<em>(Note this slapd.conf is just a example we are using it, please adapt it matching your needs. Furthermore all ACL directives are defaults in this example, so please use your ACLs defined on the master or adapt the slave ones matching your needs. The <code>syncrepl rid</code> may vary depending on your system too.</em>)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">include         <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ldap<span style="color: #000000; font-weight: bold;">/</span>schema<span style="color: #000000; font-weight: bold;">/</span>core.schema
include         <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ldap<span style="color: #000000; font-weight: bold;">/</span>schema<span style="color: #000000; font-weight: bold;">/</span>cosine.schema
include         <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ldap<span style="color: #000000; font-weight: bold;">/</span>schema<span style="color: #000000; font-weight: bold;">/</span>nis.schema
include         <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ldap<span style="color: #000000; font-weight: bold;">/</span>schema<span style="color: #000000; font-weight: bold;">/</span>inetorgperson.schema
pidfile         <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>slapd<span style="color: #000000; font-weight: bold;">/</span>slapd.pid
argsfile        <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>slapd<span style="color: #000000; font-weight: bold;">/</span>slapd.args
loglevel        none
modulepath      <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>ldap
moduleload      back_hdb
sizelimit <span style="color: #000000;">500</span>
tool-threads <span style="color: #000000;">1</span>
backend         hdb
database        hdb
suffix          <span style="color: #ff0000;">&quot;dc=yourdomain,dc=info&quot;</span>
rootdn          <span style="color: #ff0000;">&quot;cn=admin,dc=yourdomain,dc=info&quot;</span>
syncrepl <span style="color: #007800;">rid</span>=<span style="color: #000000;">125</span>
         <span style="color: #007800;">provider</span>=ldaps:<span style="color: #000000; font-weight: bold;">//</span>masterldap.yourdomain.info
         <span style="color: #007800;">type</span>=refreshAndPersist
         <span style="color: #007800;">searchbase</span>=<span style="color: #ff0000;">&quot;dc=yourdomain,dc=info&quot;</span>
         <span style="color: #007800;">filter</span>=<span style="color: #ff0000;">&quot;(objectClass=*)&quot;</span>
         <span style="color: #007800;">scope</span>=sub
         <span style="color: #007800;">schemachecking</span>=off
         <span style="color: #007800;">bindmethod</span>=simple
         <span style="color: #007800;">binddn</span>=<span style="color: #ff0000;">&quot;cn=auth,dc=yourdomain,dc=info&quot;</span>
         <span style="color: #007800;">credentials</span>=your_sync_user_pw
directory       <span style="color: #ff0000;">&quot;/var/lib/ldap&quot;</span>
dbconfig set_cachesize <span style="color: #000000;">0</span> <span style="color: #000000;">2097152</span> <span style="color: #000000;">0</span>
dbconfig set_lk_max_objects <span style="color: #000000;">1500</span>
dbconfig set_lk_max_locks <span style="color: #000000;">1500</span>
dbconfig set_lk_max_lockers <span style="color: #000000;">1500</span>
index           objectClass eq
lastmod         on
checkpoint      <span style="color: #000000;">512</span> <span style="color: #000000;">30</span>
&nbsp;
access to <span style="color: #007800;">attrs</span>=userPassword,shadowLastChange
        by <span style="color: #007800;">dn</span>=<span style="color: #ff0000;">&quot;cn=admin,dc=yourdomain,dc=info&quot;</span> <span style="color: #c20cb9; font-weight: bold;">write</span>
        by anonymous auth
        by self <span style="color: #c20cb9; font-weight: bold;">write</span>
        by <span style="color: #000000; font-weight: bold;">*</span> none
&nbsp;
access to dn.base=<span style="color: #ff0000;">&quot;&quot;</span> by <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #c20cb9; font-weight: bold;">read</span>
&nbsp;
access to <span style="color: #000000; font-weight: bold;">*</span>
        by <span style="color: #007800;">dn</span>=<span style="color: #ff0000;">&quot;cn=admin,dc=yourdomain,dc=info&quot;</span> <span style="color: #c20cb9; font-weight: bold;">write</span>
        by <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #c20cb9; font-weight: bold;">read</span>
&nbsp;
TLSCACertificateFile <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ldap<span style="color: #000000; font-weight: bold;">/</span>ca.crt
TLSCertificateFile <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ldap<span style="color: #000000; font-weight: bold;">/</span>your.host.crt
TLSCertificateKeyFile <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ldap<span style="color: #000000; font-weight: bold;">/</span>your.host.key
<span style="color: #666666; font-style: italic;"># For Self signed Certs use:</span>
TLSVerifyClient never</pre></div></div>

</li>
<li><code>mkdir slapd.d</code></li>
<li><code>slaptest -f slapd.conf -F slapd.d</code> (this generates the new <code>cn=config</code> based on the slad.conf)</li>
<li><code>chown -R openldap: slapd.d</code></li>
<li><code>vi slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif</code>
<ul>
<li>remove <code>uri=""</code> from <code>olcSyncrepl</code></li>
<li>add <code>retry="5 5 300 +"</code> to <code>olcSyncrepl</code></li>
<li>result should look like this:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">olcSyncrepl: <span style="color: #007800;">rid</span>=<span style="color: #000000;">125</span> <span style="color: #007800;">provider</span>=ldaps:<span style="color: #000000; font-weight: bold;">//</span>masterldap.yourdomain.info <span style="color: #007800;">bindmethod</span>=simple
  <span style="color: #007800;">timeout</span>=<span style="color: #000000;">0</span> network-timeout=<span style="color: #000000;">0</span> <span style="color: #007800;">binddn</span>=<span style="color: #ff0000;">&quot;cn=auth,dc=yourdomain,dc=info&quot;</span> <span style="color: #007800;">credentials</span>=<span style="color: #ff0000;">&quot;y
  our_sync_user_pw&quot;</span> <span style="color: #007800;">starttls</span>=no <span style="color: #007800;">tls_reqcert</span>=demand <span style="color: #007800;">filter</span>=<span style="color: #ff0000;">&quot;(objectClass=*)&quot;</span> <span style="color: #007800;">searchbase</span>=<span style="color: #ff0000;">&quot;dc=
 ipunct,dc=net&quot;</span> <span style="color: #007800;">scope</span>=sub <span style="color: #007800;">schemachecking</span>=off <span style="color: #007800;">type</span>=refreshAndPersist <span style="color: #007800;">retry</span>=unde
 fined <span style="color: #007800;">retry</span>=<span style="color: #ff0000;">&quot;5 5 300 +&quot;</span></pre></div></div>

</li>
<li>Reference: BUG  in sldap.conf conversion (<a href="http://www.openldap.org/its/">http://www.openldap.org/its/</a> ITS#6465)</li>
</ul>
</li>
<li>edit <code>/etc/default/slapd.conf</code> to enabled ldaps and use ldap just on localhost:
<pre>SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///"
</pre>
</li>
<li>Copy over the needed SSL certificates and key and check access rights of the files</li>
<li><code>/etc/init.d/slapd start</code></li>
<li>on issues use slapd debug mode: <code>slapd -d 16383</code></li>
</ul>
<h3><a href="http://www.ipunct.net/leistungen/software-systemlosungen/">Professional Linux and OpenLDAP support</a></h3>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/svms-C75iQs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2010/09/openldap-replication-on-ubuntu-lucid-with-cn-config-backend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2010/09/openldap-replication-on-ubuntu-lucid-with-cn-config-backend/</feedburner:origLink></item>
		<item>
		<title>Atlassian Confluence 3.1.2 on Sun Glassfish V2</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/XYaXH_1jnKw/</link>
		<comments>http://www.ipunct.net/blog/2010/03/atlassian-confluence-3-1-2-on-sun-glassfish-v2/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 14:45:05 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Atlassian]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://blog.ipunct.net/?p=79</guid>
		<description><![CDATA[Abstract Confluence is a Enterprise Wiki from Atlassian, which is just awesome. It is supporting tons of free and commercial Plugins and Themes. It is perfect for documentation, document management and working in Teams. We are using it since the middle of the last year starting with Version 3.0.2 running on Sun Oracle Glassfish V2 [...]]]></description>
			<content:encoded><![CDATA[<h2 class="first">Abstract</h2>
<p><a href="http://www.atlassian.com/software/confluence/"target="_blank"rel="external"title="Confluence" >Confluence</a> is a Enterprise Wiki from Atlassian, which is just awesome. It is supporting tons of free and commercial Plugins and Themes. It is perfect for documentation, document management and working in Teams.</p>
<p>We are using it since the middle of the last year starting with Version 3.0.2 running on <del datetime="2010-09-07T12:10:48+00:00">Sun</del> <a href="http://www.oracle.com/de/index.html"target="_blank"rel="external"title="Oracle" >Oracle</a> <a href="https://glassfish.dev.java.net/"target="_blank"rel="external"title="Glassfish" >Glassfish</a> V2 Application Server. The first Upgrade try to Confluence 3.1.1 failed caused by compatibility issues of <strong><a href="http://www.apache.org"target="_blank"rel="external"title="Apache" >Apache</a> Xerces</strong>. Denny a colleague of mine figured out a way to solve that issue.</p>
<p>The Confluence setup it self is well described on the Atlassian Homepage, but as <a href="http://www.atlassian.com">Atlassian</a> is not officially supporting <del datetime="2010-09-07T12:03:14+00:00">Sun</del> Oracle Glassfish Application Server, this post will describe how to get Confluence running on Glassfish V2.<br />
<span id="more-79"></span></p>
<h2>Preparing of the Confluence WAR</h2>
<p>Download the Confluence WAR (in our case Confluence 3.1.2 from 3th March 2010) from the Atlassian Homepage, to the Linux Box you want to deploy the file on:</p>
<h3>Download EAR/WAR and extract</h3>
<p><code>cd /usr/local/src<br />
wget http://www.atlassian.com/software/confluence/downloads/binary/confluence-3.1.2.tar.gz<br />
tar xfzv confluence-3.1.2.tar.gz<br />
</code></p>
<h3>Confluence needed changes</h3>
<p><code> vi confluence-3.1.2/confluence/WEB-INF/classes/confluence-init.properties<br />
</code><br />
and set <strong>confluence.home=/local/confluence</strong> to you Confluence Data Directory.</p>
<p>Afterwards create the data directory <code>mkdir -p /local/confluence</code>, you may need to change the owner and/or rights to the USER Glassifish is running as.</p>
<p>Finally build the new WAR, that will be deployed on the Glassfish Application Server:<br />
<code>/usr/local/src/confluence-3.1.2#sh build.sh</code></p>
<h2>Changes in Glassfish</h2>
<p>There are compatibility issues between the Apache Xerces library shipped with Glassfish and the one shipped with Confluence &gt; 3.1.</p>
<p>To prevent the conflicts in the JAVA Classpath we need to rename the <strong><code>GLASSFISH_HOME/lib/webservices-rt.jar</code></strong> to <strong><code>GLASSFISH_HOME/lib/webservices-rt-v2u1-b09d.jar</code></strong>, than edit <strong><tt>GLASSFISH_HOME/domains/*/config/domain.xml</tt></strong> and replace the library name by the modified library file name and restart the domain and the node agents.</p>
<p><strong>YEAH YEAH, all previously existing exception caused by the different Apache Xerces Libraries are gone</strong></p>
<h3><strong>Deployment in a rush</strong></h3>
<p><em>Skip the steps that are not need on your installation, e.g. if you already have a running node agent or similar</em></p>
<p>As said in the intro, the Setup and Installation is well described by Atlassian. So these steps will describe the deployment on a <strong>clustered</strong> Glassfish in a rush:</p>
<ul>
<li>Create DB and DB User</li>
<li>Get the JDBC Connector for <a href="http://www.mysql.de/"target="_blank"rel="external"title="MySQL" >MySQL</a>, if not already installed</li>
<li>Copy the <code>mysql-connector-java-5.0.6-bin.jar</code> to <code>GLASSFISH_HOME/lib</code></li>
<li>Create MySQL Connection Pool (test the connectivity)</li>
<li>Create a node-agent</li>
<li>Create a cluster called confluence</li>
<li>Create cluster instance for your node</li>
<li>Create a DataSource <code>jdbc/ConfluenceDS</code>using the already created ConnectionPool, assign it to the cluster confluence and enable it</li>
<li>Deploy the created WAR to the Application Server</li>
<li>Start the Cluster instance on the node you want to run it on</li>
<li>Proceed the need steps via the installation process</li>
</ul>
<h3>Update 1</h3>
<p>We have successfully deployed Atlassian Confluence 3.3 on Glassfish V2. So this HowTo can be adopted to Confluence 3.3 Version too.</p>
<h3>Update 2</h3>
<p>Today we deployed the new Atlassian Confluence 3.4 Version on Glassfish V2. So this HowTo can be used for the Confluence 3.4 installation too.</p>
<h3><a href="http://www.ipunct.net/leistungen/application-server-hosting/">Professional Confluence Support and Hosting</a></h3>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/XYaXH_1jnKw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2010/03/atlassian-confluence-3-1-2-on-sun-glassfish-v2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2010/03/atlassian-confluence-3-1-2-on-sun-glassfish-v2/</feedburner:origLink></item>
		<item>
		<title>Temperature Monitoring of 3Ware Controller with smartmontools, Nagios and NagiosGrapher</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/grxcgNLT5JA/</link>
		<comments>http://www.ipunct.net/blog/2009/06/temperature-monitoring-of-3ware-controller-with-smartmontools-nagios-and-nagiosgrapher/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 09:03:46 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[SNMP]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[3Ware]]></category>
		<category><![CDATA[NagiosGrapher]]></category>
		<category><![CDATA[smartctl]]></category>
		<category><![CDATA[smartmontools]]></category>

		<guid isPermaLink="false">http://blog.ipunct.net/?p=51</guid>
		<description><![CDATA[We have a 3Ware 9550SX-8LP installed in a Linuxserver running Ubuntu Server. What I am going to describe is, how we monitor the Harddisk Temperature via Nagios and graphing it via NagiosGrapher. This HowTo can easily be modified for other 3Ware Controllers. Installation and configuration of needed packages #aptitude install smartmontools snmpd Copy the a [...]]]></description>
			<content:encoded><![CDATA[<p>We have a <a href="http://www.3ware.com"target="_blank"rel="external"title="3Ware" >3Ware</a> 9550SX-8LP installed in a Linuxserver running <a href="http://www.ubuntu.org"target="_blank"rel="external"title="Ubuntu" >Ubuntu</a> Server. What I am going to describe is, how we monitor the Harddisk Temperature via <a href="http://www.nagios.org"target="_blank"rel="external"title="Nagios" >Nagios</a> and graphing it via NagiosGrapher. This HowTo can easily be modified for other 3Ware Controllers.<br />
<div id="attachment_313" class="wp-caption alignnone" style="width: 518px"><img class="size-large wp-image-313" title="Temperature graph from a 3Ware 9550SX-8LP with NagiosGrapher" src="http://www.ipunct.net/wp-content/uploads/2009/06/3ware_nagiographer_temp-508x335.png" alt="Temperature graph from a 3Ware 9550SX-8LP with NagiosGrapher" width="508" height="335" /><p class="wp-caption-text">Temperature graph from a 3Ware 9550SX-8LP with NagiosGrapher</p></div><span id="more-51"></span></p>
<h2>Installation and configuration of needed packages</h2>
<ul>
<li>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#aptitude install smartmontools snmpd</span></pre></div></div>

</li>
<li>Copy the a wrapper script for smartmontools to <strong>/usr/local/bin/get_smart_value.sh</strong>, it will be used by SNMP later

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;"># Extract the Temperature Value from the SMART values gained by smartclt</span>
<span style="color: #666666; font-style: italic;"># the value 194 contains the HDD Temperature</span>
smartctl <span style="color: #660033;">-a</span> <span style="color: #660033;">-d</span> 3ware,<span style="color: #800000;">${1}</span> <span style="color: #800000;">${2}</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> ^<span style="color: #000000;">194</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $10}'</span></pre></div></div>

<p>&#8230; and do a <strong>chmod +x  /usr/local/bin/get_smart_value.sh</strong></li>
<li>Configure SNMPd to to run extend-Commands (<strong>/etc/snmp/snmpd.conf</strong>) and add at the end of the file:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">...
extend 3Ware_1_Port0 <span style="color: #ff0000;">'/usr/bin/sudo /usr/local/bin/get_smart_value.sh 0 /dev/twa0'</span>
extend 3Ware_1_Port1 <span style="color: #ff0000;">'/usr/bin/sudo /usr/local/bin/get_smart_value.sh 1 /dev/twa0'</span>
extend 3Ware_1_Port2 <span style="color: #ff0000;">'/usr/bin/sudo /usr/local/bin/get_smart_value.sh 2 /dev/twa0'</span>
extend 3Ware_1_Port3 <span style="color: #ff0000;">'/usr/bin/sudo /usr/local/bin/get_smart_value.sh 3 /dev/twa0'</span>
extend 3Ware_1_Port4 <span style="color: #ff0000;">'/usr/bin/sudo /usr/local/bin/get_smart_value.sh 4 /dev/twa0'</span>
extend 3Ware_1_Port5 <span style="color: #ff0000;">'/usr/bin/sudo /usr/local/bin/get_smart_value.sh 5 /dev/twa0'</span>
<span style="color: #666666; font-style: italic;">#in our system just 6 HDDs are connected so we will return 0 for the non used</span>
extend 3Ware_1_Port6 <span style="color: #ff0000;">'/bin/echo 0'</span>
extend 3Ware_1_Port7 <span style="color: #ff0000;">'/bin/echo 0'</span></pre></div></div>

<p>&#8230; and restart SNMPd with <strong>/etc/init.d/snmpd restart</strong></li>
<li>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># visudo</span></pre></div></div>

<p>and add the following line</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snmp    ALL = NOPASSWD: <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>get_smart_value.sh</pre></div></div>

<p>&#8230; to allow <strong>snmp</strong> run the script as SuperUser, which is needed to get the S.M.A.R.T. values via smartctl</li>
</ul>
<h4>Nagios Temperature Checking</h4>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">define service<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        use                             generic-service
        host_name                       your-server-with-3ware.name.tld
        service_description             3Ware Temp. 9550SX-8LP
        flap_detection_enabled          <span style="color: #000000;">1</span>
        max_check_attempts              <span style="color: #000000;">4</span>
        check_period                    24x7
        notification_period             24x7
        check_command                   check_snmp<span style="color: #000000; font-weight: bold;">!</span><span style="color: #007800;">$HOSTADDRESS</span><span style="color: #007800;">$!</span>yourcommunitystring<span style="color: #000000; font-weight: bold;">!</span>2c<span style="color: #000000; font-weight: bold;">!</span>.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.51.87.97.114.101.95.49.95.80.111.114.116.48.1,.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.51.87.97.114.101.95.49.95.80.111.114.116.49.1,.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.51.87.97.114.101.95.49.95.80.111.114.116.50.1,.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.51.87.97.114.101.95.49.95.80.111.114.116.51.1,.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.51.87.97.114.101.95.49.95.80.111.114.116.52.1,.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.51.87.97.114.101.95.49.95.80.111.114.116.53.1,.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.51.87.97.114.101.95.49.95.80.111.114.116.54.1,.1.3.6.1.4.1.8072.1.3.2.4.1.2.13.51.87.97.114.101.95.49.95.80.111.114.116.55.1<span style="color: #000000; font-weight: bold;">!</span>NET-SNMP-EXTEND-MIB<span style="color: #000000; font-weight: bold;">!</span><span style="color: #000000;">45</span>,<span style="color: #000000;">45</span>,<span style="color: #000000;">45</span>,<span style="color: #000000;">45</span>,<span style="color: #000000;">45</span>,<span style="color: #000000;">45</span>,<span style="color: #000000;">2</span>,<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">!</span><span style="color: #000000;">50</span>,<span style="color: #000000;">50</span>,<span style="color: #000000;">50</span>,<span style="color: #000000;">50</span>,<span style="color: #000000;">50</span>,<span style="color: #000000;">50</span>,<span style="color: #000000;">4</span>,<span style="color: #000000;">4</span><span style="color: #000000; font-weight: bold;">!</span><span style="color: #ff0000;">'Port Temperatures'</span><span style="color: #000000; font-weight: bold;">!</span><span style="color: #ff0000;">'C'</span>,<span style="color: #ff0000;">'C'</span>,<span style="color: #ff0000;">'C'</span>,<span style="color: #ff0000;">'C'</span>,<span style="color: #ff0000;">'C'</span>,<span style="color: #ff0000;">'C'</span>,<span style="color: #ff0000;">'C'</span>,<span style="color: #ff0000;">'C'</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<h4>Nagiosgrapher</h4>
<p>in our config the Nagios Service is called &#8220;3Ware Temp. 9550SX-8LP&#8221;, so we put a config for nagiosgrapher into <strong>/etc/nagiosgrapher/ngraph.d</strong> called <strong>check_temp_3ware_smart_9550SX-8LP.ncfg</strong> that matches the serivce name and defines the needed RegExp to match the wanted data:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        graph_legend    Port <span style="color: #000000;">0</span>
        graph_legend_eol        none
        graph_perf_regex Port0\.1=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>-<span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        graph_units     degree C
        graph_value     Temp1
        hide            no
        rrd_color       ff0000
        rrd_plottype    LINE1
        service_name    ^3Ware Temp. 9550SX-8LP
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        graph_legend    Port <span style="color: #000000;">1</span>
        graph_legend_eol        LEFT
        graph_perf_regex Port1\.1=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>-<span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        graph_units     degree C
        graph_value     temp2
        hide    no
        rrd_color       0000ff
        rrd_plottype    LINE1
        service_name    ^3Ware Temp. 9550SX-8LP
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        graph_legend    Port <span style="color: #000000;">2</span>
        graph_legend_eol        LEFT
        graph_perf_regex Port2\.1=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>-<span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        graph_units     degree C
        graph_value     temp3
        hide    no
        rrd_color       00ffff
        rrd_plottype    LINE1
        service_name    ^3Ware Temp. 9550SX-8LP
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        graph_legend    Port <span style="color: #000000;">3</span>
        graph_legend_eol        LEFT
        graph_perf_regex Port3\.1=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>-<span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        graph_units     degree C
        graph_value     temp4
        hide    no
        rrd_color       00ff00
        rrd_plottype    LINE1
        service_name    ^3Ware Temp. 9550SX-8LP
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        graph_legend    Port <span style="color: #000000;">4</span>
        graph_legend_eol        LEFT
        graph_perf_regex Port4\.1=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>-<span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        graph_units     degree C
        graph_value     temp5
        hide    no
        rrd_color       45ff00
        rrd_plottype    LINE1
        service_name    ^3Ware Temp. 9550SX-8LP
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        graph_legend    Port <span style="color: #000000;">5</span>
        graph_legend_eol        LEFT
        graph_perf_regex Port5\.1=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>-<span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        graph_units     degree C
        graph_value     temp6
        hide    no
        rrd_color       00ff33
        rrd_plottype    LINE1
        service_name    ^3Ware Temp. 9550SX-8LP
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        graph_legend    Port <span style="color: #000000;">6</span>
        graph_legend_eol        LEFT
        graph_perf_regex Port6\.1=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>-<span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        graph_units     degree C
        graph_value     temp7
        hide    no
        rrd_color       DDFFDD
        rrd_plottype    LINE1
        service_name    ^3Ware Temp. 9550SX-8LP
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        graph_legend    Port <span style="color: #000000;">7</span>
        graph_legend_eol        LEFT
        graph_perf_regex Port7\.1=<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">0</span>-<span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>+<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        graph_units     degree C
        graph_value     temp8
        hide    no
        rrd_color       aaffaa
        rrd_plottype    LINE1
        service_name    ^3Ware Temp. 9550SX-8LP
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Latest:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  LAST
        print_source    Temp1
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Maximum:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  MAX
        print_source    Temp1
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Average:
        print_eol       left
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  AVERAGE
        print_source    Temp1
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Latest:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  LAST
        print_source    temp2
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Maximum:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  MAX
        print_source    temp2
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Average:
        print_eol       left
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  AVERAGE
        print_source    temp2
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Latest:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  LAST
        print_source    temp3
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Maximum:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  MAX
        print_source    temp3
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Average:
        print_eol       left
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  AVERAGE
        print_source    temp3
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Latest:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  LAST
        print_source    temp4
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Maximum:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  MAX
        print_source    temp4
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Average:
        print_eol       left
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  AVERAGE
        print_source    temp4
        service_name    ^3Ware Temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Latest:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  LAST
        print_source    temp5
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Maximum:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  MAX
        print_source    temp5
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Average:
        print_eol       left
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  AVERAGE
        print_source    temp5
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Latest:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  LAST
        print_source    temp6
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Maximum:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  MAX
        print_source    temp6
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Average:
        print_eol       left
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  AVERAGE
        print_source    temp6
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Latest:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  LAST
        print_source    temp7
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Maximum:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  MAX
        print_source    temp7
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Average:
        print_eol       left
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  AVERAGE
        print_source    temp7
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Latest:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  LAST
        print_source    temp8
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Maximum:
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  MAX
        print_source    temp8
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
define ngraph<span style="color: #7a0874; font-weight: bold;">&#123;</span>
        print_description       Average:
        print_eol       left
        print_format    <span style="color: #000000; font-weight: bold;">%</span>2.2lf
        print_function  AVERAGE
        print_source    temp8
        service_name    ^3Ware temp. 9550SX-8LP
        <span style="color: #7a0874; font-weight: bold;">type</span>    GPRINT
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></div></div>

<h4>BONUS: Short smartctl/3Ware excures</h4>
<ul>
<li>smartctl that comes with the smartmontools package is able to read the S.M.A.R.T. values from HDDs on a 3Ware Controller</li>
<li>it needs the 3Ware Port that should by queried for data and the 3ware blockdevice, on the newer controller series of 3Ware they are /dev/twaX, where X is the controller number and is starting at 0. So the first controller ist /dev/twa0 the second /dev/twa1 and so on.</li>
<li>older 3Ware controllers are using /dev/twe instead, just have a look and maybe modify the SNMP extend section to get the info from the correct controller/devive</li>
<li>Output on one of our System:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># smartctl -a -d 3ware,0 /dev/twa0</span>
smartctl version <span style="color: #000000;">5.37</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>x86_64-unknown-linux-gnu<span style="color: #7a0874; font-weight: bold;">&#93;</span> Copyright <span style="color: #7a0874; font-weight: bold;">&#40;</span>C<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000;">2002</span>-<span style="color: #000000;">6</span> Bruce Allen
Home page is http:<span style="color: #000000; font-weight: bold;">//</span>smartmontools.sourceforge.net<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
=== START OF INFORMATION SECTION ===
Model Family:     Western Digital Caviar RE Serial ATA series
Device Model:     WDC WD4000YS-01MPB1
Serial Number:    WD-WCANU1569566
Firmware Version: 09.02E09
User Capacity:    400.088.457.216 bytes
Device is:        In smartctl database <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">for</span> details use: <span style="color: #660033;">-P</span> show<span style="color: #7a0874; font-weight: bold;">&#93;</span>
ATA Version is:   <span style="color: #000000;">7</span>
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Fri Jul <span style="color: #000000;">10</span> <span style="color: #000000;">10</span>:<span style="color: #000000;">53</span>:<span style="color: #000000;">57</span> <span style="color: #000000;">2009</span> CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
&nbsp;
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment <span style="color: #7a0874; font-weight: bold;">test</span> result: PASSED
&nbsp;
General SMART Values:
Offline data collection status:  <span style="color: #7a0874; font-weight: bold;">&#40;</span>0x84<span style="color: #7a0874; font-weight: bold;">&#41;</span> Offline data collection activity
                                        was suspended by an interrupting <span style="color: #7a0874; font-weight: bold;">command</span> from host.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      <span style="color: #7a0874; font-weight: bold;">&#40;</span>   <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total <span style="color: #000000; font-weight: bold;">time</span> to <span style="color: #7a0874; font-weight: bold;">complete</span> Offline
data collection:                 <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">11880</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> seconds.
Offline data collection
capabilities:                    <span style="color: #7a0874; font-weight: bold;">&#40;</span>0x7b<span style="color: #7a0874; font-weight: bold;">&#41;</span> SMART execute Offline immediate.
                                        Auto Offline data collection on<span style="color: #000000; font-weight: bold;">/</span>off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            <span style="color: #7a0874; font-weight: bold;">&#40;</span>0x0003<span style="color: #7a0874; font-weight: bold;">&#41;</span> Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        <span style="color: #7a0874; font-weight: bold;">&#40;</span>0x01<span style="color: #7a0874; font-weight: bold;">&#41;</span> Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling <span style="color: #000000; font-weight: bold;">time</span>:        <span style="color: #7a0874; font-weight: bold;">&#40;</span>   <span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> minutes.
Extended self-test routine
recommended polling <span style="color: #000000; font-weight: bold;">time</span>:        <span style="color: #7a0874; font-weight: bold;">&#40;</span> <span style="color: #000000;">149</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> minutes.
Conveyance self-test routine
recommended polling <span style="color: #000000; font-weight: bold;">time</span>:        <span style="color: #7a0874; font-weight: bold;">&#40;</span>   <span style="color: #000000;">6</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> minutes.
&nbsp;
SMART Attributes Data Structure revision number: <span style="color: #000000;">16</span>
Vendor Specific SMART Attributes with Thresholds:
ID<span style="color: #666666; font-style: italic;"># ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE</span>
  <span style="color: #000000;">1</span> Raw_Read_Error_Rate     0x000f   <span style="color: #000000;">200</span>   <span style="color: #000000;">200</span>   051    Pre-fail  Always       -       <span style="color: #000000;">0</span>
  <span style="color: #000000;">3</span> Spin_Up_Time            0x0003   <span style="color: #000000;">218</span>   <span style="color: #000000;">218</span>   021    Pre-fail  Always       -       <span style="color: #000000;">6100</span>
  <span style="color: #000000;">4</span> Start_Stop_Count        0x0032   <span style="color: #000000;">100</span>   <span style="color: #000000;">100</span>   000    Old_age   Always       -       <span style="color: #000000;">19</span>
  <span style="color: #000000;">5</span> Reallocated_Sector_Ct   0x0033   <span style="color: #000000;">200</span>   <span style="color: #000000;">200</span>   <span style="color: #000000;">140</span>    Pre-fail  Always       -       <span style="color: #000000;">0</span>
  <span style="color: #000000;">7</span> Seek_Error_Rate         0x000f   <span style="color: #000000;">200</span>   <span style="color: #000000;">200</span>   051    Pre-fail  Always       -       <span style="color: #000000;">0</span>
  <span style="color: #000000;">9</span> Power_On_Hours          0x0032   085   085   000    Old_age   Always       -       <span style="color: #000000;">11445</span>
 <span style="color: #000000;">10</span> Spin_Retry_Count        0x0013   <span style="color: #000000;">100</span>   <span style="color: #000000;">253</span>   051    Pre-fail  Always       -       <span style="color: #000000;">0</span>
 <span style="color: #000000;">11</span> Calibration_Retry_Count 0x0012   <span style="color: #000000;">100</span>   <span style="color: #000000;">253</span>   051    Old_age   Always       -       <span style="color: #000000;">0</span>
 <span style="color: #000000;">12</span> Power_Cycle_Count       0x0032   <span style="color: #000000;">100</span>   <span style="color: #000000;">100</span>   000    Old_age   Always       -       <span style="color: #000000;">18</span>
<span style="color: #000000;">194</span> Temperature_Celsius     0x0022   <span style="color: #000000;">114</span>   <span style="color: #000000;">113</span>   000    Old_age   Always       -       <span style="color: #000000;">38</span>
<span style="color: #000000;">196</span> Reallocated_Event_Count 0x0032   <span style="color: #000000;">200</span>   <span style="color: #000000;">200</span>   000    Old_age   Always       -       <span style="color: #000000;">0</span>
<span style="color: #000000;">197</span> Current_Pending_Sector  0x0012   <span style="color: #000000;">200</span>   <span style="color: #000000;">200</span>   000    Old_age   Always       -       <span style="color: #000000;">0</span>
<span style="color: #000000;">198</span> Offline_Uncorrectable   0x0010   <span style="color: #000000;">200</span>   <span style="color: #000000;">200</span>   000    Old_age   Offline      -       <span style="color: #000000;">0</span>
<span style="color: #000000;">199</span> UDMA_CRC_Error_Count    0x003e   <span style="color: #000000;">200</span>   <span style="color: #000000;">200</span>   000    Old_age   Always       -       <span style="color: #000000;">0</span>
<span style="color: #000000;">200</span> Multi_Zone_Error_Rate   0x0009   <span style="color: #000000;">200</span>   <span style="color: #000000;">200</span>   051    Pre-fail  Offline      -       <span style="color: #000000;">0</span>
&nbsp;
SMART Error Log Version: <span style="color: #000000;">1</span>
No Errors Logged
&nbsp;
SMART Self-test log structure revision number <span style="color: #000000;">1</span>
Num  Test_Description    Status                  Remaining  LifeTime<span style="color: #7a0874; font-weight: bold;">&#40;</span>hours<span style="color: #7a0874; font-weight: bold;">&#41;</span>  LBA_of_first_error
<span style="color: #666666; font-style: italic;"># 1  Short captive       Interrupted (host reset)      90%      4274         -</span>
<span style="color: #666666; font-style: italic;"># 2  Short offline       Completed without error       00%      4122         -</span>
<span style="color: #666666; font-style: italic;"># 3  Short offline       Completed without error       00%      3954         -</span>
<span style="color: #666666; font-style: italic;"># 4  Short offline       Completed without error       00%      3786         -</span>
<span style="color: #666666; font-style: italic;"># 5  Short offline       Completed without error       00%      3618         -</span>
<span style="color: #666666; font-style: italic;"># 6  Short offline       Completed without error       00%      3451         -</span>
<span style="color: #666666; font-style: italic;"># 7  Short offline       Completed without error       00%      3283         -</span>
<span style="color: #666666; font-style: italic;"># 8  Short offline       Completed without error       00%      3115         -</span>
<span style="color: #666666; font-style: italic;"># 9  Short offline       Completed without error       00%      2947         -</span>
<span style="color: #666666; font-style: italic;">#10  Short offline       Completed without error       00%      2779         -</span>
<span style="color: #666666; font-style: italic;">#11  Short offline       Completed without error       00%      2611         -</span>
<span style="color: #666666; font-style: italic;">#12  Short offline       Completed without error       00%      2443         -</span>
<span style="color: #666666; font-style: italic;">#13  Short offline       Completed without error       00%      2275         -</span>
<span style="color: #666666; font-style: italic;">#14  Short offline       Completed without error       00%      2107         -</span>
<span style="color: #666666; font-style: italic;">#15  Short offline       Completed without error       00%      1940         -</span>
<span style="color: #666666; font-style: italic;">#16  Short offline       Completed without error       00%      1772         -</span>
<span style="color: #666666; font-style: italic;">#17  Short offline       Completed without error       00%      1604         -</span>
<span style="color: #666666; font-style: italic;">#18  Short offline       Completed without error       00%      1436         -</span>
<span style="color: #666666; font-style: italic;">#19  Short offline       Completed without error       00%      1268         -</span>
<span style="color: #666666; font-style: italic;">#20  Short offline       Completed without error       00%      1101         -</span>
<span style="color: #666666; font-style: italic;">#21  Short offline       Completed without error       00%       933         -</span>
&nbsp;
SMART Selective self-test log data structure revision number <span style="color: #000000;">1</span>
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    <span style="color: #000000;">1</span>        <span style="color: #000000;">0</span>        <span style="color: #000000;">0</span>  Not_testing
    <span style="color: #000000;">2</span>        <span style="color: #000000;">0</span>        <span style="color: #000000;">0</span>  Not_testing
    <span style="color: #000000;">3</span>        <span style="color: #000000;">0</span>        <span style="color: #000000;">0</span>  Not_testing
    <span style="color: #000000;">4</span>        <span style="color: #000000;">0</span>        <span style="color: #000000;">0</span>  Not_testing
    <span style="color: #000000;">5</span>        <span style="color: #000000;">0</span>        <span style="color: #000000;">0</span>  Not_testing
Selective self-test flags <span style="color: #7a0874; font-weight: bold;">&#40;</span>0x0<span style="color: #7a0874; font-weight: bold;">&#41;</span>:
  After scanning selected spans, <span style="color: #000000; font-weight: bold;">do</span> NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after <span style="color: #000000;">0</span> minute delay.</pre></div></div>

</li>
</ul>
<h3><a href="http://www.ipunct.net/leistungen/software-systemlosungen/">Professional Linux, Nagios and Monitoring support</a></h3>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/grxcgNLT5JA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2009/06/temperature-monitoring-of-3ware-controller-with-smartmontools-nagios-and-nagiosgrapher/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2009/06/temperature-monitoring-of-3ware-controller-with-smartmontools-nagios-and-nagiosgrapher/</feedburner:origLink></item>
		<item>
		<title>(Arrow) keys are not working in VMWare guest</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/ckOiKP6LkME/</link>
		<comments>http://www.ipunct.net/blog/2009/05/arrow-keys-are-not-working-in-vmware-guest/#comments</comments>
		<pubDate>Wed, 06 May 2009 13:41:17 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Arrow]]></category>
		<category><![CDATA[Keys]]></category>

		<guid isPermaLink="false">http://blog.ipunct.net/?p=43</guid>
		<description><![CDATA[We had problems within some keys like Arrow, Up, Down etc. in the Guest OS running on a Ubuntu 8.10 and 9.04 running VMWare Server 2.0. The keymapping between host and guest is broken. That could be fixed with the following entries in ~/.vmware/config (create the file if it is not existing). The file is [...]]]></description>
			<content:encoded><![CDATA[<p>We had problems within some keys like Arrow, Up, Down etc. in the Guest OS running on a <a href="http://www.ubuntu.org"target="_blank"rel="external"title="Ubuntu" >Ubuntu</a> 8.10 and 9.04 running <a href="http://www.vmware.com"target="_blank"rel="external"title="VMWare" >VMWare</a> Server 2.0. The keymapping between host and guest is broken. That could be fixed with the following entries in <code>~/.vmware/config</code> (create the file if it is not existing). The file is located in the home of the user that runs ther VMWare Console, e.g. from the VMWare Infrastructure Web Access environment.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">xkeymap.keycode.108 = 0x138 <span style="color: #666666; font-style: italic;"># Alt_R</span>
xkeymap.keycode.106 = 0x135 <span style="color: #666666; font-style: italic;"># KP_Divide</span>
xkeymap.keycode.104 = 0x11c <span style="color: #666666; font-style: italic;"># KP_Enter</span>
xkeymap.keycode.111 = 0x148 <span style="color: #666666; font-style: italic;"># Up</span>
xkeymap.keycode.116 = 0x150 <span style="color: #666666; font-style: italic;"># Down</span>
xkeymap.keycode.113 = 0x14b <span style="color: #666666; font-style: italic;"># Left</span>
xkeymap.keycode.114 = 0x14d <span style="color: #666666; font-style: italic;"># Right</span>
xkeymap.keycode.105 = 0x11d <span style="color: #666666; font-style: italic;"># Control_R</span>
xkeymap.keycode.118 = 0x152 <span style="color: #666666; font-style: italic;"># Insert</span>
xkeymap.keycode.119 = 0x153 <span style="color: #666666; font-style: italic;"># Delete</span>
xkeymap.keycode.110 = 0x147 <span style="color: #666666; font-style: italic;"># Home</span>
xkeymap.keycode.115 = 0x14f <span style="color: #666666; font-style: italic;"># End</span>
xkeymap.keycode.112 = 0x149 <span style="color: #666666; font-style: italic;"># Prior</span>
xkeymap.keycode.117 = 0x151 <span style="color: #666666; font-style: italic;"># Next</span>
xkeymap.keycode.78 = 0x46 <span style="color: #666666; font-style: italic;"># Scroll_Lock</span>
xkeymap.keycode.127 = 0x100 <span style="color: #666666; font-style: italic;"># Pause</span>
xkeymap.keycode.133 = 0x15b <span style="color: #666666; font-style: italic;"># Meta_L</span>
xkeymap.keycode.134 = 0x15c <span style="color: #666666; font-style: italic;"># Meta_R</span>
xkeymap.keycode.135 = 0x15d <span style="color: #666666; font-style: italic;"># Menu</span></pre></div></div>

<p><span id="more-43"></span>Restart the guest virtual machine and the keymapping works as it should.<br />
The solution was found in the mentioned reference.</p>
<p>Reference:</p>
<ul>
<li><small><a href="http://communities.vmware.com/thread/175165">VMWare Forum &#8211; Thread 175165</a></small></li>
</ul>
<h3><a href="http://www.ipunct.net/leistungen/software-systemlosungen/">Professional VMWare and Linuxe support</a></h3>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/ckOiKP6LkME" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2009/05/arrow-keys-are-not-working-in-vmware-guest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2009/05/arrow-keys-are-not-working-in-vmware-guest/</feedburner:origLink></item>
		<item>
		<title>Install VMWare Tools on Ubuntu Server</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/2RqZLZQzkR4/</link>
		<comments>http://www.ipunct.net/blog/2009/04/install-vmware-tools-on-ubuntu-server/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 14:02:12 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[VMWare-Tools]]></category>

		<guid isPermaLink="false">http://blog.ipunct.net/?p=34</guid>
		<description><![CDATA[How to install VMWare Tools on Ubuntu (tested on Ubuntu 8.10 and 8.04 LTS) in a rush: Within your VMWare Infrastructure Client or WebGUI do a &#8220;Install VMWare Tools&#8221; VMWare will provide a ISO Image with the VMWare Tools to the Virtual Machine SSH to the Ubuntu Server you want the VMWare Tools be installed [...]]]></description>
			<content:encoded><![CDATA[<p>How to install <a href="http://www.vmware.com"target="_blank"rel="external"title="VMWare" >VMWare</a> Tools on <a href="http://www.ubuntu.org"target="_blank"rel="external"title="Ubuntu" >Ubuntu</a> (tested on Ubuntu 8.10 and 8.04 LTS) in a rush:</p>
<ul>
<li>Within your VMWare Infrastructure Client or WebGUI do a &#8220;Install VMWare Tools&#8221;</li>
<li>VMWare will provide a ISO Image with the VMWare Tools to the Virtual Machine</li>
<li>SSH to the Ubuntu Server you want the VMWare Tools be installed</li>
<li>OPTIONAL but prefered:

<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;">su</span> -
<span style="color: #c20cb9; font-weight: bold;">aptitude</span> update
<span style="color: #c20cb9; font-weight: bold;">aptitude</span> full-upgrade</pre></div></div>

</li>
<li>do the following steps as root or prefix a <code>sudo</code>:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> build-essential linux-headers-<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">uname</span> -r<span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #c20cb9; font-weight: bold;">mount</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>cdrom
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>cdrom0<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">cp</span> VMwareTools-2.0.0-<span style="color: #000000;">122956</span>.tar.gz <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>src<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>src<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">tar</span> xfzv VMwareTools-2.0.0-<span style="color: #000000;">122956</span>.tar.gz
<span style="color: #7a0874; font-weight: bold;">cd</span> vmware-tools-distrib<span style="color: #000000; font-weight: bold;">/</span>
.<span style="color: #000000; font-weight: bold;">/</span>vmware-install.pl
<span style="color: #666666; font-style: italic;"># answer the question via defaults</span>
init <span style="color: #000000;">6</span></pre></div></div>

</li>
</ul>
<h3><a href="http://www.ipunct.net/leistungen/software-systemlosungen/">Professional VMware and Linux support</a></h3>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/2RqZLZQzkR4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2009/04/install-vmware-tools-on-ubuntu-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2009/04/install-vmware-tools-on-ubuntu-server/</feedburner:origLink></item>
		<item>
		<title>Cisco Catalyst 2970 monitoring via SNMP</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/2UkqT2b73io/</link>
		<comments>http://www.ipunct.net/blog/2009/03/cisco-catalyst-2970-monitoring-via-snmp/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 14:29:56 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Cisco]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[SNMP]]></category>
		<category><![CDATA[Catalayst]]></category>
		<category><![CDATA[NagiosGrapher]]></category>
		<category><![CDATA[Netzwerk]]></category>

		<guid isPermaLink="false">http://blog.ipunct.net/?p=3</guid>
		<description><![CDATA[This article will explain some parts of monitoring a Cisco Catalyst 2970 switch via SNMP and Nagios. Together with NagiosGrapher it gets an powerful combination to have a longtime overview about that device and you can create nice graphics like that: Prepare the switch for SNMP requests from a SNMP polling host (here 192.168.200.200) : [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">This article will explain some parts of monitoring a<strong> <a href="http://www.cisco.com"target="_blank"rel="external"title="Cisco" >Cisco</a> Catalyst 2970</strong> switch via <strong>SNMP</strong> and <strong><a href="http://www.nagios.org"target="_blank"rel="external"title="Nagios" >Nagios</a></strong>. Together with NagiosGrapher it gets an powerful combination to have a longtime overview about that device and you can create nice graphics like that:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-4" title="switch_gigabitethernet0_10_1current" src="http://www.ipunct.net/wp-content/uploads/2009/03/switch_gigabitethernet0_10_1current.png" alt="switch_gigabitethernet0_10_1current" width="490" height="223" /></p>
<h4>Prepare the switch for SNMP requests from a SNMP polling host (here <code>192.168.200.200)</code> :</h4>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">access-list <span style="color: #000000;">60</span> permit 192.168.200.200
snmp-server community yoursnmpcommunitystring RO <span style="color: #000000;">60</span>
snmp-server location <span style="color: #ff0000;">&quot;near the backbone&quot;</span>
snmp-server contact <span style="color: #ff0000;">&quot;admin@myswitch.de&quot;</span></pre></div></div>

<p style="text-align: left;"><span id="more-7"></span></p>
<h4>Play around with SNMP</h4>
<p>First install snmp and get the CISCO-MIBS and install them on your system (optional).</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> snmp
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #c20cb9; font-weight: bold;">ftp</span>:<span style="color: #000000; font-weight: bold;">//</span>ftp.cisco.com<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>mibs<span style="color: #000000; font-weight: bold;">/</span>v2<span style="color: #000000; font-weight: bold;">/</span>v2.tar.gz</pre></div></div>

<p>Extract the needed MIBS from the <code>v2.tar.gz</code>, e.g. <code>CISCO-ENVMON-MIB.my</code> to <code>/usr/share/snmp/mibs/CISCO-ENVMON-MIB.my</code>. Maybe you&#8217;ve to have a look in the files dependencies.</p>
<p>Get some Status information from the ENVMON mib:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snmpwalk <span style="color: #660033;">-m</span> CISCO-ENVMON-MIB <span style="color: #660033;">-v2c</span> <span style="color: #660033;">-OS</span> <span style="color: #660033;">-c</span>  yoursnmpcommunitystring switch-fqdn .1.3.6.1.4.1.9.9.13
CISCO-ENVMON-MIB::ciscoEnvMonPresent.0 = INTEGER: <span style="color: #000000;">100</span>
CISCO-ENVMON-MIB::ciscoEnvMonFanStatusDescr.1004 = STRING: Switch<span style="color: #666666; font-style: italic;">#1, Fan#1, Status is Normal</span>
CISCO-ENVMON-MIB::ciscoEnvMonFanState.1004 = INTEGER: normal<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
CISCO-ENVMON-MIB::ciscoEnvMonSupplyStatusDescr.1003 = STRING: Switch<span style="color: #666666; font-style: italic;">#1, PowerSupply#1, Status is Normal, RPS Not Present</span>
CISCO-ENVMON-MIB::ciscoEnvMonSupplyState.1003 = INTEGER: normal<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
CISCO-ENVMON-MIB::ciscoEnvMonSupplySource.1003 = INTEGER: ac<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
CISCO-ENVMON-MIB::ciscoEnvMonEnableShutdownNotification.0 = INTEGER: <span style="color: #c20cb9; font-weight: bold;">false</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
CISCO-ENVMON-MIB::ciscoEnvMonEnableTemperatureNotification.0 = INTEGER: <span style="color: #c20cb9; font-weight: bold;">false</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
CISCO-ENVMON-MIB::ciscoEnvMonEnableFanNotification.0 = INTEGER: <span style="color: #c20cb9; font-weight: bold;">false</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
CISCO-ENVMON-MIB::ciscoEnvMonEnableRedundantSupplyNotification.0 = INTEGER: <span style="color: #c20cb9; font-weight: bold;">false</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
CISCO-ENVMON-MIB::ciscoEnvMonEnableStatChangeNotif.0 = INTEGER: <span style="color: #c20cb9; font-weight: bold;">false</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>.. as you can see you can get health information like PowerSupply and FanStatus informations. We can use these SNMP values in Nagios to monitor the PSU and Fan status.</p>
<p>You can find further informations about the CISCO Enterprise SNMP tree <a href="http://support.ipmonitor.com/mibs_byoidtree.aspx?oid=.1.3.6.1.4.1.9.9#h">here.</a></p>
<p>Looking around in the tree, you will find many information that you want to monitor.</p>
<h3><a href="http://www.ipunct.net/leistungen/software-systemlosungen/">Professional Linux, Network and Monitoring support</a></h3>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/2UkqT2b73io" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2009/03/cisco-catalyst-2970-monitoring-via-snmp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2009/03/cisco-catalyst-2970-monitoring-via-snmp/</feedburner:origLink></item>
		<item>
		<title>Sortierverfahren mit Struktogramm und einer Implementationsvariante unter Pascal</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/2-tBw0AxT9A/</link>
		<comments>http://www.ipunct.net/blog/2008/09/sortierverfahren-mit-struktogramm-und-einer-implementationsvariante-unter-pascal/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 15:17:05 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Pascal]]></category>
		<category><![CDATA[Sort]]></category>
		<category><![CDATA[Sortierung]]></category>

		<guid isPermaLink="false">http://www.ipunct.net/?p=265</guid>
		<description><![CDATA[Diese unten aufgeführten Struktogramme und Algorithmen, erheben kein Anspruch auf Fehlerlosigkeit. Sie wurden aber nach besten Wissen und Gewissen erarbeitet und auch erfolgreich unter Borland Turbo Pascal 6.0/7.0 getestet. 1. Selektion-Sort weitere Bezeichnungen Selection-Sort Sortieren durch (direktes) Auswählen Prinzip man sucht den kleinsten Wert diesen tauscht man mit dem ersten Element man sucht den nächsten [...]]]></description>
			<content:encoded><![CDATA[<p>Diese unten aufgeführten Struktogramme und Algorithmen, erheben kein Anspruch auf Fehlerlosigkeit. Sie wurden aber nach besten Wissen und Gewissen erarbeitet und auch erfolgreich unter Borland Turbo Pascal 6.0/7.0 getestet. </p>
<h2>1. Selektion-Sort</h2>
<h3>weitere Bezeichnungen</h3>
<ul>
<li>Selection-Sort</li>
<li>Sortieren durch (direktes) Auswählen</li>
</ul>
<h3>Prinzip</h3>
<ul>
<li>man sucht den kleinsten Wert</li>
<li>diesen tauscht man mit dem ersten Element</li>
<li>man sucht den nächsten kleinsten Wert und setzt ihn an die zweite Stelle</li>
<li>dies macht man solange bis das komplette Feld (Array) sortiert ist</li>
<li>Es ist eines der einfachsten, aber auch langsamsten Sortierverfahren</li>
</ul>
<h3>Struktogramm</h3>
<p><img class="alignnone size-full wp-image-273" title="Selection Sort" src="/wp-content/uploads/2008/09/selection_sort.gif" alt="Struktogramm zu Selection Sort" width="253" height="276" /></p>
<h3>Quellcode</h3>

<div class="wp_syntax"><div class="code"><pre class="pascal" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">{Beispielwerte}</span>
<span style="color: #000000; font-weight: bold;">CONST</span> min<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span>;
max<span style="color: #339933;">=</span><span style="color: #cc66cc;">1000</span>;
<span style="color: #666666; font-style: italic;">{Ende Bespielwerte}</span>
<span style="color: #000000; font-weight: bold;">TYPE</span> TFeld<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">Array</span><span style="color: #009900;">&#91;</span>min..<span style="color: #0066ee;">max</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">of</span> <span style="color: #000066; font-weight: bold;">Real</span>; <span style="color: #666666; font-style: italic;">{}</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">Procedure</span> Selection_Sort<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> feld <span style="color: #339933;">:</span> TFeld; min<span style="color: #339933;">,</span> max <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">integer</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span>     i<span style="color: #339933;">,</span>j <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">integer</span>;
       a   <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">real</span>; <span style="color: #666666; font-style: italic;">{}</span>
<span style="color: #000000; font-weight: bold;">Begin</span>
 <span style="color: #000000; font-weight: bold;">For</span> i<span style="color: #339933;">:=</span>min <span style="color: #000000; font-weight: bold;">to</span> max<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">do</span>
 <span style="color: #000000; font-weight: bold;">Begin</span>
  a<span style="color: #339933;">:=</span>feld<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>;
  <span style="color: #000000; font-weight: bold;">For</span> j<span style="color: #339933;">:=</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> max <span style="color: #000000; font-weight: bold;">do</span>
   <span style="color: #000000; font-weight: bold;">Begin</span>
   <span style="color: #000000; font-weight: bold;">if</span> feld<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> &amp;lt; a <span style="color: #000000; font-weight: bold;">then</span>
   <span style="color: #000000; font-weight: bold;">Begin</span>
    a<span style="color: #339933;">:=</span>feld<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>;
    feld<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>feld<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>;
    feld<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>a;
   <span style="color: #000000; font-weight: bold;">end</span>;
  <span style="color: #000000; font-weight: bold;">end</span>;
 <span style="color: #000000; font-weight: bold;">end</span>;
<span style="color: #000000; font-weight: bold;">end</span>;</pre></div></div>

<p><span id="more-265"></span></p>
<h2>Insertion-Sort</h2>
<h3>weitere Bezeichnungen</h3>
<h3>
<ul>
<li>Sortieren durch (direketes) Einfügen</li>
</ul>
</h3>
<h3>Prinzip</h3>
<ul>
<li>man betrachtet ein Element nach dem anderen und sucht die richtige Stelle und fügt dieses Element ein</li>
<li>das Einfügen wird realisiert indem die größeren Elemente eins nach hinten verschoben werden und das Element an dieser nun freien Stelle eingefügt wird</li>
</ul>
<h3>Variante 1</h3>
<h4>Quellcode</h4>

<div class="wp_syntax"><div class="code"><pre class="pascal" style="font-family:monospace;">Beispielwerte<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">CONST</span> min<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span>;
max<span style="color: #339933;">=</span><span style="color: #cc66cc;">1000</span>;
<span style="color: #666666; font-style: italic;">{Ende Bespielwerte}</span>
<span style="color: #000000; font-weight: bold;">TYPE</span> TFeld<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">Array</span><span style="color: #009900;">&#91;</span>min..<span style="color: #0066ee;">max</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">of</span> <span style="color: #000066; font-weight: bold;">Real</span>; <span style="color: #666666; font-style: italic;">{}</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">Procedure</span> Insertion_Sort<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> feld <span style="color: #339933;">:</span> TFeld; min<span style="color: #339933;">,</span> max <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">VAR</span> Hilfe <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">Real</span>; <span style="color: #666666; font-style: italic;">{}</span>
i<span style="color: #339933;">,</span>j<span style="color: #339933;">,</span>k <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span>;
<span style="color: #000000; font-weight: bold;">Begin</span>
  <span style="color: #000000; font-weight: bold;">For</span> i<span style="color: #339933;">:=</span>min <span style="color: #000000; font-weight: bold;">to</span> max<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #000000; font-weight: bold;">Begin</span>
    <span style="color: #000000; font-weight: bold;">For</span> j<span style="color: #339933;">:=</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> max <span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #000000; font-weight: bold;">Begin</span>
      <span style="color: #000000; font-weight: bold;">if</span> feld<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> &amp;gt; feld<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">then</span>
      <span style="color: #000000; font-weight: bold;">Begin</span>
        hilfe<span style="color: #339933;">:=</span>feld<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>;
        <span style="color: #000000; font-weight: bold;">For</span> k<span style="color: #339933;">:=</span>j<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">downto</span> i <span style="color: #000000; font-weight: bold;">do</span>
        <span style="color: #000000; font-weight: bold;">Begin</span>
          feld<span style="color: #009900;">&#91;</span>k<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>feld<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span>;
        <span style="color: #000000; font-weight: bold;">end</span>;
        feld<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>hilfe;
      <span style="color: #000000; font-weight: bold;">end</span>;
    <span style="color: #000000; font-weight: bold;">end</span>;
  <span style="color: #000000; font-weight: bold;">End</span>;
<span style="color: #000000; font-weight: bold;">End</span>;</pre></div></div>

<h3>Variante 2</h3>
<h4>Struktogramm</h4>
<p><img class="alignnone size-full wp-image-291" title="Insertion Sort Struktogramm" src="/wp-content/uploads/2008/09/insertion_sort_v2.gif" alt="Insertion Sort Struktogramm" width="249" height="248" /></p>
<h4>Quellcode</h4>

<div class="wp_syntax"><div class="code"><pre class="pascal" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">{Beispielwerte}</span>
<span style="color: #000000; font-weight: bold;">CONST</span> min<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span>;
max<span style="color: #339933;">=</span><span style="color: #cc66cc;">1000</span>;
<span style="color: #666666; font-style: italic;">{Ende Bespielwerte}</span>
<span style="color: #000000; font-weight: bold;">TYPE</span> TFeld<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">Array</span><span style="color: #009900;">&#91;</span>min..<span style="color: #0066ee;">max</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">of</span> <span style="color: #000066; font-weight: bold;">Real</span>; <span style="color: #666666; font-style: italic;">{}</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">procedure</span> Insertion_Sort_2<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> Feld <span style="color: #339933;">:</span> TFeld; min<span style="color: #339933;">,</span> max <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> i<span style="color: #339933;">,</span>j <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span>;
hilfe <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">Real</span>; <span style="color: #666666; font-style: italic;">{}</span>
<span style="color: #000000; font-weight: bold;">Begin</span>
  <span style="color: #000000; font-weight: bold;">For</span> i<span style="color: #339933;">:=</span>min<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> max <span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #000000; font-weight: bold;">Begin</span>
    hilfe<span style="color: #339933;">:=</span>Feld<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>;
    j<span style="color: #339933;">:=</span>i;
    <span style="color: #000000; font-weight: bold;">While</span> Feld<span style="color: #009900;">&#91;</span>j<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>&amp;gt;hilfe <span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #000000; font-weight: bold;">Begin</span>
      Feld<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>Feld<span style="color: #009900;">&#91;</span>j<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span>;
      j<span style="color: #339933;">:=</span>j<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span>;
    <span style="color: #000000; font-weight: bold;">End</span>;
    Feld<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>hilfe;
  <span style="color: #000000; font-weight: bold;">End</span>;
<span style="color: #000000; font-weight: bold;">end</span>;</pre></div></div>

<h2>Merge-Sort</h2>
<h3>weitere Bezeichnungen</h3>
<ul>
<li>Misch-Sort</li>
<li>Mischsortierung</li>
</ul>
<p>Prinzip</p>
<ul>
<li>man erstellt zwei sortierte Teilmengen (von 				min bis mitte und von mitte+1 bis max)</li>
<li>dieses zwei Teilmengen werden dann 				gemischt, somit entsteht ein komplett sortiertes Feld</li>
<li>dieses Verfahren ist programmiertechnisch 				etwas  komplexer als die oben genannten trivialen 				Sortier-Modelle. Es ist aber wesentlich schneller</li>
<li>Der Zeitaufwand  für N Elemente 				steigt mit N*log(N)</li>
<li>Verwirklichung der Sortierung durch 				Rekursion (die zwei Teilmengen werden durch die Rekursion wieder 				in Teilmengen zerlegt, dies geschieht solange bis nur noch zwei 				Elemente verglichen werden, danach &#8220;läuft&#8221; die 				Rekursion wieder rückwärts)</li>
</ul>
<h3>Struktogramm</h3>
<p><img class="alignnone size-medium wp-image-294" title="Merge Sort Struktogramm" src="/wp-content/uploads/2008/09/merge_sort.gif" alt="Merge Sort Struktogramm" width="387" height="656" /></p>
<h3>Quellcode</h3>

<div class="wp_syntax"><div class="code"><pre class="pascal" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">{Beispielwerte}</span>
<span style="color: #000000; font-weight: bold;">CONST</span> min<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span>;
max<span style="color: #339933;">=</span><span style="color: #cc66cc;">1000</span>;
<span style="color: #666666; font-style: italic;">{Ende Bespielwerte}</span>
<span style="color: #000000; font-weight: bold;">TYPE</span> TFeld<span style="color: #339933;">=</span><span style="color: #000066; font-weight: bold;">Array</span><span style="color: #009900;">&#91;</span>min..<span style="color: #0066ee;">max</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">of</span> <span style="color: #000066; font-weight: bold;">Real</span>; <span style="color: #666666; font-style: italic;">{}</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">procedure</span> Mischen<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> feld <span style="color: #339933;">:</span> TFeld; unten<span style="color: #339933;">,</span> mitte<span style="color: #339933;">,</span> oben <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">integer</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> dummy <span style="color: #339933;">:</span> TFeld;
j<span style="color: #339933;">,</span>i<span style="color: #339933;">,</span>k<span style="color: #339933;">,</span>s<span style="color: #339933;">,</span>ir<span style="color: #339933;">,</span>l <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span>;
<span style="color: #000000; font-weight: bold;">Begin</span>
  j<span style="color: #339933;">:=</span>mitte<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span>;
   i<span style="color: #339933;">:=</span>unten;
   k<span style="color: #339933;">:=</span>unten;
   <span style="color: #000000; font-weight: bold;">While</span> <span style="color: #009900;">&#40;</span>i&lt;<span style="color: #339933;">=</span>mitte<span style="color: #009900;">&#41;</span> <span style="color: #000066;">and</span> <span style="color: #009900;">&#40;</span>j&lt;<span style="color: #339933;">=</span>oben<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">do</span>
   <span style="color: #000000; font-weight: bold;">Begin</span>
     <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>feld<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> &lt;<span style="color: #339933;">=</span> feld<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">then</span>
     <span style="color: #000000; font-weight: bold;">Begin</span>
       dummy<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>feld<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>;
       i<span style="color: #339933;">:=</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span>;
     <span style="color: #000000; font-weight: bold;">end</span>
     <span style="color: #000000; font-weight: bold;">else</span>
     <span style="color: #000000; font-weight: bold;">Begin</span>
       dummy<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>feld<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>;
       j<span style="color: #339933;">:=</span>j<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span>;
     <span style="color: #000000; font-weight: bold;">end</span>;
     k<span style="color: #339933;">:=</span>k<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span>
   <span style="color: #000000; font-weight: bold;">end</span>;
   <span style="color: #000000; font-weight: bold;">if</span> i&gt;mitte <span style="color: #000000; font-weight: bold;">then</span>
     <span style="color: #000000; font-weight: bold;">For</span> s<span style="color: #339933;">:=</span>j <span style="color: #000000; font-weight: bold;">to</span> oben <span style="color: #000000; font-weight: bold;">do</span>
       dummy<span style="color: #009900;">&#91;</span>k<span style="color: #339933;">+</span>s<span style="color: #339933;">-</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>feld<span style="color: #009900;">&#91;</span>s<span style="color: #009900;">&#93;</span>
   <span style="color: #000000; font-weight: bold;">else</span>
     <span style="color: #000000; font-weight: bold;">For</span> ir<span style="color: #339933;">:=</span>i <span style="color: #000000; font-weight: bold;">to</span> mitte <span style="color: #000000; font-weight: bold;">do</span>
       dummy<span style="color: #009900;">&#91;</span>k<span style="color: #339933;">+</span>ir<span style="color: #339933;">-</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>feld<span style="color: #009900;">&#91;</span>ir<span style="color: #009900;">&#93;</span>;
   <span style="color: #000000; font-weight: bold;">For</span> l<span style="color: #339933;">:=</span>unten <span style="color: #000000; font-weight: bold;">to</span> oben <span style="color: #000000; font-weight: bold;">do</span> feld<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span><span style="color: #339933;">:=</span>dummy<span style="color: #009900;">&#91;</span>l<span style="color: #009900;">&#93;</span>;
<span style="color: #000000; font-weight: bold;">end</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">procedure</span> Misch_Sort<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> feld<span style="color: #339933;">:</span>TFeld;unten<span style="color: #339933;">,</span>oben<span style="color: #339933;">:</span><span style="color: #000066; font-weight: bold;">integer</span><span style="color: #009900;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">var</span> Mitte <span style="color: #339933;">:</span> <span style="color: #000066; font-weight: bold;">Integer</span>;
<span style="color: #000000; font-weight: bold;">Begin</span>
  <span style="color: #000000; font-weight: bold;">if</span> unten &lt; oben <span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #000000; font-weight: bold;">Begin</span>
     Mitte<span style="color: #339933;">:=</span><span style="color: #009900;">&#40;</span>unten<span style="color: #339933;">+</span>oben<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">div</span> <span style="color: #cc66cc;">2</span>;
     Misch_Sort<span style="color: #009900;">&#40;</span>feld<span style="color: #339933;">,</span>unten<span style="color: #339933;">,</span>mitte<span style="color: #009900;">&#41;</span>;
     Misch_Sort<span style="color: #009900;">&#40;</span>feld<span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span>mitte<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>oben<span style="color: #009900;">&#41;</span>;
     Mischen<span style="color: #009900;">&#40;</span>feld<span style="color: #339933;">,</span>unten<span style="color: #339933;">,</span>mitte<span style="color: #339933;">,</span>oben<span style="color: #009900;">&#41;</span>;
   <span style="color: #000000; font-weight: bold;">end</span>;
<span style="color: #000000; font-weight: bold;">end</span>;</pre></div></div>

<p><em>(Archiviert aus unseren alten Tipps und Tricks Sektion)</em></p>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/2-tBw0AxT9A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2008/09/sortierverfahren-mit-struktogramm-und-einer-implementationsvariante-unter-pascal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2008/09/sortierverfahren-mit-struktogramm-und-einer-implementationsvariante-unter-pascal/</feedburner:origLink></item>
		<item>
		<title>Erstellen einer PDF Datei unter MS Windows 9x mit freier Software (auch für Windows 2000/XP geeignet)</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/6BqkXnU_ytM/</link>
		<comments>http://www.ipunct.net/blog/2008/09/erstellen-einer-pdf-datei-unter-ms-windows-mit-freier-software/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 14:54:59 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Tipps]]></category>
		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://www.ipunct.net/?p=258</guid>
		<description><![CDATA[Hier das PDF zum Download. (Archiviert aus unseren alten Tipps und Tricks Sektion.)]]></description>
			<content:encoded><![CDATA[<p>Hier das <a href="http://www.ipunct.net/wp-content/uploads/2010/09/pdf_erstellen.pdf">PDF</a> zum  Download.</p>
<p><em>(Archiviert aus unseren alten Tipps und Tricks Sektion.)</em></p>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/6BqkXnU_ytM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2008/09/erstellen-einer-pdf-datei-unter-ms-windows-mit-freier-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2008/09/erstellen-einer-pdf-datei-unter-ms-windows-mit-freier-software/</feedburner:origLink></item>
		<item>
		<title>Parameterübergabe an Unterprogramme per Stack</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/mnEpdeITNLQ/</link>
		<comments>http://www.ipunct.net/blog/2008/09/parameteruebergabe-an-unterprogramme-per-stack/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 14:37:54 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Tipps]]></category>
		<category><![CDATA[Assembler]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://www.ipunct.net/?p=303</guid>
		<description><![CDATA[Hierbei handelt es sich um eine Vortrag meines Studienkollegens Dipl. Inf. (FH) Frank Grimm zum Thema Parameterübergabe an Unterprogramme per Stack und eine Darstellung der Funktionsweise mit Beispielen. Voraussetzung Es gibt ein Register, das auf eine Speicherstelle zeigt, die sich im sogenannten Stack befindet, es wird unter x86 mit esp bezeichnet. Der Stack in ein [...]]]></description>
			<content:encoded><![CDATA[<p>Hierbei handelt es sich um eine Vortrag meines Studienkollegens Dipl. Inf. (FH) Frank Grimm zum Thema Parameterübergabe an Unterprogramme per Stack und eine Darstellung der Funktionsweise mit Beispielen.</p>
<h2>Voraussetzung</h2>
<ol>
<li>Es gibt ein Register, das auf eine Speicherstelle zeigt, die sich im sogenannten Stack befindet, es wird unter x86 mit esp bezeichnet.</li>
<li>Der Stack in ein Stück Speicher, das sich im Speicherraum eines Prozesses befindet und dient zum Sichern von Werten, zur Wertübergabe an Unterprogramme und zum Anlegen von lokalen Variablen.</li>
<li>Es gibt zwei Befehle, mit denen ein Operant auf dem Stack gesichert bzw. vom Stack geholt werden kann: push und pop.</li>
<li>Jedes push/pop verändert den Stackzeiger (den Inhalt von esp).</li>
<li>Auf x86 wächst der Stack von den hohen Adressen zu niedrigen Adressen auf den Heap zu.</li>
<li>Mit den Befehlen push und pop kann nur nach dem &#8220;First In &#8211; Last Out&#8221;-Prinzip auf Werte im Stack zugriffen werden.</li>
<li>Da esp eine Adresse auf dem Stack beinhaltet, kann aber per Zeigerarithmetik auch beliebig auf den Stack zugegriffen werden.</li>
</ol>
<h2>1. Parameter auf Stack pushen</h2>
<blockquote><p>Der letzte Parameter wird zu erst auf den Stack geschafft, die Parameter werden also von rechts nach links gesichert (gepusht) und können daher im Unterprogramm wieder von links nach rechts gelesen (pop) werden.</p></blockquote>
<h2>2. call zum Unterprogramm</h2>
<blockquote><p>Wie immer, zeigt der Befehlszeiger auf den Speicherplatz mit dem n&amp;äuml;chsten Befehl im Hauptprogramm, dieser Wert des Befehlszeigers wird automatisch vom Befehl call auf den Stack gepusht.</p></blockquote>
<h2>3. Stack-Frame aufbauen und Unterprogramm-Befehle ausfuehren</h2>
<ol>
<li>Wert des ebp-Registers (allgemeines Register) auf Stack sichern (pushen)</li>
<li>Aktuelles esp-Register (Stackzeiger) in ebp sichern (per mov)</li>
</ol>
<p><span id="more-303"></span></p>
<h2>4. Verwendung des Stack-Frames</h2>
<blockquote><p>Falls lokale Variablen angelegt werden, wird das Stack-Register (esp) um die Grösse der gesamten lokalen Variablen erniedrigt (subtrahiert) (Stack wächst auf x86 von oben nach unten auf den Heap zu). Der Stackzeiger verweisst nun auf eine Speicheradresse, die völlig ungenutzt ist, damit nachfolgende Unterprogramm-Rufe im aktuellen Unterprogramm die aktuellen lokalen Variablen nicht verfälschen.</p>
<p>Der Zwischenraum auf Stack (ebp &#8211; esp) wird für lokale Variablen verwendet und die Parameter werden auf den Stack gepusht (der Stack-Zeiger verändert sich).</p></blockquote>
<h2>5. Stack-Frame-Abbau und Verlassen des Unterprogramms</h2>
<ol>
<li>Beim Verlassen werden alle Stack-Veraenderungen rueckgaengig gemacht, was bedeutet, dass der Stackzeiger (esp) auf den Zustand vor dem Call zurückgesetzt (mit leave) wird. Das heisst: Beim Verlassen, wird der Befehlszeiger (ip) mit dem Wert geladen, auf den der Stackzeiger beim UP-Aufruf zeigte.</li>
<li>Das Register ebp wird wieder mit dem Wert vor dem Sichern der Stack-Adresse auf ebp gefuellt (mit ret).</li>
</ol>
<h2>6. Der Rückgabewert eines Unterprogramms</h2>
<p>Der Rückgabewert einer Funktion wird im allgemeinen Register eax an das Hauptprogramm zurueckgegeben.</p>
<h2>7. Zusammenfassung</h2>
<blockquote><p>Beim Eintritt in das Unterprogramm zeigt der Stackpointer auf die Rücksprungadresse, das ist der nächste Befehl im Hauptprogramm und vor dem aktuellen Stackwert liegen die Parameter; im Unterprogramm kann der Stack veraendert werden, wird beim Verlassen aber wieder zurueckgesetzt</p></blockquote>
<h3>Beispiel</h3>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">void</span> foo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #993333;">int</span> i <span style="color: #339933;">=</span> <span style="color: #0000dd;">99</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> bar<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #993333;">int</span> j <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> add<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i<span style="color: #339933;">,</span> <span style="color: #993333;">int</span> j<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #b1b100;">return</span> i<span style="color: #339933;">+</span>j<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #993333;">int</span> i <span style="color: #339933;">=</span> <span style="color: #0000dd;">99</span><span style="color: #339933;">;</span>
foo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
bar<span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
i <span style="color: #339933;">=</span> add<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Umsetzung in GNU(-x86)-Assember (AT&amp;T-Notation, d.h.: Befehl Quelle Ziel):<br />
(Assembercode erzeugt mit gcc -S stack.c)</h3>

<div class="wp_syntax"><div class="code"><pre class="asm" style="font-family:monospace;">foo<span style="color: #339933;">:</span>
&nbsp;
pushl <span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span>
movl <span style="color: #339933;">%</span><span style="color: #00007f;">esp</span><span style="color: #339933;">,%</span><span style="color: #00007f;">ebp</span>
<span style="color: #00007f; font-weight: bold;">leave</span>
<span style="color: #00007f; font-weight: bold;">ret</span>
&nbsp;
bar<span style="color: #339933;">:</span>
&nbsp;
pushl <span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span>
movl <span style="color: #339933;">%</span><span style="color: #00007f;">esp</span><span style="color: #339933;">,%</span><span style="color: #00007f;">ebp</span>
subl $<span style="color: #0000ff;">24</span><span style="color: #339933;">,%</span><span style="color: #00007f;">esp</span>
movl <span style="color: #0000ff;">8</span><span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span><span style="color: #009900; font-weight: bold;">&#41;</span><span style="color: #339933;">,%</span><span style="color: #00007f;">eax</span>
movl <span style="color: #339933;">%</span><span style="color: #00007f;">eax</span><span style="color: #339933;">,-</span><span style="color: #0000ff;">4</span><span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span><span style="color: #009900; font-weight: bold;">&#41;</span>
<span style="color: #00007f; font-weight: bold;">leave</span>
<span style="color: #00007f; font-weight: bold;">ret</span>
&nbsp;
<span style="color: #00007f; font-weight: bold;">add</span><span style="color: #339933;">:</span>
&nbsp;
pushl <span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span>
movl <span style="color: #339933;">%</span><span style="color: #00007f;">esp</span><span style="color: #339933;">,%</span><span style="color: #00007f;">ebp</span>
movl <span style="color: #0000ff;">8</span><span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span><span style="color: #009900; font-weight: bold;">&#41;</span><span style="color: #339933;">,%</span><span style="color: #00007f;">eax</span>
movl <span style="color: #0000ff;">12</span><span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span><span style="color: #009900; font-weight: bold;">&#41;</span><span style="color: #339933;">,%</span><span style="color: #00007f;">ecx</span>
leal <span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #339933;">%</span><span style="color: #00007f;">ecx</span><span style="color: #339933;">,%</span><span style="color: #00007f;">eax</span><span style="color: #009900; font-weight: bold;">&#41;</span><span style="color: #339933;">,%</span><span style="color: #00007f;">edx</span>
movl <span style="color: #339933;">%</span><span style="color: #00007f;">edx</span><span style="color: #339933;">,%</span><span style="color: #00007f;">eax</span>
<span style="color: #00007f; font-weight: bold;">leave</span>
<span style="color: #00007f; font-weight: bold;">ret</span>
&nbsp;
main<span style="color: #339933;">:</span>
&nbsp;
pushl <span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span>
movl <span style="color: #339933;">%</span><span style="color: #00007f;">esp</span><span style="color: #339933;">,%</span><span style="color: #00007f;">ebp</span>
subl $<span style="color: #0000ff;">24</span><span style="color: #339933;">,%</span><span style="color: #00007f;">esp</span>
movl $<span style="color: #0000ff;">99</span><span style="color: #339933;">,-</span><span style="color: #0000ff;">4</span><span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span><span style="color: #009900; font-weight: bold;">&#41;</span>
<span style="color: #00007f; font-weight: bold;">call</span> foo
addl $<span style="color: #339933;">-</span><span style="color: #0000ff;">12</span><span style="color: #339933;">,%</span><span style="color: #00007f;">esp</span>
movl <span style="color: #339933;">-</span><span style="color: #0000ff;">4</span><span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span><span style="color: #009900; font-weight: bold;">&#41;</span><span style="color: #339933;">,%</span><span style="color: #00007f;">eax</span>
pushl <span style="color: #339933;">%</span><span style="color: #00007f;">eax</span>
<span style="color: #00007f; font-weight: bold;">call</span> bar
addl $<span style="color: #0000ff;">16</span><span style="color: #339933;">,%</span><span style="color: #00007f;">esp</span>
addl $<span style="color: #339933;">-</span><span style="color: #0000ff;">8</span><span style="color: #339933;">,%</span><span style="color: #00007f;">esp</span>
pushl $<span style="color: #0000ff;">3</span>
pushl $<span style="color: #0000ff;">1</span>
<span style="color: #00007f; font-weight: bold;">call</span> <span style="color: #00007f; font-weight: bold;">add</span>
addl $<span style="color: #0000ff;">16</span><span style="color: #339933;">,%</span><span style="color: #00007f;">esp</span>
movl <span style="color: #339933;">%</span><span style="color: #00007f;">eax</span><span style="color: #339933;">,%</span><span style="color: #00007f;">eax</span>
movl <span style="color: #339933;">%</span><span style="color: #00007f;">eax</span><span style="color: #339933;">,-</span><span style="color: #0000ff;">4</span><span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #339933;">%</span><span style="color: #00007f;">ebp</span><span style="color: #009900; font-weight: bold;">&#41;</span>
<span style="color: #00007f; font-weight: bold;">leave</span>
<span style="color: #00007f; font-weight: bold;">ret</span></pre></div></div>

<p><em>Copyrigth Dipl. Inf. (FH) Frank Grimm</em></p>
<p><em>(Archiviert aus unseren alten Tipps und Tricks Sektion.)</em></p>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/mnEpdeITNLQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2008/09/parameteruebergabe-an-unterprogramme-per-stack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2008/09/parameteruebergabe-an-unterprogramme-per-stack/</feedburner:origLink></item>
		<item>
		<title>Vortrag zu WinCVS (Version 1.3)</title>
		<link>http://feedproxy.google.com/~r/ipunct/~3/CtqGMEqk15E/</link>
		<comments>http://www.ipunct.net/blog/2008/09/vortrag-zu-wincvs-version-1-3/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 14:04:34 +0000</pubDate>
		<dc:creator>Mario Rasser</dc:creator>
				<category><![CDATA[Tipps]]></category>
		<category><![CDATA[CVS]]></category>

		<guid isPermaLink="false">http://www.ipunct.net/?p=246</guid>
		<description><![CDATA[Folgende Folien und Dateien liegen zum Download bereit: PowerPoint Pr&#228;sentation (zip) Pr&#228;sentation s/w (pdf) Pr&#228;sentation farbig (pdf) (Archiviert aus unseren alten Tipps und Tricks Sektion.)]]></description>
			<content:encoded><![CDATA[<p>Folgende Folien und Dateien liegen zum Download bereit:</p>
<ul>
<li><a href="http://www.ipunct.net/wp-content/uploads/2010/09/vortrag.zip">PowerPoint Pr&auml;sentation (zip)</a></li>
<li><a href="http://www.ipunct.net/wp-content/uploads/2010/09/vortrag_sw.pdf">Pr&auml;sentation s/w (pdf)</a></li>
<li><a href="http://www.ipunct.net/wp-content/uploads/2010/09/vortrag_color.pdf">Pr&auml;sentation farbig (pdf)</a></li>
</ul>
<p><em>(Archiviert aus unseren alten Tipps und Tricks Sektion.)</em></p>
<img src="http://feeds.feedburner.com/~r/ipunct/~4/CtqGMEqk15E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.ipunct.net/blog/2008/09/vortrag-zu-wincvs-version-1-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.ipunct.net/blog/2008/09/vortrag-zu-wincvs-version-1-3/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 3.863 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-04-14 11:51:53 -->

