<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.2.1" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Technology. People. Projects....Results.</title>
	<link>http://tridenta.com/blog</link>
	<description>Tridenta Founders Blog</description>
	<pubDate>Tue, 14 Aug 2007 23:19:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/tridenta" type="application/rss+xml" /><feedburner:emailServiceId>1041863</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
		<title>Are Technology Consulting firms losing focus?</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/144187914/</link>
		<comments>http://tridenta.com/blog/2007/08/14/are-technology-consulting-firms-loosing-focus/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 22:51:59 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[People]]></category>

	<!-- AutoMeta Start -->
	<category>my</category>
	<category>collegues</category>
	<category>employed</category>
	<category>a</category>
	<category>conversation</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/14/are-technology-consulting-firms-loosing-focus/</guid>
		<description><![CDATA[I recently had a series of conversations with one of my colleague&#8217;s employed with a competing consulting firm. He is in a senior management position and is directly responsible for the success of the engagement. 
I will not divulge the customer nor consulting firm to protect the innocent. What I will say about the customer is that they are a major government [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had a series of conversations with one of my colleague&#8217;s employed with a competing consulting firm. He is in a senior management position and is directly responsible for the success of the engagement. </p>
<p>I will not divulge the customer nor consulting firm to protect the innocent. What I will say about the customer is that they are a major government contract for one of the large global consulting firms based in Dallas. This is not a small account and is a major source of income.</p>
<p>This Government entity has contracted my colleague&#8217;s firm to provide operations support, applications support and a service desk, on-site, in multiple locations. This a multi-year, multi-million dollar, time and materials contract that employs more than 200 bodies spread across the US.</p>
<p>Suffice it to say that this is an important client.</p>
<p>To give a little more incite into the client; this agency and it&#8217;s subsidiaries are in the middle of an ITIL service desk architecture implementation. The project is nearing completion and the final phase is nearing close-out. The service desk is in the middle of a pilot program to verify the new help desk software functionality. The project management staff is finalizing the work instructions, operations manual and operations aids. The environment is busy to say the least and in addition to all of the day to day operations duties,  SLA&#8217;s must be met, applications serviced, incidents and problems resolved and assessed. All staff are running at about 60% of capacity.</p>
<p>Now for the problem.</p>
<p>It seems in the midst of all of the day to day operations and handling of this customer&#8217;s business, the consulting staff has complained about a percieved increase in customer call volume. Each of the operations centers has their own &#8220;main&#8221; internal number that is staffed 24&#215;7 by operations support personnel. This makes operational sense due to the fact that different applications are in production at different locations with the other sites acting as DR sites. The operations staff at these locations feel that the customer is getting in the way of their work and petitioned management to make a drastic change.</p>
<p>The consulting firm&#8217;s solution was to centralize these individual operations centers phone numbers and route all calls through a single point of contact. This centralization in and of itself, is not a bad idea and actually moves them further towards a true ITIL environment. The problem is this; rather than transferring customer calls to the individual requested, the service desk is required to enter a task and assign it to the individual or group that can help resolve the task. These tasks are outside of the scope of incidents and problems and typically require copying files, removing files, creating directories or even the simple task of having a call returned. The service desk has been directed not to share the direct numbers of the consulting firm&#8217;s on-site staff and further more there is no system in place to identify or facilitate urgent tasks versus standard. The customer who once called their contacts directly are now being required to call the central number to be queued with all tasks assigned to the individuals and or groups.</p>
<p>Now, I know some of you are saying this doesn&#8217;t sound unreasonable but here is a simpler way to look at it. The consulting firm&#8217;s answer to problems with their clients was centralizing  task assignment while decentralizing service and individual attention&#8230;</p>
<p>The really shocking part is that the customer was neither consulted or notified prior to the change. The consulting firm&#8217;s response to their internal staff complaints was not to facilitate a meeting with the customer or communicate in any way for that matter with the customer&#8230;.They did not attempt to gather any data to validate the concerns of the staff. The solution was simply snuck in after hours one night.  Imagine the customer&#8217;s shock and surprise the next morning when they could not reach the contact that they intended, they would now have to input a task to have their call returned and that the decision had been made without them. When I asked my colleague why the customer was not consulted, his answer was simply they they did not think that it was important. He felt that as they were contracted to fulfill certain obligations, it was in his right to manage the engagement as he saw fit within profit guidelines and saw no need to include the customer. </p>
<p>As one could imagine, the customer&#8217;s response was not entirely favorable. What should have been an opportunity for open communication, value added service and problem solving has now degraded into a lack of trust and faith in their consulting company. This company has had this contract now for over 4 years but I believe they will have to really change their focus in order to keep the client much longer.</p>
<p>Consulting firms large or small, live and die by the customer. If the customer did not exist neither would we. Whether you are on-site or off-site, your consultants represent the interests of your company but first and foremost should service the customer.</p>
<p>Every decision should be evaluated to determine how it will impact the customer and their business first. It&#8217;s a simple rule and one that is often forgotten. I am of the opinion that the industry in general is loosing focus and this tiny piece of a larger puzzle illustrates this point.</p>
<p>The customer is the focus of our business.</p>
<p>How do your consultants/staff run your business? </p>
<p>  </p>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/14/are-technology-consulting-firms-loosing-focus/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/14/are-technology-consulting-firms-loosing-focus/</feedburner:origLink></item>
		<item>
		<title>Life outside the “Iron Triangle”</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/142095349/</link>
		<comments>http://tridenta.com/blog/2007/08/08/life-outside-the-%e2%80%9ciron-triangle%e2%80%9d/#comments</comments>
		<pubDate>Wed, 08 Aug 2007 19:17:31 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[Project Management]]></category>

	<!-- AutoMeta Start -->
	<category>boundaries</category>
	<category>long</category>
	<category>dictated</category>
	<category>“classic”</category>
	<category>project</category>
	<category>management</category>
	<category>theory</category>
	<category>and</category>
	<category>practice in</category>
	<category>classic</category>
	<category>recommend</category>
	<category>the</category>
	<category>project</category>
	<category>manager</category>
	<category>approaches</category>
	<category>management</category>
	<category>seeking</category>
	<category>additional</category>
	<category>decision</category>
	<category>the</category>
	<category>project</category>
	<category>manager</category>
	<category>involved</category>
	<category>distinct</category>
	<category>project</category>
	<category>manager</category>
	<category>role</category>
	<category>schedule</category>
	<category>and</category>
	<category>cost §</category>
	<category />
	<category />
	<category />
	<category />
	<category />
	<category />
	<category />
	<category />
	<category>external</category>
	<category>uncertainty</category>
	<category>includes</category>
	<category>run</category>
	<category>the</category>
	<category>project</category>
	<category>and</category>
	<category>a</category>
	<category>distinct</category>
	<category>management</category>
	<category>role</category>
	<category>the</category>
	<category>project</category>
	<category>sponsor</category>
	<category>the</category>
	<category>sponsor</category>
	<category>removed</category>
	<category>the</category>
	<category>decision making</category>
	<category>process</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/08/life-outside-the-%e2%80%9ciron-triangle%e2%80%9d/</guid>
		<description><![CDATA[Scope, Resources and Schedule. These boundaries are often referred to as triple constraint or the iron triangle. These boundaries have long dictated &#8220;classic&#8221; project management theory and practice.
In classic PM, projects are treated as distinct entities within the business. They have a scope, resources,  schedule and are self-contained. The Project Manager must perform within [...]]]></description>
			<content:encoded><![CDATA[<p>Scope, Resources and Schedule. These boundaries are often referred to as triple constraint or the iron triangle. These boundaries have long dictated &#8220;classic&#8221; project management theory and practice.</p>
<p>In classic PM, projects are treated as distinct entities within the business. They have a scope, resources,  schedule and are self-contained. The Project Manager must perform within these boundaries to deliver the expected results. Any decisions that require changing one of these boundaries must come from outside of the project. These decisions typically involve functional or executive management.</p>
<p>If something unexpected happens that requires changing one of the boundaries; the Project Manager collects the relevant information and brings the issue to the Project Sponsor. The sponsor, in turn, listens to the situation and takes the recommendations of the Project Manager under advisement. Before making a decision, the sponsor may consider other information, confer with peers, or escalate to the next level of management. This entire data collection, analysis, escalation, and decision-making process usually takes time, during which the project may be stalled.</p>
<p>This process may be valid in many industries, especially mature ones where much of the uncertainty has been removed from the decision-making process by virtue of experience. In this case, the management decision makers are most likely seasoned professionals with a firm grasp of the business goals and the market environment. Taking the time to prepare an in-depth analysis for management will likely pay off on the operational side of the business in the form of lower production costs, lower support costs, and better overall product quality.</p>
<p>Now let&#8217;s consider a more likely scenario. For the purposes of this exercise, consider a company operating in internal and external uncertainty that is trying to apply classic PM methods.</p>
<ul>
<li>Internal uncertainty defines those variables within the project bubble that can be controlled by the Project Manager. These include scope, schedule, and cost.</li>
<li>External uncertainty defines those variables outside of the project bubble, such as the industry&#8217;s business environment, the competition, and high-level, business strategy decisions.</li>
</ul>
<p>The project comes to a decision point, but the Project Manager sees no obvious answer from his perspective. He starts collecting data to create an analysis to present the sponsor. However, in this environment there are limited solid facts upon which to build an analysis due to the inherent uncertainty within the organization. This leads him to make educated assumptions, possibly including the consensus opinion of his team. These efforts take additional time. At the completion of the analysis, he notices that there are multiple possible paths and no clear &#8220;best option&#8221; to recommend. The Project Manager approaches management seeking additional information to help clarify the decision. Management most likely does add new information to the equation, but they also, more than likely, add external uncertainties. The analysis now has so many dimensions and possible outcomes that it becomes nearly useless. Yet somehow, a decision is finally made and the project progresses.Let&#8217;s disect this process further. To make a mediocre at best decision, the Project Manager involved himself, a good part of his team, and management. This is a time-consuming and an inefficient use of resources. This same decision, or perhaps a better one, could have been made a lot quicker if the Project Manager had access to the right information from the start and was allowed to look &#8220;outside the triangle&#8221; (i.e., his triple constraint) to make the decision.In the classic PM model, the Project Manager is constrained by the triangle. They are usually given considerable liberty to operate within it but very little leeway outside of it where traditional management gets involved. Even if no implicit direction is given to the Project Manager, human nature suggests a proclivity to focus on things within one&#8217;s control, which in this case exists only within the triangle.In a large, complex company, this works fairly well. It could be assumed that a large organization would require numerous distinct roles in order to operate effectively. There should be distinct <em>project manager</em> role to run the project and a distinct <em>management</em> role to set the boundaries for the project.</p>
<p>I would argue that while the natural evolution of project management has created these paradigms to cut across the functional silos of large companies, this is not however the most agile way to organize projects for smaller organizations. While this model works for corporate giants in mature industries, it falls apart badly as you move to the opposite end of the PM agility spectrum—where speed is required and uncertainty abounds.</p>
<p>What would happen if you were freed from the complexity and constraint inherent in large organizations, would you still choose these distinct roles for your company?</p>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/08/life-outside-the-%e2%80%9ciron-triangle%e2%80%9d/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/08/life-outside-the-%e2%80%9ciron-triangle%e2%80%9d/</feedburner:origLink></item>
		<item>
		<title>Configuring Big Brother as a Solaris 10 Service</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/141743506/</link>
		<comments>http://tridenta.com/blog/2007/08/07/configuring-big-brother-as-a-solaris-10-service-2/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 20:35:57 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[Big Brother]]></category>

	<!-- AutoMeta Start -->
	<category>mkdir</category>
	<category>var svc manifest application monitoring  create</category>
	<category>the</category>
	<category>var svc manifest application monitoring bigbrother xml</category>
	<category>file            contents</category>
	<category>       svccfg</category>
	<category>validate</category>
	<category>var svc manifest application monitoring bigbrother xml             </category>
	<category>this</category>
	<category>validates</category>
	<category>the</category>
	<category>syntax</category>
	<category>   svccfg</category>
	<category>import</category>
	<category>var svc manifest application monitoring bigbrother xml           svcadm</category>
	<category>enable</category>
	<category>svc</category>
	<category>xmllint</category>
	<category>var svc manifest application monitoring bigbrother xml</category>
	<category>application monitoring bigbrother</category>
	<category>default                     note</category>
	<category>application monitoring bigbrother</category>
	<category>type</category>
	<category>bigbrother</category>
	<category>manifest</category>
	<category>and</category>
	<category>stop start                             </category>
	<category>script</category>
	<category>paths</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/07/configuring-big-brother-as-a-solaris-10-service-2/</guid>
		<description><![CDATA[ Tip courtesy of Kyle Reynolds at http://www.camelrichard.org 
mkdir /var/svc/manifest/application/monitoringcreate the /var/svc/manifest/application/monitoring/bigbrother.xml file.  contents of bigbrother.xml (change directories, user, group, and stop/start                            script paths to fit your install):&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; 
&#60;?xml version=&#8217;1.0&#8242;?&#62;&#60;!DOCTYPE service_bundle SYSTEM &#8216;/usr/share/lib/xml/dtd/service_bundle.dtd.1&#8242;&#62;&#60;!&#8211;    bigbrother.xml : BigBrother manifest, Kyle Reynolds    2006-07-02&#8211;&#62; &#60;service_bundle type=&#8217;manifest&#8217; name=&#8217;bigbrother&#8217;&#62;&#60;service name=&#8217;application/monitoring/bigbrother&#8217; type=&#8217;service&#8217; version=&#8217;1&#8242;&#62; 
   &#60;single_instance /&#62;    &#60;dependency      name=&#8217;multi-user-server&#8217;      grouping=&#8217;require_any&#8217;      restart_on=&#8217;error&#8217;      type=&#8217;service&#8217;&#62;      &#60;service_fmri value=&#8217;svc:/milestone/multi-user-server:default&#8217; /&#62;   &#60;/dependency&#62; 
   &#60;exec_method      type=&#8217;method&#8217;      [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 8pt; font-family: Verdana"> Tip courtesy of Kyle Reynolds at <a rel="nofollow" target="_blank" href="http://www.camelrichard.org/"><span style="background: #dceeff" id="lw_1187093217_0"><font color="#003399">http://www.camelrichard.org</font></span></a></span><span style="font-size: 8pt; font-family: Verdana"> </span></p>
<p><span style="font-size: 8pt; font-family: Verdana">mkdir /var/svc/manifest/application/monitoring</span><span style="font-size: 8pt; font-family: Verdana">create the /var/svc/manifest/application/monitoring/bigbrother.xml file.</span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"><span style="font-size: 8pt; font-family: Verdana">contents of bigbrother.xml (change directories, user, group, and stop/start</span><span style="font-size: 8pt; font-family: Verdana"><span>                            </span>script paths to fit your install):</span><span style="font-size: 8pt; font-family: Verdana">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span><span style="font-size: 8pt; font-family: Verdana"> </span></p>
<p></span><span style="font-size: 8pt; font-family: Verdana">&lt;?xml version=&#8217;1.0&#8242;?&gt;</span><span style="font-size: 8pt; font-family: Verdana">&lt;!DOCTYPE service_bundle SYSTEM &#8216;/usr/share/lib/xml/dtd/service_bundle.dtd.1&#8242;&gt;</span><span style="font-size: 8pt; font-family: Verdana">&lt;!&#8211;</span><span style="font-size: 8pt; font-family: Verdana"><span>    </span>bigbrother.xml : BigBrother manifest, Kyle Reynolds</span><span style="font-size: 8pt; font-family: Verdana"><span>    </span>2006-07-02</span><span style="font-size: 8pt; font-family: Verdana">&#8211;&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"><span style="font-size: 8pt; font-family: Verdana">&lt;service_bundle type=&#8217;manifest&#8217; name=&#8217;bigbrother&#8217;&gt;</span><span style="font-size: 8pt; font-family: Verdana">&lt;service name=&#8217;application/monitoring/bigbrother&#8217; type=&#8217;service&#8217; version=&#8217;1&#8242;&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span></p>
<p></span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;single_instance /&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;dependency</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>name=&#8217;multi-user-server&#8217;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>grouping=&#8217;require_any&#8217;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>restart_on=&#8217;error&#8217;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>type=&#8217;service&#8217;&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>&lt;service_fmri value=&#8217;svc:/milestone/multi-user-server:default&#8217; /&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;/dependency&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span></p>
<p></span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;exec_method</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>type=&#8217;method&#8217;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>name=&#8217;start&#8217;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>exec=&#8217;/u01/app/bb/bbc/runbb.sh start&#8217;</span><span style="font-size: 8pt; font-family: Verdana"><span>   </span><span>   </span>timeout_seconds=&#8217;120&#8242; &gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>&lt;method_context&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>         </span>&lt;method_credential user=&#8217;bbuser&#8217; group=&#8217;bbgroup&#8217; /&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>&lt;/method_context&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;/exec_method&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;exec_method</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>type=&#8217;method&#8217;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>name=&#8217;stop&#8217;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>exec=&#8217;/u01/app/bb/bbc/runbb.sh stop&#8217;</span><span style="font-size: 8pt; font-family: Verdana"><span>     </span><span> </span>timeout_seconds=&#8217;120&#8242; &gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>&lt;method_context&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>         </span>&lt;method_credential user=&#8217;bbuser&#8217; group=&#8217;bbgroup&#8217; /&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>&lt;/method_context&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;/exec_method&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span></p>
<p></span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;instance name=&#8217;default&#8217; enabled=&#8217;false&#8217; /&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;stability value=&#8217;Unstable&#8217; /&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span></p>
<p></span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;template&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>&lt;common_name&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>         </span>&lt;loctext xml:lang=&#8217;C'&gt;Big Brother&lt;/loctext&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>      </span>&lt;/common_name&gt;</span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&lt;/template&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"><span style="font-size: 8pt; font-family: Verdana">&lt;/service&gt;</span><span style="font-size: 8pt; font-family: Verdana">&lt;/service_bundle&gt;</span><span style="font-size: 8pt; font-family: Verdana"> </span></p>
<p></span><span style="font-size: 8pt; font-family: Verdana">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"><span style="font-size: 8pt; font-family: Verdana">run:</span><span style="font-size: 8pt; font-family: Verdana"> </span></p>
<p></span><span style="font-size: 8pt; font-family: Verdana">svccfg validate /var/svc/manifest/application/monitoring/bigbrother.xml</span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"><span style="font-size: 8pt; font-family: Verdana"><span>   </span>(this validates the syntax of the xml file.<span>  </span>If it returns the message:</span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>&#8220;svccfg: couldn&#8217;t parse document&#8221;, then try running:</span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>`xmllint /var/svc/manifest/application/monitoring/bigbrother.xml`</span><span style="font-size: 8pt; font-family: Verdana"><span>   </span>for more detailed error messages).</span><span style="font-size: 8pt; font-family: Verdana"><span> </span></span><span style="font-size: 8pt; font-family: Verdana">svccfg import /var/svc/manifest/application/monitoring/bigbrother.xml</span><span style="font-size: 8pt; font-family: Verdana"> </span></p>
<p></span><span style="font-size: 8pt; font-family: Verdana">svcadm enable svc:/application/monitoring/bigbrother:default</span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"> </span><span style="font-size: 8pt; font-family: Verdana"></span><span style="font-size: 8pt; font-family: Verdana"><span style="font-size: 8pt; font-family: Verdana">(NOTE: Most Solaris 10 services consist of an xml file (like the one above) plus a</span><span style="font-size: 8pt; font-family: Verdana"><span> </span>start script (or method) that is stored under /lib/svc/method.<span>  </span>I chose not to </span><span style="font-size: 8pt; font-family: Verdana"><span> </span>follow this standard for 2 reasons:<span>  </span>first, big brother comes with it&#8217;s own start</span><span style="font-size: 8pt; font-family: Verdana"><span> </span>script; second, I have added this service initialization to a Solaris 10 package that</span><span style="font-size: 8pt; font-family: Verdana"><span> </span>is often installed in Solaris zones.<span>  </span>The way I typically create a zone gives read-only</span><span style="font-size: 8pt; font-family: Verdana"><span> </span>access to the /lib dir, so the package cannot move the method to the /lib dir unless I</span><span style="font-size: 8pt; font-family: Verdana"><span> </span>change the way I implement zones, so this way, the service is more self-contained and </span><span style="font-size: 8pt; font-family: Verdana"><span> </span>works perfectly without my having to make changes to the zones.)</span></p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/07/configuring-big-brother-as-a-solaris-10-service-2/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/07/configuring-big-brother-as-a-solaris-10-service-2/</feedburner:origLink></item>
		<item>
		<title>Configuring Big Brother Tests for Miscellaneous Processes</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/141731662/</link>
		<comments>http://tridenta.com/blog/2007/08/07/configuring-big-brother-tests-for-miscellaneous-processes/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 20:33:44 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[Big Brother]]></category>

	<!-- AutoMeta Start -->
	<category>      </category>
	<category />
	<category>bbhome etc bbdef sh         </category>
	<category />
	<category>include</category>
	<category>standard</category>
	<category>definitions  fi              </category>
	<category>force</category>
	<category>green</category>
	<category>and</category>
	<category>clear</category>
	<category>tmp</category>
	<category>file         line</category>
	<category>snmpdx</category>
	<category>                bin sh   </category>
	<category>bb snmptest sh   </category>
	<category>big</category>
	<category>brother</category>
	<category />
	<category>misc</category>
	<category>external</category>
	<category>script</category>
	<category>kyle</category>
	<category>reynolds   </category>
	<category>bb hosts sh  bbhome  u01 app bb bbc</category>
	<category>bbhome                  </category>
	<category />
	<category>big</category>
	<category>brother</category>
	<category>home         panic_1</category>
	<category>the</category>
	<category>default</category>
	<category>color</category>
	<category>level                bbprog bb snmptest sh</category>
	<category>bb         line</category>
	<category>status</category>
	<category>machine  test</category>
	<category>color</category>
	<category>proc_1</category>
	<category />
	<category>proc_1_current</category>
	<category>instances</category>
	<category>running lt</category>
	<category>ps</category>
	<category>ef|</category>
	<category>grep</category>
	<category>v</category>
	<category>grep|</category>
	<category>grep</category>
	<category>proc_1|</category>
	<category>wc</category>
	<category>l|</category>
	<category>cut</category>
	<category>c8</category>
	<category>gt</category>
	<category>bbtmp  test  echo</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/07/configuring-big-brother-tests-for-miscellaneous-processes/</guid>
		<description><![CDATA[ Tip courtesy of Kyle Reynolds at http://www.camelrichard.org
 
On the machine running the process you wish to test for, create a script in the $BBHOME/ext 
directory following the example script below.  Change the `PROC_1` variable to reflect the process
you will `grep` for and the `BBPROG` variable to reflect the name of the script, and change the 
`TEST` [...]]]></description>
			<content:encoded><![CDATA[<pre style="background: white"><span lang="EN"><font size="2"> <font face="Verdana">Tip courtesy of Kyle Reynolds at </font></font><a rel="nofollow" target="_blank" href="http://www.camelrichard.org/"><span style="background: #dceeff" id="lw_1187093217_0"><font size="2" color="#003399" face="Verdana">http://www.camelrichard.org</font></span></a></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">On the machine running the process you wish to test for, create a script in the $BBHOME/ext </font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">directory following the example script below.<span>  </span>Change the `PROC_1` variable to reflect the process</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">you will `grep` for and the `BBPROG` variable to reflect the name of the script, and change the </font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">`TEST` variable to reflect the name of the test as it will be displayed on the main BB html page.<span>  </span></font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">the following example is to test for the SNMP daemon, `snmpdx`</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">!/bin/sh</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> bb-snmptest.sh</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> BIG BROTHER - MISC EXTERNAL SCRIPT</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> Kyle Reynolds</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> THIS SCRIPT TESTS FOR A PROCESS.<span>  </span>IT CHECKS HOW MANY INSTANCES OF THE</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> PROCESS IS RUNNING AND COMPARES IT TO THE PANIC LEVEL</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> GREEN IS THE DEFAULT COLOR LEVEL</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">BBPROG=bb-snmptest.sh; export BBPROG</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><strong><u><span lang="EN"><font size="2"> CHANGE THE FOLLOWING FIELDS TO MEET YOUR NEEDS</font></span></u></strong></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">TEST=&#8221;snmp&#8221;<span>                                     </span>- NAME OF THE FILE DISPLAYED ON THE </font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>                                                </span>- BBDISPLAY AND SET IN bb-hosts.sh</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">BBHOME=/u01/app/bb/bbc BBHOME<span>                   </span>- BIG BROTHER HOME</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">PANIC_1=&#8221;1&#8243;<span>                                     </span>- SET THE NUMBER OF PROCESSES REQUIRED</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">PROC_1=&#8221;snmpdx&#8221;<span>                                 </span>- NAME OF THE PROCESS TO GREP FOR</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">MACHINE=&#8221;blojszp1&#8243;<span>                              </span>- HAS TO BE IN A,B,C FORM NOTE THE COMMAS</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><strong><u><span lang="EN"><font size="2"><span>      </span>check basic environment setup</font></span></u></strong></pre>
<pre style="background: white"><strong><span lang="EN"><font size="2"> </font>  

</span></strong></pre>
<pre style="background: white"><span lang="EN"><font size="2">if test &#8220;$BBHOME&#8221; = &#8220;&#8221;</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">then</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>       </span>echo &#8220;BBHOME is not set&#8230; exiting&#8221;</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>       </span>exit 1</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">fi</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">if test ! &#8220;$BBTMP&#8221;<span>                      </span>- GET DEFINITIONS IF NEEDED</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">then</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>        </span># echo &#8220;*** LOADING BBDEF ***&#8221;</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>       </span>. $BBHOME/etc/bbdef.sh<span>          </span>- INCLUDE STANDARD DEFINITIONS</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">fi</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><strong><u><span lang="EN"><font size="2"><span>      </span>force green and clear tmp file</font></span></u></strong></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">LINE=&#8221;"</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">COLOR=&#8221;green&#8221;</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">`rm $BBTMP/$TEST`</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><strong><u><span lang="EN"><font size="2"><span>       </span>start the program</font></span></u></strong></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">PROC_1_CURRENT=`ps -ef| grep -v grep| grep $PROC_1| wc -l| cut -c8`</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>   </span>if [ &#8220;$PROC_1_CURRENT&#8221; = &#8220;$PANIC_1&#8243; ]</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>   </span>then</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">echo &#8220;&lt;TR&gt;&lt;TD&gt;$PROC_1 - $PROC_1_CURRENT instances running&lt;TD&gt;&lt;TD&gt;&#8221; &gt;&gt; $BBTMP/$TEST</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">echo &#8220;&lt;IMG SRC=&#8221;../gifs/green.gif&#8221; ALT=&#8221;${PROC_1} :green&#8221; HEIGHT=16 </font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>      </span>WIDTH=16 BORDER=0&gt;&lt;A&gt;&lt;TD&gt;&lt;TR&gt;&#8221; &gt;&gt; $BBTMP/$TEST</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>   </span>else</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>       </span>LINE=&#8221;$LINE</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">WARNING! $PROC_1 NOT OK - $PROC_1_CURRENT instances are running&#8221;; export LINE</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>       </span>COLOR=&#8221;red&#8221; ; export COLOR</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">echo &#8220;&lt;TR&gt;&lt;TD&gt;$PROC_1&lt;TD&gt;&lt;TD&gt;&#8221; &gt;&gt; $BBTMP/$TEST</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">echo &#8220;&lt;IMG SRC=&#8221;../gifs/$COLOR.gif&#8221; ALT=&#8221;${PROC_1} :$COLOR&#8221; HEIGHT=16 </font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>      </span>WIDTH=16 BORDER=0&gt;&lt;A&gt;&lt;TD&gt;&lt;TR&gt;&#8221; &gt;&gt; $BBTMP/$TEST</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"><span>   </span>fi</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><strong><u><span lang="EN"><font size="2">format it for BB</font></span></u></strong></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">LINE=&#8221;status $MACHINE.$TEST $COLOR `date`</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">$LINE</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2">`cat $BBTMP/$TEST`&#8221;</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> NOW USE THE BB COMMAND TO SEND THE DATA ACROSS</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">$BB $BBDISP &#8220;$LINE&#8221;<span>                     </span># SEND IT TO BBDISPLAY</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">add the following line (for the SNMP example) to etc/bb-bbexttab</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">`localhost :<span>  </span>: bb-snmptest.sh`</font></span></pre>
<pre style="background: white"><span lang="EN"><font size="2"> </font>  

</span></pre>
<pre style="background: white"><span lang="EN"><font size="2">restart BB on the client and after about 5-10 minutes, the new test should show</font></span></pre>
<p><span style="font-size: 12pt; font-family: 'Times New Roman'" lang="EN">up on the BB server display.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/07/configuring-big-brother-tests-for-miscellaneous-processes/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/07/configuring-big-brother-tests-for-miscellaneous-processes/</feedburner:origLink></item>
		<item>
		<title>Start Iplanet Without Password Prompt</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/141729698/</link>
		<comments>http://tridenta.com/blog/2007/08/07/start-iplanet-without-password-prompt/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 20:14:40 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[iPlanet]]></category>

	<!-- AutoMeta Start -->
	<category>ssh</category>
	<category>iplanet hostname</category>
	<category>apps iplanet https hostname camelrichard org start</category>
	<category>lt</category>
	<category>apps iplanet https hostname camelrichard org start</category>
	<category>lt</category>
	<category>token</category>
	<category>file</category>
	<category>exists</category>
	<category>locally</category>
	<category>iplanet</category>
	<category>provide</category>
	<category>the</category>
	<category>password</category>
	<category>token  where</category>
	<category>token</category>
	<category>exist</category>
	<category>the</category>
	<category>iplanet</category>
	<category>server</category>
	<category>iplanet</category>
	<category>password</category>
	<category>prompted</category>
	<category>time     create</category>
	<category>a</category>
	<category>file</category>
	<category>called</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/07/start-iplanet-without-password-prompt/</guid>
		<description><![CDATA[ Tip courtesy of Kyle Reynolds at http://www.camelrichard.org
If Iplanet (Sun One Webserver) has security turned on (in the magnus.conf) it will prompt for a password to start the webserver. In cases where you might script the starting of Iplanet, you might want to provide the password, but not be prompted every time.
create a file called &#8220;token&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p> <font size="2" face="Verdana">Tip courtesy of Kyle Reynolds at </font><a rel="nofollow" target="_blank" href="http://www.camelrichard.org/"><span style="background: #dceeff" id="lw_1187093217_0"><font size="2" color="#003399" face="Verdana">http://www.camelrichard.org</font></span></a></p>
<p>If Iplanet (Sun One Webserver) has security turned on (in the magnus.conf) it will prompt for a password to start the webserver. In cases where you might script the starting of Iplanet, you might want to provide the password, but not be prompted every time.</p>
<p>create a file called &#8220;token&#8221; (or anything for that matter) and put your iplanet password in it. (Yes, this will be plain text, so take security measures&#8230;)</p>
<p>now, start Iplanet by redirecting that file into the start command:</p>
<pre>/apps/iplanet/https-hostname.camelrichard.org/start &lt; token</pre>
<p>and you will not be prompted for a password.</p>
<p>This also works remotely, as long as the &#8216;token&#8217; file exists locally on the server that you are running the start command from:</p>
<pre>ssh iplanet@hostname /apps/iplanet/https-hostname.camelrichard.org/start &lt; token</pre>
<p>where &#8216;token&#8217; does not have to exist on the Iplanet server, but it does have to exist on the server you run the ssh command from.</p>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/07/start-iplanet-without-password-prompt/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/07/start-iplanet-without-password-prompt/</feedburner:origLink></item>
		<item>
		<title>Rotate Iplanet Logs</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/141729699/</link>
		<comments>http://tridenta.com/blog/2007/08/07/rotate-iplanet-logs/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 20:13:52 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[iPlanet]]></category>

	<!-- AutoMeta Start -->
	<category>init</category>
	<category>fn flex rotate init</category>
	<category>rotate start 0000</category>
	<category>rotate interval 1440  where</category>
	<category>the</category>
	<category>rotate interval</category>
	<category>37</category>
	<category>errors 200704220000</category>
	<category>rw r  r</category>
	<category>1</category>
	<category>iplanet</category>
	<category>iplanet</category>
	<category>0</category>
	<category>apr</category>
	<category>22</category>
	<category>00</category>
	<category>00</category>
	<category>access 200704230000</category>
	<category>rw r  r</category>
	<category>1</category>
	<category>iplanet</category>
	<category>iplanet</category>
	<category>0</category>
	<category>apr</category>
	<category>23</category>
	<category>00</category>
	<category>35</category>
	<category>access 200704220000</category>
	<category>rw r  r</category>
	<category>1</category>
	<category>iplanet</category>
	<category>iplanet</category>
	<category>143</category>
	<category>apr</category>
	<category>22</category>
	<category>00</category>
	<category>00</category>
	<category>errors</category>
	<category>rw r  r</category>
	<category>1</category>
	<category>iplanet</category>
	<category>iplanet</category>
	<category>637</category>
	<category>apr</category>
	<category>21</category>
	<category>21</category>
	<category>00</category>
	<category>access</category>
	<category>rw r  r</category>
	<category>1</category>
	<category>iplanet</category>
	<category>iplanet</category>
	<category>143</category>
	<category>apr</category>
	<category>21</category>
	<category>21</category>
	<category>rw r  r</category>
	<category>1</category>
	<category>iplanet</category>
	<category>iplanet</category>
	<category>143</category>
	<category>apr</category>
	<category>23</category>
	<category>00</category>
	<category>24</category>
	<category>hours     restart</category>
	<category>iplanet</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/07/rotate-iplanet-logs/</guid>
		<description><![CDATA[ Tip courtesy of Kyle Reynolds at http://www.camelrichard.org
To force daily rotation of Iplanet (Sun One Web Server) logs, add the following line to magnus.conf:
Init fn=flex-rotate-init rotate-start=0000 rotate-interval=1440
where the rotate-interval is in minutes, 1440 being 24 hours.
Restart Iplanet. &#8220;access&#8221; and &#8220;errors&#8221; logs will be rotated every 24 hours and named as such:
-rw-r--r--   1 iplanet  [...]]]></description>
			<content:encoded><![CDATA[<p> <font size="2" face="Verdana">Tip courtesy of Kyle Reynolds at </font><a rel="nofollow" target="_blank" href="http://www.camelrichard.org/"><span style="background: #dceeff" id="lw_1187093217_0"><font size="2" color="#003399" face="Verdana">http://www.camelrichard.org</font></span></a></p>
<p>To force daily rotation of Iplanet (Sun One Web Server) logs, add the following line to magnus.conf:</p>
<pre>Init fn=flex-rotate-init rotate-start=0000 rotate-interval=1440</pre>
<p>where the rotate-interval is in minutes, 1440 being 24 hours.</p>
<p>Restart Iplanet. &#8220;access&#8221; and &#8220;errors&#8221; logs will be rotated every 24 hours and named as such:</p>
<pre>-rw-r--r--   1 iplanet  iplanet      143 Apr 23 00:00 access -rw-r--r--   1 iplanet  iplanet      143 Apr 21 21:35 access.200704220000 -rw-r--r--   1 iplanet  iplanet      143 Apr 22 00:00 access.200704230000 -rw-r--r--   1 iplanet  iplanet        0 Apr 23 00:00 errors -rw-r--r--   1 iplanet  iplanet      637 Apr 21 21:37 errors.200704220000 -rw-r--r--   1 iplanet  iplanet        0 Apr 22 00:00 errors.200704230000</pre>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/07/rotate-iplanet-logs/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/07/rotate-iplanet-logs/</feedburner:origLink></item>
		<item>
		<title>iPlanet Generate Server Key from Command Line</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/141729700/</link>
		<comments>http://tridenta.com/blog/2007/08/07/iplanet-generate-server-key-from-command-line/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 20:12:36 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[iPlanet]]></category>

	<!-- AutoMeta Start -->
	<category>u01 app iplanet alias https blojszp1 camelrichard org blojszp1 cert8 db</category>
	<category>failure</category>
	<category>iplanet blojszp1</category>
	<category>u01 app iplanet https blojszp1 camelrichard org</category>
	<category>start</category>
	<category>sun</category>
	<category>virtual</category>
	<category>server</category>
	<category>https blojszp1 camelrichard org</category>
	<category>bin https admin bin</category>
	<category>certutil</category>
	<category>d</category>
	<category />
	<category>n</category>
	<category>enter</category>
	<category>a</category>
	<category>password</category>
	<category>blojszp1 camelrichard org</category>
	<category>8000</category>
	<category>ready</category>
	<category>core3174</category>
	<category>nss</category>
	<category>initialization</category>
	<category>failed  to</category>
	<category>generate</category>
	<category>a</category>
	<category>server</category>
	<category>key</category>
	<category>sun</category>
	<category>webserver</category>
	<category>6 1sp7     to</category>
	<category>turn</category>
	<category>security</category>
	<category>webserver</category>
	<category>requires</category>
	<category>a</category>
	<category>server</category>
	<category>certificate</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/07/iplanet-generate-server-key-from-command-line/</guid>
		<description><![CDATA[ Tip courtesy of Kyle Reynolds at http://www.camelrichard.org
Iplanet (Sun One Webserver) requires a server certificate to boot if you turn security on (to require a password to boot). This is commonly done through the admin console, but can also be done on the command line. This example uses Sun One Webserver 6.1SP7.
To Turn Security ON:
vi magnus.conf
change:
Security [...]]]></description>
			<content:encoded><![CDATA[<p> <font size="2" face="Verdana">Tip courtesy of Kyle Reynolds at </font><a rel="nofollow" target="_blank" href="http://www.camelrichard.org/"><span style="background: #dceeff" id="lw_1187093217_0"><font size="2" color="#003399" face="Verdana">http://www.camelrichard.org</font></span></a></p>
<p>Iplanet (Sun One Webserver) requires a server certificate to boot if you turn security on (to require a password to boot). This is commonly done through the admin console, but can also be done on the command line. This example uses Sun One Webserver 6.1SP7.</p>
<p><strong>To Turn Security ON:</strong></p>
<pre>vi magnus.conf</pre>
<p><strong>change:</strong></p>
<pre>Security off</pre>
<p><strong>to:</strong></p>
<pre>Security on</pre>
<p><strong>Now, if you tried to start the webserver, you would see a message like this:</strong></p>
<pre>iplanet@blojszp1 /u01/app/iplanet/https-blojszp1.camelrichard.org                                                                                          ./start Sun ONE Web Server 6.1SP7 (64-Bit) B01/12/2007 06:13 failure: CORE1227: NSS initialization failed: SEC_ERROR_BAD_DATABASE:  Problem using certificate or key database: Certificate database: /u01/app/iplanet/alias/https-blojszp1.camelrichard.org-blojszp1-cert8.db failure: CORE3174: NSS initialization failed</pre>
<p><strong>To generate a server key:</strong></p>
<pre>cd &lt;iplanet root&gt;/bin/https/admin/bin  ./certutil -d . -N Enter a password which will be used to encrypt your keys. The password should be at least 8 characters long, and should contain at least one non-alphabetic character.  Enter new password: Re-enter password:  cp cert8.db &lt;iplanet root&gt;/alias/ cp key3.db &lt;iplanet root&gt;/alias/ cp secmod.db &lt;iplanet root&gt;/alias/</pre>
<p><strong>Now you should be prompted for a password to start the server:</strong></p>
<pre>iplanet@blojszp1 /u01/app/iplanet/https-blojszp1.camelrichard.org ./start Sun ONE Web Server 6.1SP7 (64-Bit) B01/12/2007 06:13 Please enter password for "internal" token: info: CORE5076: Using [Java HotSpot(TM) 64-Bit Server VM, Version 1.4.2_13] from [Sun Microsystems Inc.] info: WEB0100: Loading web module in virtual server [https-blojszp1.camelrichard.org] at [/search] info: HTTP3072: [LS ls1] http://blojszp1.camelrichard.org:8000 ready to accept requests startup: server started successfully</pre>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/07/iplanet-generate-server-key-from-command-line/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/07/iplanet-generate-server-key-from-command-line/</feedburner:origLink></item>
		<item>
		<title>vi Reference</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/141729701/</link>
		<comments>http://tridenta.com/blog/2007/08/07/vi-reference/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 20:11:39 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[Unix]]></category>

	<!-- AutoMeta Start -->
	<category>the</category>
	<category>file    h </category>
	<category>cursor</category>
	<category>left    </category>
	<category>j </category>
	<category>cursor</category>
	<category>right  k </category>
	<category>cursor</category>
	<category>up      </category>
	<category>l </category>
	<category>cursor</category>
	<category>down    </category>
	<category>amp</category>
	<category>cursor  20d</category>
	<category>deletes</category>
	<category>line</category>
	<category>20  dd </category>
	<category>deletes</category>
	<category>current</category>
	<category>line  d  </category>
	<category>delete</category>
	<category>the</category>
	<category>current</category>
	<category>line   p   </category>
	<category>pastes</category>
	<category>the</category>
	<category>current</category>
	<category>buffer         recovering</category>
	<category>a</category>
	<category>unsaved</category>
	<category>the</category>
	<category>current</category>
	<category>line         copy</category>
	<category>and</category>
	<category>pasting</category>
	<category>lines  yy  </category>
	<category>copys</category>
	<category>the</category>
	<category>current</category>
	<category>line</category>
	<category>line         substitute  s  </category>
	<category>subistutes</category>
	<category>current</category>
	<category>charcater   s  </category>
	<category>substitutes</category>
	<category>entire</category>
	<category>line         repeating </category>
	<category>the</category>
	<category>file  n</category>
	<category>continues</category>
	<category>search</category>
	<category>forward   n</category>
	<category>searches</category>
	<category>backwards         substitution</category>
	<category>the</category>
	<category>file </category>
	<category>current</category>
	<category>line</category>
	<category>and</category>
	<category>total</category>
	<category>lines</category>
	<category>file   vi</category>
	<category>r </category>
	<category>filename </category>
	<category>restores</category>
	<category>a</category>
	<category>unsaved</category>
	<category />
	<category>crashed</category>
	<category>file</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/07/vi-reference/</guid>
		<description><![CDATA[ Tip courtesy of Kyle Reynolds at http://www.camelrichard.org
vi reference
&#8212;&#8212;&#8212;&#8212;
Editing commands
Moving around the file
h  cursor left     j  cursor right
k  cursor up       l  cursor down
^  &#38; B    Beginning of line 
$         end of line
)     Next sentance
(     Previous sentance
}     Next Paragraph
{     Previous  Paragraph
:$   end of file
w    one character forward
W    one word forward
:20  go to Line no 20 or whatever number [...]]]></description>
			<content:encoded><![CDATA[<p> <font size="2" face="Verdana">Tip courtesy of Kyle Reynolds at </font><a rel="nofollow" target="_blank" href="http://www.camelrichard.org/"><span style="background: #dceeff" id="lw_1187093217_0"><font size="2" color="#003399" face="Verdana">http://www.camelrichard.org</font></span></a></p>
<p>vi reference<br />
&#8212;&#8212;&#8212;&#8212;</p>
<p>Editing commands</p>
<p>Moving around the file</p>
<p>h  cursor left     j  cursor right<br />
k  cursor up       l  cursor down<br />
^  &amp; B    Beginning of line <br />
$         end of line<br />
)     Next sentance<br />
(     Previous sentance<br />
}     Next Paragraph<br />
{     Previous  Paragraph</p>
<p>:$   end of file<br />
w    one character forward<br />
W    one word forward<br />
:20  go to Line no 20 or whatever number you give</p>
<p>       </p>
<p>displaying file info .</p>
<p>^g  give name of the file  current line and total lines of a file at the bottom .</p>
<p>Inserting and appending text :<br />
i inserts text to the left of  cursor<br />
I inserts in the beginning of line<br />
a appends text to right of cursor<br />
A appends to the end of line</p>
<p>Adding new line</p>
<p>o add a new line below the current line<br />
O adds a new line above the current line.</p>
<p>deleting the text :</p>
<p>x   deletes text above the text<br />
X   deletes text character on  right of cursor<br />
20d deletes line 20<br />
dd  deletes current line<br />
D   delete till end of current line.<br />
    <br />
Replacing a character &amp; word<br />
r   replace the character above the cursor.<br />
R   replces characters until Esc is pressed.<br />
cw  replaces the word from cursor to the end indicated by $ sign .<br />
C   replaces till end of line.<br />
    <br />
Substitute<br />
s   subistutes current charcater.<br />
S   substitutes entire line.<br />
    <br />
Repeating  last command<br />
.  repeats the last text.<br />
    <br />
Undo the last change<br />
u  undo last change.<br />
U undo changes to the current line.<br />
    <br />
Copy and pasting lines<br />
yy   copys the current line into buffer.<br />
5yy  copies 5 lines from the current line.<br />
p    pastes the current buffer.<br />
    <br />
Recovering a unsaved vi file.<br />
vi -r  filename  restores a unsaved / crashed file from buffer.<br />
    <br />
Searching<br />
:/name    &amp; return searches for the word name in the file<br />
n continues search forward.<br />
N searches backwards.<br />
    <br />
Substitution<br />
:1,$s/&lt;search-string&gt;/&lt;replace-string&gt;/g<br />
    <br />
Saving<br />
:w    saves the text does not quit.<br />
:wq   saves &amp; quit the editor .<br />
ZZ    save<br />
:q!   Quit without saving</p>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/07/vi-reference/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/07/vi-reference/</feedburner:origLink></item>
		<item>
		<title>Trusted Authentication with openSSH</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/141729702/</link>
		<comments>http://tridenta.com/blog/2007/08/07/trusted-authentication-with-openssh/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 20:10:57 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[Unix]]></category>

	<!-- AutoMeta Start -->
	<category>59</category>
	<category>authorized_keys2     rw         </category>
	<category>1</category>
	<category>username1 </category>
	<category>sysadmin    </category>
	<category>668</category>
	<category>jun </category>
	<category>4 </category>
	<category>2002</category>
	<category>id_dsa     rw r  r    </category>
	<category>1</category>
	<category>username1 </category>
	<category>sysadmin    </category>
	<category>604</category>
	<category>jun </category>
	<category>4 </category>
	<category>2002</category>
	<category>id_dsa pub     rw r  r    </category>
	<category>1</category>
	<category>username1 </category>
	<category>sysadmin  </category>
	<category>60777</category>
	<category>nov</category>
	<category>18</category>
	<category>13</category>
	<category>username1 servername1</category>
	<category />
	<category>ssh keygen</category>
	<category>t</category>
	<category>dsa</category>
	<category>b</category>
	<category>1024    generating</category>
	<category>public private</category>
	<category>dsa</category>
	<category>key</category>
	<category>pair     enter</category>
	<category>file</category>
	<category>saved</category>
	<category>u01 home username1  ssh id_dsa     your</category>
	<category>public</category>
	<category>key</category>
	<category>43</category>
	<category>cb</category>
	<category>username1 servername1    username1 servername1</category>
	<category>example</category>
	<category>listed</category>
	<category>an</category>
	<category>existing</category>
	<category>authorized_keys2</category>
	<category>file</category>
	<category>allowing</category>
	<category>for  multiple</category>
	<category>host</category>
	<category>authentication         you re</category>
	<category>done         creation</category>
	<category>saved</category>
	<category>u01 home username1  ssh id_dsa pub     the</category>
	<category>key</category>
	<category>fingerprint</category>
	<category>11</category>
	<category>known_hosts2     rw         </category>
	<category>1</category>
	<category>username1 </category>
	<category>sysadmin   </category>
	<category>1024</category>
	<category>dec </category>
	<category>7</category>
	<category>00</category>
	<category>current</category>
	<category>host     id_dsa pub</category>
	<category />
	<category>public</category>
	<category>key</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/07/trusted-authentication-with-openssh/</guid>
		<description><![CDATA[ Tip courtesy of Kyle Reynolds at http://www.camelrichard.org
Trusted authentication with OpenSSH
1. Change directory to the .ssh (hidden directory) located under your home
directory, or create it (mkdir -m 755 ~/.ssh).
2. Create the necessary 1024 bit public and private keys for type dsa, version 2,
of ssh (-t dsa).
                    ssh-keygen -t dsa -b 1024
3. When prompted for values you [...]]]></description>
			<content:encoded><![CDATA[<p> <font size="2" face="Verdana">Tip courtesy of Kyle Reynolds at </font><a rel="nofollow" target="_blank" href="http://www.camelrichard.org/"><span style="background: #dceeff" id="lw_1187093217_0"><font size="2" color="#003399" face="Verdana">http://www.camelrichard.org</font></span></a></p>
<p>Trusted authentication with OpenSSH</p>
<p>1. Change directory to the .ssh (hidden directory) located under your home<br />
directory, or create it (mkdir -m 755 ~/.ssh).</p>
<p>2. Create the necessary 1024 bit public and private keys for type dsa, version 2,<br />
of ssh (-t dsa).</p>
<p>                    ssh-keygen -t dsa -b 1024</p>
<p>3. When prompted for values you may take the default file names.  This will<br />
generate two files in the .ssh directory that are married to one another.  It<br />
will overwrite existing key files with the same name if they exist.  The two<br />
files generated are:</p>
<p>          id_dsa (private key file)</p>
<p>          id_dsa.pub (public key file)</p>
<p>4. Just hit [return] twice, entering an empty passphrase. This allows no password<br />
to be required for authentication checks between the two-paired key files. In<br />
short the password in null.</p>
<p>5. Copy the public key file (id_dsa.pub) to the remote host you would like to<br />
authenticate against.</p>
<p>6. Rename, copy, or append the public key file or contents to &#8220;authorized_keys2&#8243;<br />
and place it in the .ssh directory of your home on that remote host.</p>
<p>NOTE:  All public keys are stored in this file; therefore, you should APPEND the<br />
contents of the id_dsa.pub file to an existing authorized_keys2 file allowing for<br />
multiple host authentication.</p>
<p>You.re DONE!</p>
<p>CREATION EXAMPLE:</p>
<p>username1@servername1 $ ssh-keygen -t dsa -b 1024</p>
<p>Generating public/private dsa key pair.</p>
<p>Enter file in which to save the key (/u01/home/username1/.ssh/id_dsa):</p>
<p>Enter passphrase (empty for no passphrase):</p>
<p>Enter same passphrase again:</p>
<p>Your identification has been saved in /u01/home/username1/.ssh/id_dsa.</p>
<p>Your public key has been saved in /u01/home/username1/.ssh/id_dsa.pub.</p>
<p>The key fingerprint is:</p>
<p>aa:82:47:56:35:b3:9f:4e:d0:89:c1:a8:dc:b6:43:cb username1@servername1</p>
<p>username1@servername1 $</p>
<p>Example listed of the .ssh directoy.</p>
<p>drwx&#8212;&#8212;   2 username1  sysadmin     512 Nov 29 13:58 ./</p>
<p>drwxr-xr-x  34 username1  sysadmin    2048 Dec  6 09:47 ../</p>
<p>-rw-r&#8211;r&#8211;   1 username1  sysadmin    1816 Jul  5 10:59 authorized_keys2</p>
<p>-rw&#8212;&#8212;-   1 username1  sysadmin     668 Jun  4  2002 id_dsa</p>
<p>-rw-r&#8211;r&#8211;   1 username1  sysadmin     604 Jun  4  2002 id_dsa.pub</p>
<p>-rw-r&#8211;r&#8211;   1 username1  sysadmin   60777 Nov 18 13:11 known_hosts2</p>
<p>-rw&#8212;&#8212;-   1 username1  sysadmin    1024 Dec  7 00:05 prng_seed</p>
<p>authorized_keys2 = One or more public keys copy from remote hosts.</p>
<p>id_dsa = ssh version 2 private key for current host.</p>
<p>id_dsa.pub = public key to copy to remote host</p>
<p>known_hosts2 = stores all fingerprints which are written when you answer &#8220;yes&#8221;<br />
at first login attempt to a remote host via ssh.</p>
<p>TROUBLESHOOTING:</p>
<p>If ssh is still prompting for a password to authenticate, check permissions on<br />
the home directory and .ssh directory.  The ssh binary is smart enough to deny<br />
(prompt you for a password) if one or both directories are world writeable. <br />
Recommended umask is 022 or permissions of 755.</p>
<p>You may delete the known_hosts2 file, for an existing host entry without hurting<br />
anything.  You will just be prompted to answer &#8220;yes&#8221; or &#8220;no&#8221; again because ssh<br />
treats it as a first login attempt again.</p>
<p>The files .authorized_key2. and .known_hosts2. may also be named without the<br />
number 2 at the end (.authorized_keys. .known_hosts.).</p>
<p>Another common problem is that the user.s shell account is not a valid shell<br />
listed in the /etc/shells file. This occurs most often when the account is an<br />
application account, the shell is .false. or .true. and the account is locked<br />
(*LK*).  Just add ./path/false. or ./path/true. to /etc/shells.</p>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/07/trusted-authentication-with-openssh/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/07/trusted-authentication-with-openssh/</feedburner:origLink></item>
		<item>
		<title>Solaris SED add delete replace</title>
		<link>http://feeds.feedburner.com/~r/tridenta/~3/141729703/</link>
		<comments>http://tridenta.com/blog/2007/08/07/solaris-sed-add-delete-replace/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 20:09:53 +0000</pubDate>
		<dc:creator>Tridenta</dc:creator>
		
		<category><![CDATA[Unix]]></category>

	<!-- AutoMeta Start -->
	<category>filename gt</category>
	<category>sed</category>
	<category>f</category>
	<category>deletescript</category>
	<category>myfile ldif  sed</category>
	<category>f</category>
	<category>addscript</category>
	<category>newfile ldif    or</category>
	<category>searchstring gt</category>
	<category>d                                                                                            addscript</category>
	<category>filename                                                                                                                                                                                deletescript</category>
	<category />
	<category>deletes</category>
	<category>filename gt</category>
	<category> </category>
	<category />
	<category>runs</category>
	<category>the</category>
	<category>scripted</category>
	<category>commands</category>
	<category>addscript</category>
	<category />
	<category>adds</category>
	<category>the</category>
	<category>lt</category>
	<category>newline</category>
	<category>entry gt</category>
	<category>a\   lt</category>
	<category>newline</category>
	<category>entry gt</category>
	<category>c\   lt</category>
	<category>newline</category>
	<category>entry gt</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://tridenta.com/blog/2007/08/07/solaris-sed-add-delete-replace/</guid>
		<description><![CDATA[Tip courtesy of Kyle Reynolds at http://www.camelrichard.org
SED add/ delete/ replace
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
sed -f &#60;scriptname&#62; &#60;filename&#62;  # runs the scripted commands against the &#60;filename&#62;
example:
sed -f deletescript myfile.ldif
sed -f addscript newfile.ldif
or from command line:
sed &#8216;/&#60;searchstring&#62;/d&#8217; filename
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;
deletescript:
# deletes any line containing &#60;searchstring&#62;
/&#60;searchstring&#62;/d
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
addscript:
# adds the &#60;newline entry&#62; above any line containing &#60;searchstring&#62;
/&#60;searchstring&#62;/i\
&#60;newline entry&#62;
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
addscript:
# adds the &#60;newline entry&#62; beneath any line containing [...]]]></description>
			<content:encoded><![CDATA[<p>Tip courtesy of Kyle Reynolds at http://www.camelrichard.org</p>
<p>SED add/ delete/ replace<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>sed -f &lt;scriptname&gt; &lt;filename&gt;  # runs the scripted commands against the &lt;filename&gt;</p>
<p>example:</p>
<p>sed -f deletescript myfile.ldif<br />
sed -f addscript newfile.ldif</p>
<p>or from command line:</p>
<p>sed &#8216;/&lt;searchstring&gt;/d&#8217; filename</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>deletescript:</p>
<p># deletes any line containing &lt;searchstring&gt;</p>
<p>/&lt;searchstring&gt;/d</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>addscript:</p>
<p># adds the &lt;newline entry&gt; above any line containing &lt;searchstring&gt;</p>
<p>/&lt;searchstring&gt;/i\<br />
&lt;newline entry&gt;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>addscript:</p>
<p># adds the &lt;newline entry&gt; beneath any line containing &lt;searchstring&gt;</p>
<p>/&lt;searchstring&gt;/a\<br />
&lt;newline entry&gt;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>replacescript:</p>
<p># replaces the &lt;searchstring&gt; with the &lt;newline entry&gt;</p>
<p>/&lt;searchstring&gt;/c\<br />
&lt;newline entry&gt;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>change every lowercase a, b and c to uppercase</p>
<p>sed &#8216;y/abc/ABC/&#8217; filename</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>Change every instance of &lt;string&gt; with &lt;newstring&gt;</p>
<p>sed &#8217;s/string/newstring/g&#8217; filename</p>
]]></content:encoded>
			<wfw:commentRss>http://tridenta.com/blog/2007/08/07/solaris-sed-add-delete-replace/feed/</wfw:commentRss>
		<feedburner:origLink>http://tridenta.com/blog/2007/08/07/solaris-sed-add-delete-replace/</feedburner:origLink></item>
	</channel>
</rss>
