<?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>intuitive engineering &#187; Solaris</title>
	<atom:link href="http://dougmunsinger.com/category/solaris/feed" rel="self" type="application/rss+xml" />
	<link>http://dougmunsinger.com</link>
	<description>doug munsinger</description>
	<lastBuildDate>Fri, 13 Jan 2012 17:08:59 +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>another tool for SVN &#8211; list_repositories.pl</title>
		<link>http://dougmunsinger.com/2009/05/subversion-cg-tool-list-repositories.html</link>
		<comments>http://dougmunsinger.com/2009/05/subversion-cg-tool-list-repositories.html#comments</comments>
		<pubDate>Mon, 11 May 2009 15:28:14 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[apache2]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[move2]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[websphere]]></category>
		<category><![CDATA[CGI.pm]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=762</guid>
		<description><![CDATA[&#160; &#160; One of the features of subversion + apache2 is the ability to list repositories &#8211; natively.&#160; SVNParentPath /apps/repos SVNListParentPath on Unfortunately, once you restrict the httpd.conf to individual repositories and start handling permissions separately you lose that.&#160; Both of these permissions, set at the top level, at the parent path to the repositories, [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p>One of the features of subversion + apache2 is the ability to list repositories &#8211; natively.&nbsp;</p>
<p>SVNParentPath /apps/repos<br />
SVNListParentPath on</p>
<p>Unfortunately, once you restrict the httpd.conf to individual repositories and start handling permissions separately you lose that.&nbsp; Both of these permissions, set at the top level, at the parent path to the repositories, have to be commented out to have the individual permissions on the directories below take effect.</p>
<p>And listing just the repositories wasn&#8217;t enough for what I had in mind &#8211; I wanted a read-only table showing an individual developer or a team lead for a project who has what permissions for the subversion repositories. All the users, all the repositories.</p>
<p>Just your basic cgi.</p>
<p>&nbsp;</p>
<p><a href="http://dougmunsinger.com/images/posts/2009/repos_1.png" rel="shadowbox[sbpost-762];player=img;" title="repository listing cgi"><img src="http://dougmunsinger.com/images/posts/2009/repos_1_420.png" title="repos" alt="repos" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;and the script:</p>
<p><a href="http://dougmunsinger.com/images/posts/2009/list_repositories.pl.txt" title="list_repositories.pl"><br />
</a><code>#! /bin/perl -w</p>
<p>
# script to parse and display users and repositories and rights (R, RW)</p>
<p>use strict;<br />
use CGI qw(:standard);<br />
use CGI::Carp qw(fatalsToBrowser);</p>
<p>
##----------------------------<br />
## Variables<br />
##----------------------------</p>
<p>
#debug<br />
my $debug = 0; #set to 0 to turn off, 1 (true) to turn on </p>
<p># title for page<br />
my $PageTitle = &quot;List of SVN Repositories&quot;;</p>
<p>## repository directory<br />
my $SVN = &quot;/apps/repos&quot;;<br />
## location for htpasswd files<br />
my $HTDIR = &quot;/apps/apache2/conf/htpasswd&quot;;<br />
## Set untainted path<br />
$ENV{PATH} = '/apps/apache2/bin:/bin:/usr/bin:/usr/local/bin';<br />
$ENV{IFS} = &quot;&quot; if $ENV{IFS} ne &quot;&quot;;</p>
<p># css <br />
my $css = &quot;http://&lt;your server name&gt;/css/main.css&quot;;<br />
my $headerimg = &quot;http://&lt;your server name&gt;/css/roger_rabbit_120.jpg&quot;;</p>
<p>
##------------------------------<br />
## MAIN<br />
##------------------------------</p>
<p>&amp;standard_header;<br />
my ($ref_repos, $ref_tabledata, $ref_users) = &amp;CreateTableSpace;<br />
&amp;DisplayTable ($ref_repos, $ref_tabledata, $ref_users);<br />
&amp;standard_footer;<br />
exit;</p>
<p>##------------------------------<br />
## subs<br />
##------------------------------</p>
<p>sub standard_header {<br />
&nbsp;&nbsp;&nbsp; print header();<br />
&nbsp;&nbsp;&nbsp; print start_html(-Title =&gt; &quot;$PageTitle&quot;, -BGCOLOR=&gt;&quot;White&quot;, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -style =&gt; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -src =&gt; &quot;${css}&quot;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; );<br />
&nbsp;&nbsp;&nbsp; print (&quot;&lt;div id=\&quot;header\&quot;&gt;\n&quot;);<br />
&nbsp;&nbsp;&nbsp; print p(&quot;&lt;img src=\&quot;${headerimg}\&quot; title=\&quot;Wells logo\&quot; alt=\&quot;wells logo\&quot;/&gt;\n&quot;);<br />
&nbsp;&nbsp;&nbsp; print (&quot;&lt;/div&gt;\n&quot;);<br />
&nbsp;&nbsp;&nbsp; print (&quot;&lt;div id=\&quot;headertitle\&quot;&gt;\n&quot;);<br />
&nbsp;&nbsp;&nbsp; print h3(&quot;Repositories&lt;br/&gt;\nusers | read (R) | read &amp; write (RW)\n&quot;); # start_multipart_form() if file upload<br />
}</p>
<p>
sub standard_footer { <br />
&nbsp;&nbsp;&nbsp; print end_html(); <br />
}</p>
<p>
sub CreateTableSpace {<br />
&nbsp;&nbsp;&nbsp; my $ref_repos = &amp;GetBlankRepos;<br />
&nbsp;&nbsp;&nbsp; my @repos = @$ref_repos; # dereference<br />
&nbsp;&nbsp;&nbsp; my %tabledata = (); # hash to hold table data<br />
&nbsp;&nbsp;&nbsp; my @users = (); # list of users<br />
&nbsp;&nbsp;&nbsp; my %seen = (); <br />
&nbsp;&nbsp;&nbsp; foreach my $rep (@repos) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open(FILE, &quot;$HTDIR/${rep}_read&quot;) || croak &quot;Failed to open $HTDIR/${rep}_read for reading...&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my @filelines = &lt;FILE&gt;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; close FILE;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach my $line (@filelines) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # lines are user:passwd<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my ($user, $pass) = split (&quot;:&quot;, $line);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unless ($seen{$user}) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $seen{$user} = 1; # save as seen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push (@users, $user); # save the user to a list<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $tabledata{$rep}{$user} = &quot;read&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open (FILE, &quot;$HTDIR/${rep}_write&quot;) || croak &quot;Failed to open $HTDIR/${rep}_write for reading&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my @file_lines = &lt;FILE&gt;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; close FILE;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach my $line (@file_lines) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # lines are user:passwd<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; my ($user, $pass) = split (&quot;:&quot;, $line);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unless ($seen{$user}) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $seen{$user} = 1; # save as seen<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push (@users, $user); # save the user to a list<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $tabledata{$rep}{$user} = &quot;readwrite&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return (\@repos, \%tabledata, \@users);<br />
}</p>
<p>
sub GetBlankRepos {<br />
&nbsp;&nbsp;&nbsp; my @repos = ();<br />
&nbsp;&nbsp;&nbsp; # list $SVN<br />
&nbsp;&nbsp;&nbsp; opendir (DIR, $SVN) || croak &quot;Failed to open directory $SVN for reading...&quot;;<br />
&nbsp;&nbsp;&nbsp; while (defined(my $file = readdir(DIR))) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # skip &quot;.&quot;, &quot;..&quot; and .&lt;hidden&gt; files...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($file =~ /^\./) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; next;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; push(@repos, $file);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return (\@repos);<br />
}</p>
<p>sub DisplayTable {<br />
&nbsp;&nbsp;&nbsp; my $ref_repos = shift;&nbsp; #@repos<br />
&nbsp;&nbsp;&nbsp; my $ref_tabledata = shift; # %tabledata<br />
&nbsp;&nbsp;&nbsp; my $ref_users = shift; # @users<br />
&nbsp;&nbsp;&nbsp; # dereference<br />
&nbsp;&nbsp;&nbsp; my @repos = @$ref_repos;<br />
&nbsp;&nbsp;&nbsp; my %tabledata = %$ref_tabledata;<br />
&nbsp;&nbsp;&nbsp; my @users = @$ref_users;<br />
&nbsp;&nbsp;&nbsp; # repos across the top, users down, R or RW for permissions<br />
&nbsp;&nbsp;&nbsp; # $tabledata{$rep}{$user} = &quot;readwrite&quot;;<br />
&nbsp;&nbsp;&nbsp; # start table<br />
&nbsp;&nbsp;&nbsp; print (&quot;&lt;table&gt;\n&lt;tbody&gt;\n&quot;);<br />
&nbsp;&nbsp;&nbsp; # table header<br />
&nbsp;&nbsp;&nbsp; my $cols = ($#repos + 1);<br />
&nbsp;&nbsp;&nbsp; print (&quot;&lt;tr&gt;&lt;td&gt;Users&lt;/td&gt;&lt;td colspan=\&quot;$cols\&quot;&gt;Repositories&lt;/td&gt;&lt;/tr&gt;\n&quot;);<br />
&nbsp;&nbsp;&nbsp; print (&quot;&lt;div id=\&quot;repotitles\&quot;&gt;&lt;tr&gt;\n&lt;td&gt;&amp;nbsp;&lt;/td&gt;&quot;);<br />
&nbsp;&nbsp;&nbsp; foreach my $rep (@repos) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print (&quot;&lt;td&gt;$rep&lt;/td&gt;&quot;);<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; print (&quot;\n&lt;/tr&gt;\n&lt;/div&gt;\n&quot;);<br />
&nbsp;&nbsp;&nbsp; foreach my $user (@users) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print (&quot;&lt;tr&gt;\n&lt;td&gt;$user&lt;/td&gt;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach my $repo (@repos) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($tabledata{$repo}{$user}) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($tabledata{$repo}{$user} eq &quot;read&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print (&quot;&lt;td&gt;R&lt;/td&gt;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } elsif ($tabledata{$repo}{$user} eq &quot;readwrite&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print (&quot;&lt;td&gt;RW&lt;/td&gt;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print (&quot;&lt;td&gt;&amp;nbsp; - &amp;nbsp;&lt;/td&gt;&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print (&quot;\n&lt;/tr&gt;\n&quot;);<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; # finish table<br />
&nbsp;&nbsp;&nbsp; print (&quot;&lt;/tbody&gt;\n&lt;/table&gt;\n&quot;);<br />
}</code></p>
<div class="addtothis"><p>
				<table cellspacing="0" cellpadding="0" border="0" style="width: 180px; height: 30px; text-align: left; margin-left: 0px; ">
				<tbody>
				<tr>
				<td style="text-align: center;">
				<a href="http://www.stumbleupon.com/submit?url=http://dougmunsinger.com/2009/05/subversion-cg-tool-list-repositories.html&title=another tool for SVN &#8211; list_repositories.pl" rel="nofollow">
                                <img src="http://dougmunsinger.com/wp-content/plugins/addtothis/stumble.png" title="Add to Stumble Upon" alt="Stumble It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://del.icio.us/post?url=http://dougmunsinger.com/2009/05/subversion-cg-tool-list-repositories.html&title=another tool for SVN &#8211; list_repositories.pl" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/delicious.png" title="Add to Del.icio.us" alt="Add to Del.cio.us" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://technorati.com/faves?add=http://dougmunsinger.com/2009/05/subversion-cg-tool-list-repositories.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/technorati.png" title="Add to Technorati" alt="Add to Technorati Favorites" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://digg.com/submit?phase=2&url=http://dougmunsinger.com/2009/05/subversion-cg-tool-list-repositories.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/digg.png" title="Add to Digg" alt="Digg It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://dougmunsinger.com/feed/rss" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/feeds.png" title="Add Feed to Bookmarks" alt="RSS Feed" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				</tr>
				</tbody>
				</table>

                
		
				</p></div>]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/2009/05/subversion-cg-tool-list-repositories.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eclipsed</title>
		<link>http://dougmunsinger.com/2009/03/eclipsed.html</link>
		<comments>http://dougmunsinger.com/2009/03/eclipsed.html#comments</comments>
		<pubDate>Sun, 29 Mar 2009 15:37:31 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[move2]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[UNIX & Windows]]></category>
		<category><![CDATA[RSE]]></category>
		<category><![CDATA[UNIX]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=634</guid>
		<description><![CDATA[&#160; &#160; &#160; I&#8217;ve been working with Remote System Explorer (RSE), a terminal and ssh session manager that runs in the Eclipse SDK. This is very cool &#8211; the thing is, eclipse runs on Solaris, Linux, Windows, MAC OSX, IBM AIX (of course &#8211; IBM created the eclipse framework). It as close to an OS-agnostic [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img src="../../../images/posts/2009/eclipse.png" title="eclipse splash" alt="eclipse splash"/></p>
<p>&nbsp;</p>
<p>I&#8217;ve been working with <a href="http://www.eclipse.org/dsdp/tm" title="RSE">Remote System Explorer (RSE)</a>, a terminal and ssh session manager that runs in the <a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.4.2-200902111700/index.php" title="Eclipse SDK">Eclipse SDK</a>.  This is very cool &#8211; the thing is, eclipse runs on Solaris, Linux, Windows, MAC OSX, IBM AIX (of course &#8211; IBM created the eclipse framework).   It as close to an OS-agnostic framework as anything I&#8217;ve ever experienced. </p>
<p>I had primarily intended to use it on windows to add ssh terminal capacity &#8211; replacing console2 and cygwin &#8211; to connect to UNIX servers.  But the interface is so good, I find I&#8217;m using it on both UNIX and windows &#8211; the konsole terminal is better in some ways at history and at cut-and-paste using mouse buttons directly.  So far the context menu from a right-click is the only cut-and-paste that functions within the terminal windows themselves. </p>
<p>On the other hand &#8211; in konsole each separate terminal window is a separate authentication &#8211; password-response &#8211; whereas in eclipse RSE, one authentication can be kept and spawn as many terminal sessions as needed.  The organization is better.  You can close the terminal sessions down, and leave a connection still intact.  Then bring back terminal sessions as needed.  That ability alone makes it worth losing the double-click select and middle-button paste from konsole sessions.  I&#8217;m not yet convinced I can&#8217;t find a way to get that working either, that and an unlimited history or at least 10000 lines&#8230;</p>
<p>&nbsp;</p>
<p><a href="../../../images/posts/2009/eclipse_4.png" title=eclipse window" rel="lightbox"><img src="../../../images/posts/2009/eclipse_4_300.png" title=eclipse window" alt="eclipse window"/></a></p>
<p>&nbsp;</p>
<p>If I can get that back somehow in the terminal sessions it will be not just slightly better, but a huge amount better than any other session management I&#8217;ve used. </p>
<h2>Install</h2>
<p>You need <a href="http://java.sun.com/javaee/downloads/index.jsp" title="java">java</a>.  On windows that can be an issue.  On UNIX, not so much, pretty much there by default.</p>
<p>Download <a href="http://www.eclipse.org/downloads/download.php?file=/dsdp/tm/downloads/drops/R-3.0.3-200902181300/RSE-SDK-3.0.3.zip" title="RSE">RSE</a> and <a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.4.2-200902111700/index.php" title="eclipse SDK 3.4.2">eclipse SDK</a>.  </p>
<p>Untar or unzip the eclipse package. In windows I unzip to c:\eclipse_3.4.2.  In UNIX /usr/local/eclipse.   </p>
<p>Unzip the RSE package layered over the eclipse install. </p>
<p>In windows I point a shortcut to c:\eclipse_3.4.2.  In UNIX I move /usr/local/eclipse to /usr/local/eclipse_3.4.2, and create a symbolic link /usr/local/eclipse -> /usr/local/eclipse_3.4.2.  </p>
<p>Open eclipse.  Go to window -> open perspective -> other and open Remote System Explorer. </p>
<p>&nbsp;</p>
<p><a href="../../../images/posts/2009/eclipse_1.png" title=eclipse window" rel="lightbox"><img src="../../../images/posts/2009/eclipse_1_300.png" title=eclipse window" alt="eclipse window"/></a></p>
<p>&nbsp;</p>
<p>Configurations are stored in the workspace folder.  Right-click in the left-hand pane and select &#8220;New Connection to create connections.  Within eclipse you can add software respositories and update and add software from Help -> Software Updates. </p>
<p>&nbsp;</p>
<p><a href="../../../images/posts/2009/eclipse_2.png" title=eclipse window" rel="lightbox"><img src="../../../images/posts/2009/eclipse_2_300.png" title=eclipse window" alt="eclipse window"/></a></p>
<p><a href="../../../images/posts/2009/eclipse_3.png" title=eclipse window" rel="lightbox"><img src="../../../images/posts/2009/eclipse_3_300.png" title=eclipse window" alt="eclipse window"/></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&mdash; doug</p>
<p>&nbsp;</p>
<div class="addtothis"><p>
				<table cellspacing="0" cellpadding="0" border="0" style="width: 180px; height: 30px; text-align: left; margin-left: 0px; ">
				<tbody>
				<tr>
				<td style="text-align: center;">
				<a href="http://www.stumbleupon.com/submit?url=http://dougmunsinger.com/2009/03/eclipsed.html&title=eclipsed" rel="nofollow">
                                <img src="http://dougmunsinger.com/wp-content/plugins/addtothis/stumble.png" title="Add to Stumble Upon" alt="Stumble It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://del.icio.us/post?url=http://dougmunsinger.com/2009/03/eclipsed.html&title=eclipsed" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/delicious.png" title="Add to Del.icio.us" alt="Add to Del.cio.us" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://technorati.com/faves?add=http://dougmunsinger.com/2009/03/eclipsed.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/technorati.png" title="Add to Technorati" alt="Add to Technorati Favorites" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://digg.com/submit?phase=2&url=http://dougmunsinger.com/2009/03/eclipsed.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/digg.png" title="Add to Digg" alt="Digg It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://dougmunsinger.com/feed/rss" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/feeds.png" title="Add Feed to Bookmarks" alt="RSS Feed" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				</tr>
				</tbody>
				</table>

                
		
				</p></div>]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/2009/03/eclipsed.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ports and processes in Solaris</title>
		<link>http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html</link>
		<comments>http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html#comments</comments>
		<pubDate>Thu, 25 Sep 2008 01:45:42 +0000</pubDate>
		<dc:creator>doug</dc:creator>
				<category><![CDATA[move4]]></category>
		<category><![CDATA[move7]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[UNIX]]></category>

		<guid isPermaLink="false">http://dougmunsinger.com/?p=519</guid>
		<description><![CDATA[&#160; In Linux, &#8220;netstat -apn&#8221; will list processes versus ports bound to: dsm@dali:~$ netstat -apn (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>In Linux, &#8220;netstat -apn&#8221; will list processes versus ports bound to:</p>
<p><code><br />
dsm@dali:~$ netstat -apn<br />
(Not all processes could be identified, non-owned process info<br />
 will not be shown, you would have to be root to see it all.)<br />
Active Internet connections (servers and established)<br />
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name<br />
tcp        0      0 0.0.0.0:24800           0.0.0.0:*               LISTEN      9353/synergys<br />
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -<br />
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      -<br />
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -<br />
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      -<br />
tcp        0      0 172.17.8.76:43003       172.19.235.82:22        ESTABLISHED 4305/ssh<br />
tcp        0      0 172.17.8.76:32852       198.200.144.106:22      ESTABLISHED 13523/ssh<br />
tcp        0      0 172.17.8.76:44173       198.200.144.106:22      ESTABLISHED 13546/ssh<br />
tcp        0      0 172.17.8.76:53463       172.17.85.49:22         ESTABLISHED 28801/ssh<br />
tcp        0      0 172.17.8.76:57385       172.19.230.85:22        ESTABLISHED 5208/ssh<br />
</code></p>
<p>If you want to see, say, all the ssh processes:  </p>
<p><code><br />
dsm@dali:~$ netstat -apn | grep ssh<br />
tcp        0      0 172.17.8.76:43003       172.19.235.82:22        ESTABLISHED 4305/ssh<br />
tcp        0      0 172.17.8.76:32852       198.200.144.106:22      ESTABLISHED 13523/ssh<br />
tcp        0      0 172.17.8.76:44173       198.200.144.106:22      ESTABLISHED 13546/ssh<br />
tcp        0      0 172.17.8.76:53463       172.17.85.49:22         ESTABLISHED 28801/ssh<br />
tcp        0      0 172.17.8.76:57385       172.19.230.85:22        ESTABLISHED 5208/ssh<br />
tcp        0      0 172.17.8.76:58116       172.19.220.114:22       ESTABLISHED 5459/ssh<br />
etc...<br />
</code></p>
<p>On Solaris&#8230;   On SUN&#8217;s Solaris there isn&#8217;t an easy way to accomplish the same.  On a normal non-containerized server you can run netstat and then lsof&#8230;</p>
<p>Assume that you know there is a process conflict – some process has already bound to a port 8083.  Your process fails because it can’t bind to the port it needs, that port is already in use &#8211; somewhere. </p>
<p>netstat –an | grep 8083 gives you:</p>
<p><code>[dsm@sun1 bin] $ netstat -an | grep 8083<br />
198.200.144.14.8083        *.*                0      0 49152      0 LISTEN<br />
198.200.144.30.8083        *.*                0      0 49152      0 LISTEN<br />
198.200.144.17.8083        *.*                0      0 49152      0 LISTEN<br />
      *.8083                         *.*                0      0 49152      0 LISTEN<br />
198.200.144.90.8083        *.*                0      0 49152      0 LISTEN<br />
198.200.144.10.8083        *.*                0      0 49152      0 LISTEN<br />
</code></p>
<p>The *.8083 is our problem child, but we don’t have which process is bound to that port yet. </p>
<p><code><br />
[dsm@sun1 bin] $ lsof -i:8083<br />
COMMAND   PID     USER   FD   TYPE        DEVICE SIZE/OFF NODE NAME<br />
java     1548  jb-1   18u  IPv4 0x3005df7be68      0t0  TCP s1q:8083 (LISTEN)<br />
java     6903 appadmin    5u  IPv4 0x30070580ae8      0t0  TCP *:8083 (LISTEN)<br />
java     7497   jb-2    9u  IPv4 0x300099344d0      0t0  TCP webq1:8083 (LISTEN)<br />
java     7989  jb-3    9u  IPv4 0x32af1cd79a8      0t0  TCP ntumq1:8083 (LISTEN)<br />
java     9445  jb-ty    9u  IPv4 0x30009925e30      0t0  TCP tyq1:8083 (LISTEN)<br />
java    16369  jb-jun    9u  IPv4 0x3007b9a21f0      0t0  TCP rjq1:8083 (LISTEN)<br />
[dsm@sun1 bin] $<br />
</code></p>
<p>Process id 6903 if the villian of this piece in this case.  </p>
<p>And this works on servers, but not within containerized servers&#8230; On a container you get:</p>
<p><code><br />
$ lsof -i :8083<br />
lsof: can't stat(/devices): No such file or directory<br />
</code></p>
<p>Basically, a zone within a Solaris10 global zone doesn&#8217;t have a /devices directory; so you can&#8217;t ! You have to do this from the global zone &#8211; not ideal <img src='http://dougmunsinger.com/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' />  </p>
<p>&nbsp;</p>
<p>&mdash; dsm</p>
<p>&nbsp;</p>
<div class="addtothis"><p>
				<table cellspacing="0" cellpadding="0" border="0" style="width: 180px; height: 30px; text-align: left; margin-left: 0px; ">
				<tbody>
				<tr>
				<td style="text-align: center;">
				<a href="http://www.stumbleupon.com/submit?url=http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html&title=ports and processes in Solaris" rel="nofollow">
                                <img src="http://dougmunsinger.com/wp-content/plugins/addtothis/stumble.png" title="Add to Stumble Upon" alt="Stumble It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://del.icio.us/post?url=http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html&title=ports and processes in Solaris" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/delicious.png" title="Add to Del.icio.us" alt="Add to Del.cio.us" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://technorati.com/faves?add=http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/technorati.png" title="Add to Technorati" alt="Add to Technorati Favorites" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://digg.com/submit?phase=2&url=http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/digg.png" title="Add to Digg" alt="Digg It!" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				<td style="text-align: center;">
				<a href="http://dougmunsinger.com/feed/rss" rel="nofollow">
				<img src="http://dougmunsinger.com/wp-content/plugins/addtothis/feeds.png" title="Add Feed to Bookmarks" alt="RSS Feed" style="border: 0px solid ; width: 28px; height: 28px;"/>
				</a>
				</td>
				</tr>
				</tbody>
				</table>

                
		
				</p></div>]]></content:encoded>
			<wfw:commentRss>http://dougmunsinger.com/2008/09/ports-and-processes-in-solaris.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

