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

<channel>
	<title>yo61.com</title>
	<atom:link href="http://yo61.com/feed" rel="self" type="application/rss+xml" />
	<link>http://yo61.com</link>
	<description>Web Operations &#38; System Administration in the wilds of North Yorkshire</description>
	<lastBuildDate>Tue, 21 Feb 2012 11:00:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Fixing CentOS Root Certificate Authority issues</title>
		<link>http://yo61.com/fixing-centos-root-certificate-authority-issues.html</link>
		<comments>http://yo61.com/fixing-centos-root-certificate-authority-issues.html#comments</comments>
		<pubDate>Tue, 21 Feb 2012 11:00:40 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[root certificate]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=271</guid>
		<description><![CDATA[I often hit problems cloning git repos from github, and end up googling the answer. This is the solution I use most often. Thanks Eric!]]></description>
			<content:encoded><![CDATA[<p>I often hit problems cloning git repos from github, and end up googling the answer.</p>
<p><a href="http://eric.lubow.org/2011/security/fixing-centos-root-certificate-authority-issues/">This</a> is the solution I use most often. Thanks Eric!</p>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/fixing-centos-root-certificate-authority-issues.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom Thresholding for specific nodes in OpenNMS</title>
		<link>http://yo61.com/custom-thresholding-for-specific-nodes-in-opennms.html</link>
		<comments>http://yo61.com/custom-thresholding-for-specific-nodes-in-opennms.html#comments</comments>
		<pubDate>Mon, 30 Jan 2012 10:11:15 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[opennms]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=262</guid>
		<description><![CDATA[OpenNMS ships with the thresholds for some events already defined. For example, there is a memory threshold defined as: &#60;group name=&#34;netsnmp-memory-nonlinux&#34; rrdRepository=&#34;/opt/opennms/share/rrd/snmp/&#34;&#62; &#60;expression type=&#34;low&#34; expression=&#34;memAvailReal / memTotalReal * 100.0&#34; ds-type=&#34;node&#34; ds-label=&#34;&#34; value=&#34;5.0&#34; rearm=&#34;10.0&#34; trigger=&#34;2&#34;/&#62; &#60;/group&#62; ie. if free memory drops below 5% then an event will be created. The alert will be cancelled automatically if [...]]]></description>
			<content:encoded><![CDATA[<p>OpenNMS ships with the thresholds for some events already defined. For example, there is a memory threshold defined as:</p>
<pre><code>&lt;group name=&quot;netsnmp-memory-nonlinux&quot; rrdRepository=&quot;/opt/opennms/share/rrd/snmp/&quot;&gt;
        &lt;expression type=&quot;low&quot; expression=&quot;memAvailReal / memTotalReal * 100.0&quot; ds-type=&quot;node&quot; ds-label=&quot;&quot; value=&quot;5.0&quot; rearm=&quot;10.0&quot; trigger=&quot;2&quot;/&gt;
&lt;/group&gt;</code></pre>
<p>ie. if free memory drops below 5% then an event will be created. The alert will be cancelled automatically if free memory subsequently rises above 10%</p>
<p>I wanted to configure some specific nodes with a different threshold, eg. generate an event when free memory drops below 2.5%.</p>
<p>Here&#39;s what I did.</p>
<p><span id="more-262"></span>Add new Surveillance Category</p>
<p>Add nodes to new Surveillance Category</p>
<p>Add a new group to thresholds.xml:</p>
<pre>    &lt;group name=&quot;netsnmp-memory-linux-2.5&quot; rrdRepository=&quot;/opt/opennms/share/rrd/snmp/&quot;&gt;
        &lt;expression type=&quot;low&quot; ds-type=&quot;node&quot; value=&quot;2.5&quot; rearm=&quot;5.0&quot;
            trigger=&quot;2&quot; filterOperator=&quot;or&quot; expression=&quot;(memAvailReal + memCached) / memTotalReal * 100.0&quot;/&gt;
    &lt;/group&gt;</pre>
<p>Update threshd-configuration.xml to modify the existing netsnmp-memory-linux package and add a new netsnmp-memory-linux-2.5 package:</p>
<pre>    &lt;package name=&quot;netsnmp-memory-linux&quot;&gt;
        &lt;filter&gt;IPADDR != &#39;0.0.0.0&#39; &amp;amp; nodeSysOID == &#39;.1.3.6.1.4.1.8072.3.2.10&#39; &amp;amp; ! ( catincNetSNMP-Mem-2_5 )&lt;/filter&gt;
        &lt;include-range begin=&quot;1.1.1.1&quot; end=&quot;254.254.254.254&quot;/&gt;
        &lt;include-range begin=&quot;::1&quot; end=&quot;ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff&quot; /&gt;
        &lt;service name=&quot;SNMP&quot; interval=&quot;300000&quot; user-defined=&quot;false&quot; status=&quot;on&quot;&gt;
            &lt;parameter key=&quot;thresholding-group&quot; value=&quot;netsnmp-memory-linux&quot;/&gt;
        &lt;/service&gt;
    &lt;/package&gt;

    &lt;package name=&quot;netsnmp-memory-linux-2.5&quot;&gt;
        &lt;filter&gt;IPADDR != &#39;0.0.0.0&#39; &amp;amp; nodeSysOID == &#39;.1.3.6.1.4.1.8072.3.2.10&#39; &amp;amp; catincNetSNMP-Mem-2_5&lt;/filter&gt;
        &lt;include-range begin=&quot;1.1.1.1&quot; end=&quot;254.254.254.254&quot;/&gt;
        &lt;include-range begin=&quot;::1&quot; end=&quot;ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff&quot; /&gt;
        &lt;service name=&quot;SNMP&quot; interval=&quot;300000&quot; user-defined=&quot;false&quot; status=&quot;on&quot;&gt;
            &lt;parameter key=&quot;thresholding-group&quot; value=&quot;netsnmp-memory-linux-2.5&quot;/&gt;
        &lt;/service&gt;
    &lt;/package&gt;</pre>
<p>The tricky bit is the &quot;catincNetSNMP-Mem-2_5&quot;. This is a function &quot;catinc&quot; which matches all nodes in the specified category ie. &quot;NetSNMP-Mem-2_5&quot; in this example. The first use of it is in the netsnmp-memory-linux category to exclude nodes in the NetSNMP-Mem-2_5 category. The second use is to include nodes in the NetSNMP-Mem-2_5 category.</p>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/custom-thresholding-for-specific-nodes-in-opennms.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading RHEL 6.2 to CentOS 6.2</title>
		<link>http://yo61.com/upgrading-rhel-6-2-to-centos-6-2.html</link>
		<comments>http://yo61.com/upgrading-rhel-6-2-to-centos-6-2.html#comments</comments>
		<pubDate>Mon, 09 Jan 2012 16:30:04 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=259</guid>
		<description><![CDATA[I had a utility server running RHEL 6.2 (I installed it as part of a RHEV evaluation process). However, I have no RHEL entitlements so am not able to get updates. So, I converted it to CentOS 6.2, with a little help from this post: yum clean all mkdir ~/centos cd ~/centos wget http://mirror.centos.org/centos/6.2/os/x86_64/RPM-GPG-KEY-CentOS-6 wget [...]]]></description>
			<content:encoded><![CDATA[<p>I had a utility server running RHEL 6.2 (I installed it as part of a RHEV evaluation process). However, I have no RHEL entitlements so am not able to get updates.</p>
<p>So, I converted it to CentOS 6.2, with a little help from <a href="http://ivo.livejournal.com/75008.html" target="_blank">this post</a>:</p>
<pre><kbd>yum clean all</kbd>
<kbd>mkdir ~/centos</kbd>
<kbd>cd ~/centos</kbd>
<kbd>wget http://mirror.centos.org/centos/6.2/os/x86_64/RPM-GPG-KEY-CentOS-6</kbd>
<kbd>wget http://mirror.centos.org/centos/6.2/os/x86_64/Packages/centos-release-6-2.el6.centos.7.x86_64.rpm</kbd>
<kbd>wget http://mirror.centos.org/centos/6.2/os/x86_64/Packages/yum-3.2.29-22.el6.centos.noarch.rpm</kbd>
<kbd>wget http://mirror.centos.org/centos/6.2/os/x86_64/Packages/yum-utils-1.1.30-10.el6.noarch.rpm</kbd>
<kbd>wget http://mirror.centos.org/centos/6.2/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-10.el6.noarch.rpm</kbd>
<kbd>rpm --import RPM-GPG-KEY-CentOS-6</kbd>
<kbd>rpm -e --nodeps redhat-release-server</kbd>
<kbd>rpm -e yum-rhn-plugin rhn-check rhnsd rhn-setup</kbd>
<kbd>rpm -Uhv --force *.rpm</kbd>
<kbd>yum upgrade</kbd>
<kbd>reboot</kbd></pre>
<p>Nice!</p>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/upgrading-rhel-6-2-to-centos-6-2.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Which Linux distribution for a MySQL server?</title>
		<link>http://yo61.com/which-linux-distribution-for-a-mysql-server.html</link>
		<comments>http://yo61.com/which-linux-distribution-for-a-mysql-server.html#comments</comments>
		<pubDate>Tue, 13 Dec 2011 14:30:15 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=255</guid>
		<description><![CDATA[I was pleased to read this link on the excellent MySQL Performance Blog.]]></description>
			<content:encoded><![CDATA[<p>I was pleased to read <a href="http://www.mysqlperformanceblog.com/2011/12/08/which-linux-distribution-for-mysql-server/">this</a> link on the excellent <a href="http://www.mysqlperformanceblog.com">MySQL Performance Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/which-linux-distribution-for-a-mysql-server.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating an OS X install USB stick from pre-installed Lion</title>
		<link>http://yo61.com/creating-an-os-x-install-usb-stick-from-pre-installed-lion.html</link>
		<comments>http://yo61.com/creating-an-os-x-install-usb-stick-from-pre-installed-lion.html#comments</comments>
		<pubDate>Wed, 09 Nov 2011 11:16:17 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[customac]]></category>
		<category><![CDATA[hackintosh]]></category>
		<category><![CDATA[Lion]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[unibeast]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=251</guid>
		<description><![CDATA[Mount the Recovery Partition as described here. Download and run Unibeast, as described here.]]></description>
			<content:encoded><![CDATA[<p>Mount the Recovery Partition as described <a href="http://hints.macworld.com/article.php?story=20110831105634716">here</a>.</p>
<p>Download and run Unibeast, as described <a href="http://tonymacx86.blogspot.com/2011/10/unibeast-install-mac-os-x-lion-using.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/creating-an-os-x-install-usb-stick-from-pre-installed-lion.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listing all files with their .rpmnew updates</title>
		<link>http://yo61.com/listing-all-files-with-their-rpmnew-updates.html</link>
		<comments>http://yo61.com/listing-all-files-with-their-rpmnew-updates.html#comments</comments>
		<pubDate>Fri, 23 Sep 2011 13:22:04 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command-line]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[variable substitution]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=247</guid>
		<description><![CDATA[When you install an update to a package on an RPM-based system, any configuration files which were originally distributed by the package and that have been changed are not replaced when the package is updated. Instead, rpm creates a new file with the extention &#34;.rpmnew&#34;. It is then necessary to manually compare the existing file [...]]]></description>
			<content:encoded><![CDATA[<p>When you install an update to a package on an RPM-based system, any configuration files which were originally distributed by the package and that have been changed are not replaced when the package is updated. Instead, rpm creates a new file with the extention &quot;<tt>.rpmnew</tt>&quot;. It is then necessary to manually compare the existing file and the new one and decide how to deal with the new file.</p>
<p>So, the pattern I often need to use is &quot;list all .rpmnew files and the corresponding original file&quot;. This is not a particularly complex issue, but is one that I don&#39;t use often enough to have at my fingertips. The trick is bash variable substitution; specifically pattern matching: <tt>${variable%pattern}</tt>. This deletes the shortest possible match for <tt>pattern</tt> from the right of the contents of <tt>$variable</tt>.</p>
<p>An example using <tt>.rpmnew</tt> files created when upgading OpenNMS:</p>
<p><code># ls -1 *.rpmnew| while read f ;&nbsp;do ls -l ${f%\.rpmnew}* ; done<br />
-rw-rw-r-- 1 root root 7285 Jun &nbsp;3 12:43 database-reports.xml<br />
-rw-rw-r-- 1 root root 8232 Aug 10 19:01 database-reports.xml.rpmnew<br />
-rw-rw-r-- 1 root root 333092 Aug 25 09:25 datacollection-config.xml<br />
-rw-rw-r-- 1 root root 314141 May 11 01:31 datacollection-config.xml.rpmnew<br />
-rw-rw-r-- 1 root root 3395 Jun &nbsp;3 12:43 jasper-reports.xml<br />
-rw-rw-r-- 1 root root 3664 Aug 10 19:01 jasper-reports.xml.rpmnew<br />
-rw-rw-r-- 1 root root 25887 Aug 10 19:01 log4j.properties<br />
-rw-rw-r-- 1 root root 25887 May 11 01:31 log4j.properties.rpmnew<br />
-rw-rw-r-- 1 root root 19319 Apr 22 16:56 opennms.properties<br />
-rw-rw-r-- 1 root root 19635 Aug 10 19:01 opennms.properties.rpmnew<br />
-rw-rw-r-- 1 root root 9252 Apr 22 16:59 rrd-configuration.properties<br />
-rw-rw-r-- 1 root root 9604 May 11 01:31 rrd-configuration.properties.rpmnew<br />
-rw-r--r-- 1 root root 669444 Jun &nbsp;3 13:51 snmp-graph.properties<br />
-rw-rw-r-- 1 root root 604457 Aug 10 19:01 snmp-graph.properties.rpmnew</code></p>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/listing-all-files-with-their-rpmnew-updates.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading Tripplite PDU firmware</title>
		<link>http://yo61.com/upgrading-tripplite-pdu-firmware.html</link>
		<comments>http://yo61.com/upgrading-tripplite-pdu-firmware.html#comments</comments>
		<pubDate>Thu, 08 Sep 2011 17:56:53 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[firmware upgrade]]></category>
		<category><![CDATA[pdu]]></category>
		<category><![CDATA[tripp lite]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=243</guid>
		<description><![CDATA[One of my clients uses Tripp Lite &#160;PDUMH20AT power distribution units. They are rather primitive, and upgrading firmware on the management cards is done via ftp; you start an ftp session, upload the firmware image and the device reboots when you quit. I recently ran into problems with the ftp sessions &#8211; I could connect [...]]]></description>
			<content:encoded><![CDATA[<p>One of my clients uses Tripp Lite &nbsp;PDUMH20AT power distribution units. They are rather primitive, and upgrading firmware on the management cards is done via ftp; you start an ftp session, upload the firmware image and the device reboots when you quit.</p>
<p>I recently ran into problems with the ftp sessions &#8211; I could connect OK, but any attempt to transfer files would fail.</p>
<p>It turns out the ftp server on the devices can&#39;t do passive ftp, only active. The fix is simple &#8211; issue the &quot;passive&quot; command before uploading the firmware image. Of course, this means it won&#39;t work very well through a firewall/NAT router, but that&#39;s not a problem as I do the upgrades from a local machine.</p>
<p>The full session looks something like this:</p>
<pre><span class="Apple-style-span" style="font-family: monospace; white-space: pre; ">[root@a001 Files4step2]# ftp 8.pdu.a</span>
<span class="Apple-style-span" style="font-family: monospace; white-space: pre; ">Connected to 8.pdu.a (192.168.254.138).</span>
<tt>220 NET+ARM FTP Server 1.0 ready.</tt>
<tt>Name (8.pdu.a:root): admin</tt>
<tt>331 User admin OK, send password.</tt>
<tt>Password:</tt>
<tt>230 Password OK.</tt>
<tt>Remote system type is NET+ARM.</tt>
<tt>ftp&gt; bin</tt>
<tt>200 Type set to I.</tt>
<tt>ftp&gt; passive</tt>
<tt>Passive mode off.</tt>
<tt>ftp&gt; put rom.bin</tt>
<tt>local: rom.bin remote: rom.bin</tt>
<tt>200 PORT command Ok.</tt>
<tt>150 About to open data connection.</tt>
<tt>226 Transfer complete</tt>
<tt>2109474 bytes sent in 2.35 secs (8.8e+02 Kbytes/sec)</tt>
<tt>ftp&gt; put pwralert.dat</tt>
<tt>local: pwralert.dat remote: pwralert.dat</tt>
<tt>200 PORT command Ok.</tt>
<tt>150 About to open data connection.</tt>
<tt>226 Transfer complete</tt>
<tt>679080 bytes sent in 0.793 secs (8.4e+02 Kbytes/sec)</tt>
<tt>ftp&gt; bye</tt>
<tt>221 Goodbye.</tt></pre>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/upgrading-tripplite-pdu-firmware.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using mock to build 32-bit shared libraries on 64-bit platform</title>
		<link>http://yo61.com/using-mock-to-build-32-bit-shared-libraries-on-64-bit-platform.html</link>
		<comments>http://yo61.com/using-mock-to-build-32-bit-shared-libraries-on-64-bit-platform.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 14:40:44 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[maatkit]]></category>
		<category><![CDATA[mock]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[udf]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=237</guid>
		<description><![CDATA[Most of the servers I manage are 64-bit. I have one linode box that is 32-bit. I chose 32-bit because it has better memory usage than 64-bit, which is possibly important with a 512MB instance. This was probably a mistake as the management overhead involved with maintaining a 32-bit infrastructure for just one 32-bit machine [...]]]></description>
			<content:encoded><![CDATA[<p>Most of the servers I manage are 64-bit. I have one linode box that is 32-bit. I chose 32-bit because it has better memory usage than 64-bit, which is possibly important with a 512MB instance. This was probably a mistake as the management overhead involved with maintaining a 32-bit infrastructure for just one 32-bit machine is silly. No matter &#8211; we are where we are&#8230;!</p>
<p>I use the <a href="http://code.google.com/p/maatkit/wiki/InstallingUdfs">fnv_64 user-defined function</a> from maatkit with MySQL. So, I need to build a 32-bit version for use on the 32-bit server.</p>
<p>Here&#39;s how to use mock to create a 32-bit build environment (in this case, for CentOS 5) on a 64-bit machine (the host is actually a Fedora 15 server).</p>
<p><span id="more-237"></span>The basic strategy as as follows:</p>
<ol>
<li>Initialise the environment</li>
<li>Install any dependencies</li>
<li>Copy in the code you want to build</li>
<li>chroot into the build shell</li>
<li>Build the code</li>
<li>Exit the build shell</li>
<li>Copy out the results of the build process</li>
</ol>
<p>Here&#39;s what that looks like with mock:</p>
<pre>mock -r epel-5-i386 --init
mock -r epel-5-i386 --install mysql-devel
mock -r epel-5-i386 --copyin fnv_udf.cc /fnv_udf.cc
mock -r epel-5-i386 shell
gcc -fPIC -Wall -I/usr/include/mysql -shared -o fnv_udf.so fnv_udf.cc
exit
mock -r epel-5-i386 --copyout /fnv_udf.so .
</pre>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/using-mock-to-build-32-bit-shared-libraries-on-64-bit-platform.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting between unix time and date, part 2</title>
		<link>http://yo61.com/converting-between-unix-time-and-date-part-2.html</link>
		<comments>http://yo61.com/converting-between-unix-time-and-date-part-2.html#comments</comments>
		<pubDate>Thu, 02 Jun 2011 14:29:34 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[date conversion]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=231</guid>
		<description><![CDATA[Since my recent post about converting between unix time and date, it has come to my attention that Unix epochs are in seconds while&#160;Java epochs are in milliseconds.&#160;That means that you need to scale the epoch values by a factor of 1000 to convert between Unix and Java format. So, date -u -d &#39;2011-04-26 15:00:00&#39; [...]]]></description>
			<content:encoded><![CDATA[<p>Since my <a href="http://yo61.com/converting-between-unix-time-and-date.html">recent post</a> about converting between unix time and date, it has come to my attention that Unix epochs are in seconds while&nbsp;Java epochs are in milliseconds.&nbsp;That means that you need to scale the epoch values by a factor of 1000 to convert between Unix and Java format.</p>
<p>So, <tt>date -u -d &#39;2011-04-26 15:00:00&#39; +%s</tt> gives <tt>1303830000</tt> (Unix epoch) which becomes <tt>1303830000000</tt> (Java epoch)</p>
<p>Converting the other way, the Java epoch <tt>1306934061475</tt> is <tt>1306934061.475</tt> in Unix format. <tt>date -u -d @1306934061.475</tt> gives <tt>Wed Jun 1 13:14:21 UTC 2011</tt> (assuming a UTC epoch).</p>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/converting-between-unix-time-and-date-part-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updating Dell iDRAC6 firmware on linux</title>
		<link>http://yo61.com/updating-dell-idrac6-firmware-linux.html</link>
		<comments>http://yo61.com/updating-dell-idrac6-firmware-linux.html#comments</comments>
		<pubDate>Tue, 17 May 2011 14:00:03 +0000</pubDate>
		<dc:creator>Robin Bowes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[firmware update]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://yo61.com/?p=228</guid>
		<description><![CDATA[Here are two ways to update the firmware on Dell iDRAC6 remote access cards. Both methods require downloading the BIOS from Dell and extracting it from the bundle. For example, this is the 1.70.21 firmware: mkdir /tmp/dell cd /tmp/dell wget http://ftp.dell.com/esm/IDRAC6_FRMW_LX_R299265.BIN Grab this and extract like this: cd /tmp/dell sh IDRAC6_FRMW_LX_R299265.BIN --extract ./idrac6-1.70.21 The firmware [...]]]></description>
			<content:encoded><![CDATA[<p>Here are two ways to update the firmware on Dell iDRAC6 remote access cards.</p>
<p>Both methods require downloading the BIOS from Dell and extracting it from the bundle. For example, this is the 1.70.21 firmware:</p>
<p><kbd>mkdir /tmp/dell<br />
	cd /tmp/dell<br />
	wget http://ftp.dell.com/esm/IDRAC6_FRMW_LX_R299265.BIN</kbd></p>
<p>Grab this and extract like this:</p>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /><kbd>cd /tmp/dell<br />
	sh IDRAC6_FRMW_LX_R299265.BIN --extract ./idrac6-1.70.21</kbd></p>
<p>The firmware image is now in <kbd>/tmp/dell/idrac6-1.70.21/payload/firmimg.d6</kbd></p>
<p>If you are just updating one machine, then the simplest way to perform the update is to use the Dell <kbd>bmcfwul</kbd> tool locally. This is supplied in the <kbd>dell_ie_nitrogen</kbd> package, and is installed to&nbsp;<kbd>/usr/libexec/dell_dup/dell_ie_nitrogen/bmcfwul</kbd>.&nbsp;</p>
<p>Install the new firmware like this:</p>
<p><kbd>/usr/libexec/dell_dup/dell_ie_nitrogen/bmcfwul -input=/tmp/dell/idrac6-1.70.21/payload/firmimg.d6</kbd></p>
<p>If you have several machines to update, the most convenient way to perform the update is with tftp.</p>
<p>First, copy the firmware image to the tftp server, and put it in /tftproot, or wherever the root of your tftp server is located:</p>
<p><kbd>scp&nbsp;/tmp/dell/idrac6-1.70.21/payload/firmimg.d6&nbsp;$ip_of_tftp_server:/tftproot</kbd></p>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /></p>
<p>Then, trigger a firmware upgrade on the machines remotely using either racadm or ssh:</p>
<p><kbd>racadm -r host.to.update -u root -p calvin fwupdate&nbsp;-g -u -a $ip_of_tftp_server</kbd></p>
<p>or</p>
<p><kbd>ssh&nbsp;host.to.update racadm&nbsp;fwupdate&nbsp;-g -u -a $ip_of_tftp_server</kbd></p>
<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /><meta content="text/html; charset=utf-8" http-equiv="content-type" /><meta content="text/html; charset=utf-8" http-equiv="content-type" /><meta content="text/html; charset=utf-8" http-equiv="content-type" /><meta content="text/html; charset=utf-8" http-equiv="content-type" /></p>
]]></content:encoded>
			<wfw:commentRss>http://yo61.com/updating-dell-idrac6-firmware-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.276 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-19 14:34:13 -->

