<?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>totalnetsolutions.net &#187; HowTo</title>
	<atom:link href="http://www.totalnetsolutions.net/category/howto/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.totalnetsolutions.net</link>
	<description>totalnetsolutions.net - Complete Networking Solutions for business</description>
	<lastBuildDate>Thu, 26 Jan 2012 04:05:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>What date is XX days from today?</title>
		<link>http://www.totalnetsolutions.net/2012/01/25/what-date-is-xx-days-from-today/</link>
		<comments>http://www.totalnetsolutions.net/2012/01/25/what-date-is-xx-days-from-today/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 03:30:27 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Open Source Software]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/?p=89</guid>
		<description><![CDATA[A quick CLI reference for perl people&#8230; perl -e ' my @t=localtime(time() + $ARGV[0]*24*60*60); $t[4]++; $t[5]+=1900; print "$t[4]/$t[3]/$t[5]\n";' XX I&#8217;ve needed this 2x today already, and hope it helps you! Edit: Someone made a comment, as people on the internet are prone to do, so here&#8217;s the long-form non-one-liner version: #!/usr/bin/perl my $addDays = shift; [...]]]></description>
			<content:encoded><![CDATA[<p>A quick CLI reference for perl people&#8230;<br />
<code><br />
perl -e ' my @t=localtime(time() + $ARGV[0]*24*60*60); $t[4]++; $t[5]+=1900; print "$t[4]/$t[3]/$t[5]\n";' XX<br />
</code><br />
I&#8217;ve needed this 2x today already, and hope it helps you!</p>
<p>Edit:<br />
Someone made a comment, as people on the internet are prone to do, so here&#8217;s the long-form non-one-liner version:</p>
<p><code><br />
#!/usr/bin/perl<br />
my $addDays = shift;<br />
my ($second, $minute, $hour, $day, $month, $year, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime(time());<br />
my ($fsecond, $fminute, $fhour, $fday, $fmonth, $fyear, $fdayOfWeek, $fdayOfYear, $fdaylightSavings) = localtime(time() + $addDays*24*60*60);</p>
<p>#fix 0 = 1 values, and "0 = 1900" problem:<br />
$month++;<br />
$fmonth++;<br />
$year+=1900;<br />
$fyear+=1900;</p>
<p>print "today is:                    $month/$day/$year\n";<br />
print "$addDays days from today is: $fmonth/$fday/$fyear\n";<br />
</code></p>
<p>Run it as:<br />
<code><br />
rob@laptop:~$ fdate.pl 50<br />
today is:              1/25/2012<br />
50 days from today is: 3/15/2012<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2012/01/25/what-date-is-xx-days-from-today/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic MTU in Debian/Ubuntu</title>
		<link>http://www.totalnetsolutions.net/2011/10/05/dynamic-mtu-in-debianubuntu/</link>
		<comments>http://www.totalnetsolutions.net/2011/10/05/dynamic-mtu-in-debianubuntu/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 19:53:00 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/?p=85</guid>
		<description><![CDATA[I know it&#8217;s probably an unusual situation, but in the lab we have Jumbo frames turned on for all the servers and test boxes. It makes a huge difference copying ISOs between hosts, and doing network backups. However, my Kubuntu laptop isn&#8217;t always in the lab network. This means that I almost never remember to [...]]]></description>
			<content:encoded><![CDATA[<p>I know it&#8217;s probably an unusual situation, but in the lab we have Jumbo frames turned on for all the servers and test boxes.  It makes a huge difference copying ISOs between hosts, and doing network backups.  However, my Kubuntu laptop isn&#8217;t always in the lab network.  This means that I almost never remember to change the MTU when I&#8217;m back in the office, OR I remember in the middle of a transfer, when it&#8217;s already too late to gain the benefits.</p>
<p>So I wrote a little script, and put it in /etc/network/if-up.d/ named &#8220;jumbo-frames.sh&#8221;.  The if-*.d/ structure is designed for exactly this purpose: run a script when an interface comes up.  The basic premise is: If I&#8217;m plugged into a wired network (eth0) in the lab (domain or IP address match certain parameters), then set the MTU to 9000 (jumbo frame support), otherwise assume the network has a normal MTU (1500).  This allows the system to reconfigure on the fly if I put it to sleep and go visit a customer.</p>
<p>Here&#8217;s the code:<br />
<code><br />
#!/bin/sh<br />
# Set support for jumbo frames when at home on wired network, else do not.<br />
# Determine home network based on IP address and DNS-determined name.<br />
# $IFACE should be set by the caller.</p>
<p>PATH=/sbin:/bin:/usr/sbin:/usr/bin</p>
<p>IFC=/sbin/ifconfig<br />
INT="eth0"<br />
MTU=9000<br />
DEFMTU=1500<br />
#name of the DNS domain to assume as "home"<br />
HOMED="totalnetsolutions.net"<br />
#IP Subnet to assume as "home" if DNS test fails<br />
HOMEN="10.0.0."</p>
<p>test -x $IFC || exit 0</p>
<p># Don't make changes to the wireless (wlan) or loopback (lo) interfaces<br />
if [ "$IFACE" != "$INT" ]; then<br />
    exit 0<br />
fi</p>
<p># if dhcpd is still working on writing our resolv.conf, just wait a while (it's a hack, but it works).<br />
test -f /etc/resolv.conf || sleep 15</p>
<p>DOM=`awk '/search/ { print $2 }' /etc/resolv.conf`<br />
NET=`ip addr show dev $IFACE | awk '/inet / { print $2 }' | awk -F. '{ print $1 "." $2 "." $3 "." }'`</p>
<p>if [ "$DOM" = "$HOMED" ]; then<br />
    $IFC $IFACE mtu $MTU<br />
elif [ "$NET" = "$HOMEN" ]; then<br />
    $IFC $IFACE mtu $MTU<br />
else<br />
    $IFC $IFACE mtu $DEFMTU<br />
fi<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2011/10/05/dynamic-mtu-in-debianubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HowTo: Create a dummy / empty / blank krb5.keytab file</title>
		<link>http://www.totalnetsolutions.net/2011/07/07/howto-create-a-dummy-empty-blank-krb5-keytab-file/</link>
		<comments>http://www.totalnetsolutions.net/2011/07/07/howto-create-a-dummy-empty-blank-krb5-keytab-file/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 03:29:39 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[howto technology linux]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/?p=80</guid>
		<description><![CDATA[We had an issue recently where we needed a dummy krb5.keytab file for an operation prior to creating the real keytab: echo -e "\0005\0002\c" >/etc/krb5.keytab]]></description>
			<content:encoded><![CDATA[<p>We had an issue recently where we needed a dummy krb5.keytab file for an operation prior to creating the real keytab:<br />
<code>echo -e "\0005\0002\c" >/etc/krb5.keytab</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2011/07/07/howto-create-a-dummy-empty-blank-krb5-keytab-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Test SMTP by hand</title>
		<link>http://www.totalnetsolutions.net/2011/06/21/howto-test-smtp-by-hand/</link>
		<comments>http://www.totalnetsolutions.net/2011/06/21/howto-test-smtp-by-hand/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 02:10:27 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Exchange]]></category>
		<category><![CDATA[HowTo]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/?p=79</guid>
		<description><![CDATA[I recently had a co-worker trying to figure out a &#8220;lost email&#8221; problem we were possibly experiencing. He was blind to everything after hitting &#8220;send&#8221; because the intermediate servers weren&#8217;t sending delivery recipets, even though they were requested in the MIME header (Does any mail admin allow those to be sent out of the organization [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had a co-worker trying to figure out a &#8220;lost email&#8221; problem we were possibly experiencing.  He was blind to everything after hitting &#8220;send&#8221; because the intermediate servers weren&#8217;t sending delivery recipets, even though they were requested in the MIME header (Does any mail admin allow those to be sent out of the organization these days?)  So, to help him out, I wrote up the following &#8220;how to test SMTP by hand&#8221; HOWTO.</p>
<p>First step is to determine which servers are responsible for mail delivery inbound for the domain you&#8217;re sending to.  You do this by looking in DNS for the &#8220;MX&#8221; type records.  These are provided in the format &#8220;priority servername.domain.&#8221;  Priority is reverse-ordered.  The easiest way to remember priority order is that it&#8217;s the order in which servers are attempted.<br />
<code><br />
rob@rob-kubuntu3:~$ dig MX totalnetsolutions.net +short<br />
10 docsmooth.isa-geek.net.<br />
rob@rob-kubuntu3:~$ dig MX likewise.com +short<br />
10 server1.inboundmx.com.<br />
20 server2.inboundmx.com.<br />
</code><br />
This tells you the servers, in order, that *all* mail will be sent to for the domain listed.  So, anything to my likewise.com address will go to server1.inboundmx.com.  The higher priorities are only used if the lower priorities fail to answer.  If no server answers, the mail is held by the sender and retried, generally every 1 or 4 hours for up to 4 days, but this retry is configured on the *sending* server.  That means, your own email admin (or you, if you&#8217;re the mail admin).</p>
<p>Next thing to check is: does the server work, and is it your sender, or their receiver?  Check with telnet!<br />
Stuff I type is in red:<br />
<code><br />
rob@rob-kubuntu3:~$ <span style="color:red;">telnet docsmooth.isa-geek.net 25</span><br />
Trying 99.29.179.119...<br />
Connected to docsmooth.isa-geek.net.<br />
Escape character is '^]'.<br />
220 totalnetsolutions.net Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at  Tue, 31 May 2011 08:43:08 -0500<br />
<span style="color:red;">HELO</span><br />
250 totalnetsolutions.net Hello [12.130.116.175]<br />
<span style="color:red;">MAIL FROM: me@me.com</span><br />
250 2.1.0 me@me.com....Sender OK<br />
<span style="color:red;">RCPT TO:you@you.net</span><br />
250 2.1.5 you@you.net<br />
<span style="color:red;">DATA</span><br />
354 Start mail input; end with <crlf>.</crlf><crlf><br />
<span style="color:red;">from:me@me.com<br />
to:you@you.net<br />
subject:test manually<br />
test<br />
test<br />
.</span><br />
250 2.6.0 <tns03suzbbd2j9jsmmx00000039 @totalnetsolutions.net> Queued mail for delivery<br />
<span style="color:red;">quit</span><br />
221 2.0.0 totalnetsolutions.net Service closing transmission channel<br />
Connection closed by foreign host.<br />
</tns03suzbbd2j9jsmmx00000039></crlf></code><br />
The last &#8220;.&#8221; is SUPER important &#8211; it tells the mail server when you&#8217;re done sending that email.  You could use that channel to send other messages, rather than sending &#8220;QUIT&#8221; if you&#8217;d like.  You might notice that I entered the &#8220;From&#8221; and &#8220;To&#8221; lines twice.  The first entries are for the SMTP header (analogy would be the message envelope), and the second entries are for the MIME headings (analogy would be the return address header in a formal postal letter, if anyone sends those).  The MIME headings are what most mail programs display, and actually don&#8217;t technically need to match the SMTP header (but if MIME and SMTP don&#8217;t match many anti-spam programs will throw out the message).</p>
<p>The MIME header is pretty complex, but not order-dependant, although I prefer to enter it in order, so that I can be sure I don&#8217;t miss anything.<br />
If you want to add an attachment, just base64 encode it first with:<br />
<code>perl -e 'use MIME::Base64; qw(encode_base64); print encode_base64("@ARGV");' cat attachment-to-send.zip</code><br />
Then you can just paste it into the email.  In the MIME heading (right after the subject), just add (with the appropriate mime coding, probably application/octet-string:<br />
<code><br />
------=_NextPart_000_000D_01CC1C41.21F38080<br />
Content-Type: application/zip;<br />
	name="attachment-to-send.zip"<br />
Content-Transfer-Encoding: base64<br />
Content-Disposition: attachment;<br />
	filename="attachment-to-send.zip"<br />
&lt;paste your base64 encoded attachment/ &gt;<br />
Content-Type: multipart/mixed;<br />
	boundary="----=_NextPart_000_000D_01CC1C41.21F38080"<br />
------=_NextPart_000_000D_01CC1C41.21F38080<br />
Content-Type: text/plain;<br />
	charset="us-ascii"<br />
Content-Transfer-Encoding: 7bit</p>
<p>Type your message here, ending with a “.” Standalone on a line.<br />
.</p>
<p></code></p>
<p>Now that you know *how* to send an email message by hand, you can use the returned error codes to troubleshoot where the message may be disappearing.  Remember, that this just gives you transport troubleshooting between yourself and the initial destination mail server.  Many large (and even medium-sized) organizations will have a perimeter mail server which then forwards the message to one or more internal servers.  If the mail is being dropped at that point, you&#8217;ll have to contact the reciever with the proof that their server is accepting your messages.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2011/06/21/howto-test-smtp-by-hand/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Samba on Likewise Open – errors with machine accounts</title>
		<link>http://www.totalnetsolutions.net/2009/03/05/samba-on-likewise-open-errors-with-machine-accounts/</link>
		<comments>http://www.totalnetsolutions.net/2009/03/05/samba-on-likewise-open-errors-with-machine-accounts/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 18:56:48 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Open Source Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/?p=55</guid>
		<description><![CDATA[We’ve had a few customers and Open users posting about problems with machine accounts trying to access Samba shares and getting denied with: smbd/sesssetup.c:reply_spnego_kerberos(439) Username DOM\COMPUTER1$ is invalid on this system The “$” at the end of the account name means it’s a computer account, not a user. We’re seeing this for Citrix MetaFrame application [...]]]></description>
			<content:encoded><![CDATA[<p>We’ve had a few customers and Open users posting about problems with  machine accounts trying to access Samba shares and getting denied with:<br />
<code>smbd/sesssetup.c:reply_spnego_kerberos(439) Username DOM\COMPUTER1$ is invalid on this system</code><br />
The “$” at the end of the account name means it’s a computer account,  not a user.  We’re seeing this for Citrix MetaFrame application servers  on shared storage, startup scripts not stored on a DC, and several other  cases.</p>
<p>On a Samba server joined to AD with winbind, this is easy to deal  with because Samba’s winbind can treat the computer accounts just like  user accounts, and assign them access to the unix filesystem with  whatever backend has been configured.  When a Samba server is joined  with Likewise, however, the machine accounts are not visible, and the  “username is invalid” message comes up.</p>
<p>Fortunately, Samba gives us a method to handle this, in form of the  “username map” directive in /etc/samba/smb.conf.  There are two ways to  use this, the first is with the username map file.<br />
In smb.conf, to simply add:<br />
<code> [global ]<br />
username map = /etc/samba/smbusers</code><br />
then create a file named <code>/etc/samba/smbusers</code> and populate it with localuser=aduser pairs, like:<br />
<code>COMPUTER1$ = compacct<br />
COMPUTER2$ = compacct<br />
CITRIXFARM1$ = citrxact</code><br />
and so on.  Lastly, you’ll have to add the local accounts from the pairs above:<br />
<code>useradd -c "Account for AD Computers to use Samba" compacct -G users -u 998<br />
useradd -c "Account for AD Citrix Servers to use Samba" citrxact -G users -u 999</code><br />
Then, whenever one of the AD computers in the list attempts to access the Samba share, it’ll be mapped to the local account.</p>
<p>The problem with this is when you have a lot of servers, like a  Citrix MetaFrame farm, or a Windows Server 2008 R2 Remote Desktop  Services farm, that may be changing frequently, because managing that  file could get hard. In this case there is the <code>username map script</code> directive, which is added to smb.conf as:<br />
<code> [global ]<br />
username map script = /usr/lib/samba/auth/machine-acct-map.pl</code><br />
Then download <a href='http://www.totalnetsolutions.net/wp-content/uploads/2011/05/machine-acct-map.txt'>this script</a> and save it in <code>/usr/lib/samba/auth/</code> and make it executable (<code>chmod +x /usr/lib/samba/auth/machine-acct-map.pl</code>).  Then run:<br />
<code>useradd -c "Account for AD Computers to use Samba" compacct -G users -u 998</code><br />
Now, all computers which access the share will be remapped to the  “compacct” user, and you won’t have to manage a file for every time the  server farm changes.</p>
<p><a href='http://www.totalnetsolutions.net/wp-content/uploads/2011/05/machine-acct-map.txt'>Get the file here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2009/03/05/samba-on-likewise-open-errors-with-machine-accounts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Solaris 10 and DHCP (AKA but, I know this system!)</title>
		<link>http://www.totalnetsolutions.net/2008/06/18/solaris-10-and-dhcp-aka-but-i-know-this-system/</link>
		<comments>http://www.totalnetsolutions.net/2008/06/18/solaris-10-and-dhcp-aka-but-i-know-this-system/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 19:26:00 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/?p=62</guid>
		<description><![CDATA[I’ve been working on something completely new for the past 2 months which has involved a lot of travel. 95% travel, which leaves precious little time to write new articles, especially as I’ve been spending my off-hours learning HP-UX 11 and Solaris 8 and 10. And I still have AIX 5 to learn too. Apperantly [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been working on something completely new for the past 2 months  which has involved a lot of travel.  95% travel, which leaves precious  little time to write new articles, especially as I’ve been spending my  off-hours learning HP-UX 11 and Solaris 8 and 10.  And I still have AIX 5  to learn too.</p>
<p>Apperantly Solaris 10 and OpenSolaris have a little quirk around how  they work with DHCP and setting the system’s DNS name.  In our test lab,  all our systems are assigned addresses via Microsoft DHCP, which then  registers (and un-registers) non-Windows systems in DNS properly.   However, the x86 Solaris systems we built for a customer test came up  with name “unknown”, every single reboot.  Changing /etc/hosts and  /etc/hostname.pcn0 or /etc/hostname.vmxnet0 (physical or VMWare) to  reflect the new proper hostname, however, didn’t affect the server on  reboot – the settings would still be there, but not reflected in the OS,  in /etc/hosts, or in DNS.</p>
<p>A bit of searching turns out a bunch of posts talking about editing  /etc/nodename to put in the system name, but that file doesn’t exist out  of the box on a “complete” or “minimal” install, and I’m always  hesitant to create new files by hand in /etc/ unless I’m 100% sure  that’s what’s needed.  According to <a href="http://forum.java.sun.com/thread.jspa?threadID=5073295&amp;messageID=9268470" target="_blank">this post on Sun.com</a>, some logic, and some testing, I think what’s going on is:</p>
<ol>
<li>Solaris expects DHCP to set the hostname of a system based on MAC address</li>
<li>In case DHCP does not set a hostname via MAC address, or if that  hostname is wrong, Solaris provides an override mechanism called  /etc/nodename</li>
<li>Because it’s an override, /etc/nodename is not created as a blank  file, since that could be construed as “override DHCP with nothing”</li>
<li>Therefore, every new box I build needs touching after final login</li>
</ol>
<p>I’m not a huge fan of this, but I’m also not a fan of the number of  times I need to click a mouse on an OS Install using software from the  last year.  The short version of all this is:</p>
<p>If you have a Solaris 10 box on DHCP named “unknown”, best practices is to set the hostname on the DHCP server.  Otherwise <code>echo newservername &gt; tee /etc/nodename</code> and reboot.  (with “tee” in the pipeline, you can “sudo” this command as well).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2008/06/18/solaris-10-and-dhcp-aka-but-i-know-this-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Disk Utilization, Pt. 2</title>
		<link>http://www.totalnetsolutions.net/2007/10/26/linux-disk-utilization-pt-2/</link>
		<comments>http://www.totalnetsolutions.net/2007/10/26/linux-disk-utilization-pt-2/#comments</comments>
		<pubDate>Sat, 27 Oct 2007 05:10:50 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/2007/10/26/linux-disk-utilization-pt-2/</guid>
		<description><![CDATA[Previously I mentioned some issues I had been having on Kubuntu Feisty Fawn with disk utilization seemingly caused by unflushed disk buffers. I alluded to believing that my laptop-mode.conf parameters were at fault. With my recent upgrade of that same laptop to Kubuntu Gutsy Gibbon, I kept the laptop-mode.conf file a bit closer to the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.totalnetsolutions.net/2007/10/05/linux-disk-utilization/" target="_blank">Previously</a> I mentioned some issues I had been having on Kubuntu Feisty Fawn with disk utilization seemingly caused by unflushed disk buffers. I alluded to believing that my laptop-mode.conf parameters were at fault.</p>
<p>With my recent upgrade of that same laptop to Kubuntu Gutsy Gibbon, I kept the laptop-mode.conf file a bit closer to the maintaners version. There are some changes to the dirty-writeback-centiseconds and the dirty-background-ratio values from what I posted, and my issue seems to have gone away. Ive been able to go back to running my Windows 2003 SBS server with a Centrify DirectControl lab environment and a RHEL 4 Oracle 10g server attached at the same time.</p>
<p>The configuration files that work MUCH better are attached here:</p>
<p><a href="http://www.totalnetsolutions.net/wp-content/uploads/2007/11/laptop-modeconf.txt" title="laptop-mode.conf">laptop-mode.conf</a></p>
<p><a href="http://www.totalnetsolutions.net/wp-content/uploads/2007/11/cpufreqdconf.txt" title="cpufreqd.conf">cpufreqd.conf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2007/10/26/linux-disk-utilization-pt-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To: Change a Domain Controller IP address: Multi-DCs</title>
		<link>http://www.totalnetsolutions.net/2007/10/08/how-to-change-a-domain-controller-ip-address-multi-dcs/</link>
		<comments>http://www.totalnetsolutions.net/2007/10/08/how-to-change-a-domain-controller-ip-address-multi-dcs/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 18:17:51 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[Domain Controllers]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/2007/10/08/how-to-change-a-domain-controller-ip-address-multi-dcs/</guid>
		<description><![CDATA[First, reference back to my first post on Domain Controller IP/Subnet changes. The nice thing about changing IP addresses on DCs in a larger environment, is that its actually easier. I have to keep this one quick for now, but will expand based on comments, which you all seem pretty good at leaving (and thank [...]]]></description>
			<content:encoded><![CDATA[<p>First, reference back to my <a href="http://www.totalnetsolutions.net/2007/07/29/how-to-change-a-domain-controller-ip-address/" target="_blank">first post</a> on Domain Controller IP/Subnet changes. The nice thing about changing IP addresses on DCs in a larger environment, is that its actually easier. I have to keep this one quick for now, but will expand based on comments, which you all seem pretty good at leaving (and thank you!). Please, PLEASE refer back to the first post &#8211; this one is only an expansion on that one.</p>
<ol>
<li>Same as before: why are you changing IPs? In larger environments, I do this because of a physical move of just one site. If the networking team doesnt have the new subnet up and routing, dont start!</li>
<li>Make sure the new site (if required) is set up in AD. If Im moving DCs from one physical location to another, I will build a new site, rather than re-using the old one, because the new site often has better connectivity, so the site link costs are changing.<span id="more-36"></span></li>
<li>Add the new IP to the DC youre moving (DC01 for this).  Same as before: dont remove the old one, just add the new.</li>
<li>On DC01, do the following to verify registration worked:<br />
<code>ipconfig /registerdns</code><br />
Wait a few minutes.<br />
<code>nslookup<br />
server DC01<br />
set type=A<br />
DC01.foobar.local<br />
foobar.local<br />
server DC02<br />
DC01.foobar.local<br />
foobar.local</code><br />
The answers from DC01 and DC02 should be the same, with possibly different orders. The important thing is that the new IP address and the old IP address show up for both queries on both servers.</li>
<li>Shut down DC01, pack it up and move it. (Or just plug it into the new network.)</li>
<li>Boot up, verify that DC01 has network connectivity, and that other systems can see that it has the new IP.</li>
<li>If you havent, make the new IP primary (change order in Network settings), make sure the DNS and WINS servers are correct and reachable (Remember that Windows 2003 DNS should point <a href="http://support.microsoft.com/kb/825036" onclick="javascript:urchinTracker ('/outgoing/support.microsoft.com/kb/825036');" target="_blank">to itself</a>).</li>
<li>Once verifying that AD is replicating across sites properly (up to 15 minutes in my experience), remove the old IP, <code>ipconfig /registerdns</code>, and reboot.</li>
<li>When it comes back up re-verify that AD is still replicating, and you should be set.</li>
</ol>
<p>I would point out that when doing a change this big to your environment, reviewing your AD replication, DNS forwarding, and WINS topology is a good idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2007/10/08/how-to-change-a-domain-controller-ip-address-multi-dcs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux disk utilization</title>
		<link>http://www.totalnetsolutions.net/2007/10/05/linux-disk-utilization/</link>
		<comments>http://www.totalnetsolutions.net/2007/10/05/linux-disk-utilization/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 06:46:13 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/2007/10/05/linux-disk-utilization/</guid>
		<description><![CDATA[On my Ubuntu Dell D620 laptop (which dual-boots into Windows XP occasionally), I run some pretty demanding software. Sometimes. As a systems architect, I spend a lot of time in standard Information Worker tools &#8211; email, office suite, web browser for white papers and product reviews. For me, OpenOffice.org, Evolution, and Firefox work great. I [...]]]></description>
			<content:encoded><![CDATA[<p>On my Ubuntu Dell D620 laptop (which dual-boots into Windows XP occasionally), I run some pretty demanding software. Sometimes. As a systems architect, I spend a lot of time in standard Information Worker tools &#8211; email, office suite, web browser for white papers and product reviews. For me, OpenOffice.org, Evolution, and Firefox work great. I even like Evolutions Exchange plugin better than Outlook &#8211; everything updates on my Windows Mobile phone just like Outlook, its faster than Outlook, and it threads my messages. I love message threading for all the reasons that it was invented.</p>
<p>However, because I mostly design Windows networks, I also run VMWare Workstation 6 with the following VMs: Windows XP Pro joined to primary domain (full workstation with Office 2003, Visio, Outlook (and EMC EmailExtender plugins), Windows Admin Pack, Resource Kit, SQL Enterprise Manager, and Exchange Admin Pack), Windows Vista Enterprise, Windows 2003 DC, Exchange, SQL server, Windows XP Pro joined to VM domain, RHEL 4, RHEL 5, and a Live-CD system that I often use to test bootable CDs. And a sysprepd Windows install.</p>
<p>All that, plus Evolution caching my email and Firefox being disk-happy (did you ever strace -p $(pgrep firefox) -e trace=open,close,read,write? Its busier than Evolution during an offline mail check!), means my 7200 RPM 160GB SATA disk gets hammered. Me also using laptop-mode-tools changing my vm.dirty_writeback_* settings and read/write cache isnt helping either, Im sure.</p>
<p><span id="more-35"></span>Today and yesterday I ran into an issue where my disk would begin a sync that would last 10-20 minutes, leaving me unable to work the entire time that was happening. Hunting down WHAT was causing this, however, was even more frusterating than it happening (If I shut down any of the 3 above-mentioned programs, the problem went away &#8211; it only happened with all 3 open). In Windows, you can open Task Manager, go to the Process tab, click View-&gt; Columns and add IO Write Bytes and IO Read Bytes and watch the numbers count up. Or you can use Perfmon and look at IO reads/writes/bytes per second or total, and know immediately whats causing all your disk IO pain. I still dont know how to do this in Linux.</p>
<p>First, any hunt for disk utilization and Linux on Google directs you to hundreds of sites, forums, and blogs evangelizing the wonders of df for disk utilization. Yes, its really nice to know how much free space I have on my hard drives- thats why I have SuperKaramba to tell me. But when a problem hits and leaves me unable to work, its useless.</p>
<p>iostat -k 1? is great &#8211; youll know immediately which disk is being used, and how hard. But on a laptop with a single disk, you already know.</p>
<p>top sorted by process-state will show you whats in waiting on IO state, but not whats CAUSING the IO thats causing everything else to wait.</p>
<p>sar seems to be the only tool that can provide per-process IO stats, but it has to be pre-set up to write to a log. And I cant begin to guess how well that will work when my disk is at 100% utilization (peaked at 120tps today).</p>
<p>So if anyone knows of any way to know whats causing disk IO in a right now fashion, please comment or email me. And if youre curious more about my problem:</p>
<ol>
<li>Only happens when VMWare (with a guest), firefox, and Evolution are all running.</li>
<li>VMWare with multiple guests runs fine, and never has this issue.</li>
<li><code>rauch@lt00-bofh:~$ free<br />
total       used       free     shared    buffers     cached<br />
Mem:       3348960    1099216    2249744          0      68668     533124<br />
-/+ buffers/cache:     497424    2851536<br />
Swap:      6000268          0    6000268</code></li>
<li>Happens with Laptop_mode disabled or enabled, on AC or on battery</li>
<li>sync causes the exact same symptoms, leading me to believe that somehow Im getting a LOT more dirty pages than my parameters are set at.</li>
<li><code>dirty_background_ratio<br />
1<br />
dirty_expire_centisecs<br />
60003<br />
dirty_ratio<br />
60<br />
dirty_writeback_centisecs<br />
60003</code></li>
<li>For now, I just close Firefox when I have VMWare open, which means I spend a lot more time in IE than I want to.</li>
</ol>
<p>As a final note, Ive updated my <a href="http://www.totalnetsolutions.net/2007/08/22/evdo-on-debian-ubuntu/" target="_blank">Linux EVDO post here</a> with my new built-in cards info.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2007/10/05/linux-disk-utilization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EVDO on Debian / Ubuntu</title>
		<link>http://www.totalnetsolutions.net/2007/08/22/evdo-on-debian-ubuntu/</link>
		<comments>http://www.totalnetsolutions.net/2007/08/22/evdo-on-debian-ubuntu/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 03:59:32 +0000</pubDate>
		<dc:creator>Robert</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.totalnetsolutions.net/2007/08/22/evdo-on-debian-ubuntu/</guid>
		<description><![CDATA[Ive used this configuration, with minor tweaks on 3 different laptops, with 3 different OSes (if not 4) with great success. Theres so little good Linux info on evdoforums.com (at least I have a hard time finding it), and the posts I made link to a site thats non-existant now, so I realized I had [...]]]></description>
			<content:encoded><![CDATA[<p>Ive used this configuration, with minor tweaks on 3 different laptops, with 3 different OSes (if not 4) with great success. Theres so little good Linux info on evdoforums.com (at least I have a hard time finding it), and the posts I made link to a site thats non-existant now, so I realized I had to repost this info. Ive had both the Merlin S620 Sprint PCS EVDO card, and the Sierra Mobile AirCard 575, and now have a Dell built-in EVDO modem.</p>
<p>For all 3 of them, the only difference was the modprobe line, for vendor and product ID, as noted below.<br />
Merlin S620:<br />
<code>modprobe usbserial vendor=0x1410 product=0x1110</code><br />
Sierra 575:<br />
<code>modprobe usbserial vendor=0x1199 product=0x0019</code><br />
Dell Sprint 5720 PCI-Express Modem<br />
<code>modprobe usbserial vendor=0x413c product=0x8134</code></p>
<p>I saved the appropriate PPP files at /etc/ppp/peers/1xevdo and at /etc/chatscripts/1xevdo_chat. In this post, Ive blanked out the parts that are particular to my install (phone number), but it should be pretty easy to recreate your settings.</p>
<p>/etc/ppp/peers/1xevdo:<br />
<code><br />
-detach<br />
ttyUSB0<br />
115200<br />
debug<br />
noauth<br />
defaultroute<br />
usepeerdns<br />
user $(full-phone-number)@sprintpcs.com<br />
show-password<br />
crtscts<br />
lock<br />
lcp-echo-failure 4<br />
lcp-echo-interval 65535<br />
connect '/usr/sbin/chat -v -t3 -f /etc/chatscripts/1xevdo_chat'<br />
</code><br />
/etc/chatscripts/1xevdo_chat:<br />
<code><br />
'' 'AT'<br />
'OK' 'ATZ'<br />
'OK' 'ATE0V1&amp;F&amp;D2&amp;C1&amp;C2S0=0'<br />
'OK' 'ATE0V1'<br />
'OK' 'ATS7=60'<br />
'OK' 'ATDT#777'<br />
CONNECT CLIENT<br />
</code></p>
<p>Since I do several bits of work through the console, including accessing my Cisco VPN, and in some cases naim and tmsnc (console AOL and MSN chat) inside a screen session, scripts for these setups work great for me. I wrapped the whole thing up inside a bash script called $HOME/bin/evdo.sh &#8211; and I just call that when I want to get online, after inserting the card.<br />
~/bin/evdo.sh:<br />
<code><br />
sudo /sbin/modprobe usbserial vendor=0x1199 product=0x0019<br />
sleep 5<br />
sudo /usr/sbin/pppd call 1xevdo<br />
</code></p>
<p>The <code>sleep</code> statement helps make sure that the modprobe has completed, scanned the device, and settled before calling PPP.</p>
<p>My Dell D620 arrived, and I was able to quickly determine the changes for an always there card, vs. a pluggable PCMCIA card.<br />
First I created /etc/modprobe.d/usbserial with the line:<br />
<code>options usbserial vendor=0x413c product=0x8134</code><br />
and added usbserial to the end of /etc/modules so that the card would always come up at boot (<code>sudo lspci -v | less</code> to find the exact product ID and vendor &#8211; I only have 2 Dell devices on my laptop). I set my radio kill switch to affect only my EVDO and bluetooth radios, letting the software (~/bin/rfkill.sh in Linux and the Dell software in Windows) handle the WiFi &#8211; I use WiFi all the time, but only want the battery-draining EVDO in a few specific instances. So I added cat 0 &gt; /sys/bus/pci/devices/0000\:03\:00.0\rf_kill to my evdo.sh file to kill the wireless when I wanted to use EVDO &#8211; no need to ever have them both on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.totalnetsolutions.net/2007/08/22/evdo-on-debian-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

