<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5230702220013025995</id><updated>2012-02-20T11:27:59.209-05:00</updated><category term='Linux desktop'/><category term='KDE'/><category term='PCLinuxOS'/><category term='MS Windows'/><category term='Linux Format'/><category term='Patching'/><category term='Akonadi'/><category term='Open Source Tools'/><category term='ssh'/><category term='Sabayon'/><category term='ListenAddress'/><category term='sshd'/><category term='Widgets'/><category term='GNOME'/><category term='kde4'/><category term='TLP'/><category term='Mandriva'/><category term='kde 3.5'/><category term='LXF'/><category term='Operating Systems'/><category term='desklets'/><category term='Scripts'/><category term='PCLOS 2009'/><category term='SVM'/><category term='Solaris'/><category term='sshd_config'/><category term='Entropy'/><category term='Calendars'/><category term='CalDAV'/><category term='ninite.com'/><category term='Superkaramba'/><category term='google calendar'/><category term='PIM'/><category term='kde 4.1'/><category term='bind'/><category term='korganizer'/><category term='PCA'/><category term='KDE PIM'/><title type='text'>Open Source Software Rocks</title><subtitle type='html'>News, tools and general opinion about Open Source Software.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-4230919109644631167</id><published>2012-02-12T19:22:00.001-05:00</published><updated>2012-02-12T19:24:18.992-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='PIM'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='korganizer'/><category scheme='http://www.blogger.com/atom/ns#' term='google calendar'/><category scheme='http://www.blogger.com/atom/ns#' term='Akonadi'/><category scheme='http://www.blogger.com/atom/ns#' term='CalDAV'/><category scheme='http://www.blogger.com/atom/ns#' term='kde4'/><category scheme='http://www.blogger.com/atom/ns#' term='KDE PIM'/><category scheme='http://www.blogger.com/atom/ns#' term='Calendars'/><title type='text'>Sync KOrganizer and Google Calendar</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;With KDE4, there is an easy way to keep your Gmail and Google Calendar in sync with your desktop. Calendar is very important to me, I keep track of my meetings, school events, cricket(ICC), Linux Foundation events and US Holidays.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-AwGm1Og0tG4/TzhRkF1rHXI/AAAAAAAAAII/_lenaAkpMS0/s1600/KOrg-GCal-1.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: left;"&gt;&lt;img border="0" height="160" src="http://2.bp.blogspot.com/-AwGm1Og0tG4/TzhRkF1rHXI/AAAAAAAAAII/_lenaAkpMS0/s200/KOrg-GCal-1.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;DAV Groupware Resource&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;ol style="text-align: left;"&gt;&lt;li style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;Install KOrganizer using your distribution's package installer.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;Open KOrganizer and navigate to Calendars &amp;nbsp;(Configure KOrganizer- General- Calendars).&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;Click on ADD Select "DAV Groupware Resource"&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;Akonadi_davgroupware_resource &amp;nbsp;will popup, click "Cancel".&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;Now you will be able to add Akonadi Resource manually.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;Under Add server configuration, choose "CalDAV". Remote URL format is "https://www.google.com/calendar/dav/&lt;/span&gt;&lt;b style="background-color: white;"&gt;&lt;span style="color: red;"&gt;Calender_ID&lt;/span&gt;&lt;/b&gt;&lt;span style="color: blue;"&gt;/events/ . Personal calendar_id is usually your gmail email address. Public Calendars, have its own calendar IDs, which we can find under calendar settings.&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;That is it! Add all the google calendars you want to sync up. KOrganizer will run in the background. You can also configure alarms and notifications.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-3-ace4UJABI/TzhV84ipbgI/AAAAAAAAAIg/TmKI3Vx3BOU/s1600/KOrg-GCal-3.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="195" src="http://3.bp.blogspot.com/-3-ace4UJABI/TzhV84ipbgI/AAAAAAAAAIg/TmKI3Vx3BOU/s320/KOrg-GCal-3.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;CalDAV Server Configuration&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cWF7iddO_q4/TzhSsrfHncI/AAAAAAAAAIQ/Bs_A5teucBk/s1600/KOrg-GCal-2.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="152" src="http://2.bp.blogspot.com/-cWF7iddO_q4/TzhSsrfHncI/AAAAAAAAAIQ/Bs_A5teucBk/s200/KOrg-GCal-2.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Akonadi_davgroup_resource&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: blue;"&gt;Google CalDAV configuration.&lt;a href="http://support.google.com/calendar/bin/answer.py?hl=en&amp;amp;answer=99358#sunbird" target="_blank"&gt;Click on SunBird link for more information.&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-4230919109644631167?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/4230919109644631167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=4230919109644631167&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/4230919109644631167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/4230919109644631167'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2012/02/sync-korganizer-and-google-calendar.html' title='Sync KOrganizer and Google Calendar'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-AwGm1Og0tG4/TzhRkF1rHXI/AAAAAAAAAII/_lenaAkpMS0/s72-c/KOrg-GCal-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-666165611845961694</id><published>2011-05-29T08:40:00.003-04:00</published><updated>2011-05-29T08:51:21.424-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='ninite.com'/><category scheme='http://www.blogger.com/atom/ns#' term='MS Windows'/><title type='text'>Updating Open Source Applications on MS Windows</title><content type='html'>&lt;span style="color: rgb(51, 102, 255);font-size:100%;" &gt;&lt;span style="font-family: verdana;"&gt;Windows, unlike Linux, does not have an update all program. So either we rely on built-in update check or if we come across it on the Internet. There is an easier solution - introducing&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;a style="font-family: verdana; font-weight: bold;" href="http://www.ninite.com/"&gt;Ninite&lt;/a&gt;&lt;span style="font-family: verdana;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Ninite is a fast an easy way to install Open Source programs on your Windows PC. They are beginning to do the same for Linux OS too, but are currently restricted to Ubuntu based OSes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;How does it work? very simple, once you have selected the applications to install, ninite.com creates an executable, which you download and run on your PC. It in turn downloads all the applications and installs it without asking you any questions.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Keep this downloaded executable around in your Downloads folder. Say a month from the day you downloaded it, you want to update all the applications you installed, just run the ninite executable and it will update all the applications you downloaded the first time around.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;I like it because it gives a one stop shop for all Open Source products and it is easy to recommend to non-technical folks who are unaware of Open Source products.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-666165611845961694?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/666165611845961694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=666165611845961694&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/666165611845961694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/666165611845961694'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2011/05/updating-open-source-applications-on-ms.html' title='Updating Open Source Applications on MS Windows'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-518145519914825634</id><published>2009-10-07T06:52:00.001-04:00</published><updated>2009-10-07T06:52:26.049-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Operating Systems'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='PCA'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>PCA Proxy - Config and wrapper script</title><content type='html'>&lt;p&gt;&lt;font color="#0000ff"&gt;There are few ways to setup PCA with ones’ Org. The 3 main ways are:     &lt;br /&gt;1. Have each server contact and download patches directly from SunSolve. (this is usually not possible in all environments)      &lt;br /&gt;2. Have 1 server which would download patches from SunSolve. Servers within the Org would download the patches from this server for all its patch needs.      &lt;br /&gt;3. Have 1 server which would download patches, create patch bundles for other servers.       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;I use the the last 2 options within the network I support. I like the 3rd option, as it gives me easy access to Servers which are patched or at least requested patching. It also make generating reports on certain SUN alert simple, as the logs are all text files.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;For all purposes, having this single central server for PCA will be referred to as PCA Proxy, not to be confused with firewall/proxy.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;PCA Proxy Configuration has 2 parts: Apache and PCA Proxy config file itself.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Configuring Apache is simple: enable cgi-bin and point to the location where you are planning to keep your pca-proxy.cgi and you are done. pca-proxy.cgi file is the same perl script pca which has been renamed.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Here is a simple cgi test script to check apache configuration: create this file under /cgi-bin and make it &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;executable and use your browser to point to that file.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;http://pca.proxy.server.com/Patches/test.cgi (pca.proxy.server.com is your pca-proxy server and Patches is the cgi-bin directory. On my server, Patches directory is also one of the Document locations.)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;------------ Start File: test.cgi -------------------     &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font face="Courier New"&gt;#!/bin/sh       &lt;br /&gt; echo &amp;quot;Content-type: text/plain; charset=iso-8859-1&amp;quot;        &lt;br /&gt; echo        &lt;br /&gt; echo SERVER_NAME = $SERVER_NAME&lt;/font&gt;      &lt;br /&gt;------------- END File: text.cgi ------------------      &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;PCA Proxy Config file:     &lt;br /&gt;------------------------ START FILE: /etc/pca.conf on PCA Proxy ----------------------      &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;font face="Courier New"&gt;# User ID for accessing sunsolve.sun.com       &lt;br /&gt;user=xxxxxx        &lt;br /&gt;# Password for the userID for accessing sunsolve.sun.com        &lt;br /&gt;passwd=xxxxxxxx        &lt;br /&gt;# Patch Directory,         &lt;br /&gt;patchdir=/pca/Patches/        &lt;br /&gt;xrefdir=/pca/Patches/        &lt;br /&gt;wgetproxy=http://proxy.mycompany.com:80        &lt;br /&gt;syslog=user        &lt;br /&gt;dltries=5        &lt;br /&gt;threads=5        &lt;br /&gt;#ssprot=http (this tells PCA and wget to use http over https)        &lt;br /&gt;# debug=1        &lt;br /&gt;#pattern=Veritas|VERITAS|Veritas|VRTSvxfs|VRTS|VxVM|VxFS|CDE|Dt|Studio|SunVTS        &lt;br /&gt;pattern=!Emulex-Sun LightPulse Fibre Channel Adapter driver        &lt;br /&gt;ignore=Veritas|VERITAS|VRTS|VxVM|VxFS|NetBackup|Netbackup&lt;/font&gt;      &lt;br /&gt;------------------------ END FILE: /etc/pca.conf on PCA Proxy ----------------------&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;My server configuration is straight forward.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;/pca/Patches: Patches from SunSolve are downloaded and stored, directory where pca-proxy.cgi is stored. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;/pca/PatchBundles: Directory where final patch bundles created are stored.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;/pca/Scripts: Directory for scripts.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;/pca/Reports/Remote: Directory for patch listings in html format. html filename reflects the server name and date created.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;/pca/Servers/Stage: Configuration Tar file from a remote server for which Patch Bundle has to be created. Tar file is created using the following commands on the remote server: &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;------------------------- Start File: Create_Conf_Tar.sh --------------------&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;mkdir `hostname`     &lt;br /&gt;cd `hostname`      &lt;br /&gt;uname -a &amp;gt; uname.out      &lt;br /&gt;showrev -p &amp;gt; showrev.out      &lt;br /&gt;pkginfo -x &amp;gt; pkginfo.out      &lt;br /&gt;cd ../      &lt;br /&gt;tar -cf `hostname`.tar `hostname`&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;------------------------- End File: Create_Conf_Tar.sh --------------------&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Once this file has been created, it is copied to pca-proxy-server:/pca/Servers/Stage via NFS or SCP.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Here is my wrapper script to create a patch bundle on the PCA Proxy server:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;-------------------- Start File: /pca/Scripts/Create_Patch_Bundle.sh ----------------------------&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;#!/usr/bin/ksh     &lt;br /&gt;#      &lt;br /&gt;#####################################################################      &lt;br /&gt;#      &lt;br /&gt;# What does this Script do?      &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160; - Generates the Patch Bundle for the Server whose Configuration tar file has been untarred under /pca/Servers/Remote      &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160; - Patch Bundle will include:      &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; a. Patches to be installed.      &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; b. installpatches.sh script to install the patches.      &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c. uninstallpatches.sh script to uninstall the patches that were installed.      &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; d. patch_order file      &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; e. missing patch list report and html version with links to sunsolve.sun.com      &lt;br /&gt;#      &lt;br /&gt;#####################################################################      &lt;br /&gt;# Version History:      &lt;br /&gt;#      &lt;br /&gt;#####################################################      &lt;br /&gt;## VARIABLE DEFENITION      &lt;br /&gt;#####################################################      &lt;br /&gt;TODAY=`date +%Y.%d.%m`      &lt;br /&gt;PCA=&amp;quot;/usr/bin/pca&amp;quot;      &lt;br /&gt;WGET=&amp;quot;/usr/bin/wget&amp;quot;      &lt;br /&gt;PCACONF=&amp;quot;/etc/pca.conf.min&amp;quot;      &lt;br /&gt;XREFDIR=&amp;quot;/pca/Patches&amp;quot;      &lt;br /&gt;PCAPROXY=&amp;quot;pcaproxy.mycompany.com&amp;quot;      &lt;br /&gt;PATCHXREF=&amp;quot;patchdiag.xref.Feb.27.09&amp;quot;      &lt;br /&gt;FROMFILESDIR=&amp;quot;/pca/Servers/Remote&amp;quot;      &lt;br /&gt;STAGINGDIR=&amp;quot;/pca/Servers/Stage&amp;quot;      &lt;br /&gt;STAGE2DIR=&amp;quot;/pca/Servers/Stage2&amp;quot;      &lt;br /&gt;STORETARSDIR=&amp;quot;/pca/Servers/Tars&amp;quot;      &lt;br /&gt;TEMPDIR=&amp;quot;/pca/tmp&amp;quot;      &lt;br /&gt;REPORTDIR=&amp;quot;/pca/Reports/Remote&amp;quot;      &lt;br /&gt;SCRIPTSDIR=&amp;quot;/pca/Scripts&amp;quot;      &lt;br /&gt;PCAPDIR=&amp;quot;/pca/Patches&amp;quot;      &lt;br /&gt;PATCHBUNDLEDIR=&amp;quot;/pca/PatchBundles&amp;quot;      &lt;br /&gt;PATCHGROUP=&amp;quot;missing&amp;quot;      &lt;br /&gt;PCAEMAILDISTRO=&lt;/font&gt;&lt;a href="mailto:root@pcaproxy.mycompany.com"&gt;&lt;font face="Courier New" color="#0000ff"&gt;root@pcaproxy.mycompany.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New" color="#0000ff"&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;######################################################     &lt;br /&gt;# Main Program Starts here.      &lt;br /&gt;###################################################### &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;# Get list of files under $STAGINGDIR &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Are there any Tar files to process?     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cd $STAGINGDIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TARLIST=`ls -1 *.tar | wc -l | awk '{print $1}'` &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if [ &amp;quot;$TARLIST&amp;quot; -gt &amp;quot;0&amp;quot; ]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; then &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Since we cannot work off STAGINGDIR, we need to move stuff around.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; mv *.tar $STAGE2DIR &amp;gt; /dev/null &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # List of Servers to process     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cd $STAGE2DIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SERVERLIST=`ls -1 *.tar | cut -d&amp;quot;.&amp;quot; -f1` &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ## Main Loop which processes the list of servers for which Patch Bundle needs to be created.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for REMOTESRV in $SERVERLIST      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; do &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ## Download Log file 1 file per server.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DWLOGFILE=/pca/PatchBundles/Log/$REMOTESRV.Download.$TODAY.log &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if [ -d $TEMPDIR/$REMOTESRV ]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cd $TEMPDIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; rm -rf $REMOTESRV &amp;gt; /dev/null      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # tar -xvf $STAGE2DIR/$REMOTESRV.tar       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; mkdir -p $REMOTESRV      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # tar -xvf $STAGE2DIR/$REMOTESRV.tar      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; mkdir -p $TEMPDIR/$REMOTESRV      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ## Define TARGETDIR     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TARGETDIR=&amp;quot;$TEMPDIR/$REMOTESRV&amp;quot; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # UnTar the Remote Server Config files under $TARGETDIR     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cd $TEMPDIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; tar -xf $STAGE2DIR/$REMOTESRV.tar &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ## Test if the files were created and are at the right place.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;===================================&amp;quot; &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;========= Run Date: $TODAY ===========&amp;quot; &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;===================================&amp;quot; &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ls -ld $TARGETDIR &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ls -la $TARGETDIR &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cd $STAGE2DIR &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp $REMOTESRV.tar $TARGETDIR &amp;gt;&amp;gt; $DWLOGFILE &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Check if the OS is Solaris 5.8 and set it to the latest patchdiag.xref.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # By doing this, we ensure that all patches up to April 01 2009 are bundled.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; OSVER=`awk '{print $3}' uname.out`      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if [ $OSVER = &amp;quot;5.8&amp;quot; ]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PATCHXREF=&amp;quot;patchdiag.xref.Apr.24.09&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Move the Server Config Tar file to Archive $STORETARSDIR     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; mv $STAGE2DIR/$REMOTESRV.tar $STORETARSDIR/$REMOTESRV.$TODAY.tar      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ls -ld $STORETARSDIR/$REMOTESRV.$TODAY.tar &amp;gt;&amp;gt; $DWLOGFILE &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Copying PatchDiag.Xref, pca and Config Files to Target Directory.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp $XREFDIR/$PATCHXREF $TARGETDIR/patchdiag.xref      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp /usr/bin/pca $TARGETDIR &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # START CREATE-PO-UPO BLOCK - Create Report, Patch Order File and Uninstall Patch Order File.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # echo &amp;quot;Creating: Report, Patch_Order and Uninstall Patch Order files:&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # pca -y --xrefdir=$TARGETDIR --fromfiles=$TARGETDIR -l $PATCHGROUP &amp;gt; /tmp/$REMOTESRV.$PATCHGROUP.patch.txt       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pca -y --xrefdir=$TARGETDIR --fromfiles=$TARGETDIR --format '%p-%c # %y' --noheader -l $PATCHGROUP &amp;gt; $TARGETDIR/$REMOTESRV.$PATCHGROUP.patches.lst      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pca -y --xrefdir=$TARGETDIR --fromfiles=$TARGETDIR --format '%p-%c # %y' --noheader -L $PATCHGROUP &amp;gt; $TARGETDIR/$REMOTESRV.$PATCHGROUP.patches.html &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #Remove unwanted text from the output     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # egrep -v &amp;quot;Downloading|Trying|Using|List&amp;quot; /tmp/$REMOTESRV.$PATCHGROUP.patch.txt &amp;gt; $TARGETDIR/$REMOTESRV.$PATCHGROUP.patches.lst      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # egrep -v &amp;quot;Downloading|Trying|Using|List&amp;quot; /tmp/$REMOTESRV.$PATCHGROUP.patch.html &amp;gt; $TARGETDIR/$REMOTESRV.$PATCHGROUP.patches.html &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Copy Report to Reports Directory.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp $TARGETDIR/$REMOTESRV.$PATCHGROUP.patches.html $REPORTDIR &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Creating Patch_Order File     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # grep ^1 $TARGETDIR/$REMOTESRV.$PATCHGROUP.patches.lst&amp;#160; | awk '{print $1&amp;quot;-&amp;quot;$4}' &amp;gt;&amp;gt; $TARGETDIR/patch_order      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; awk '{print $1}' $TARGETDIR/$REMOTESRV.$PATCHGROUP.patches.lst&amp;#160; &amp;gt; $TARGETDIR/patch_order &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Creating Uinstall Patch Order File     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; tail -r $TARGETDIR/patch_order &amp;gt; $TARGETDIR/uninstall_patch_order &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Copy install and uninstall scripts to Target directory.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp $PCAPDIR/installpatches.sh $TARGETDIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp $PCAPDIR/uninstallpatches.sh $TARGETDIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp $PCAPDIR/luinstpatches.sh $TARGETDIR &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Copy pca.conf to TARGETDIR     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp /etc/pca.conf.min $TARGETDIR/pca.conf &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # END CRPT-PO-UPO BLOCK &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # START CREATE PATCH BUNDLE BLOCK - Create Patch Bundle for Remote Server.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # echo &amp;quot;Creating Patch Bundle:&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pca -y --xrefdir=$TARGETDIR --patchdir=$TARGETDIR --fromfiles=$TARGETDIR --patchurl=file:/pca/Patches -d $PATCHGROUP &amp;gt;&amp;gt;&amp;#160; $DWLOGFILE &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Check if all the patches were downloaded.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cd $TARGETDIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SUMOFPATCHES=`wc -l $TARGETDIR/patch_order | awk '{print $1}' `      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SUMOFZIPS=`ls -1 1* | wc -l | awk '{print $1}' ` &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if [ $SUMOFPATCHES -ne $SUMOFZIPS ]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Some Patches might not have downloaded, please add them manually from /pca/Patches and create a TAR File.&amp;quot; &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Reason: $SUMOFPATCHES not equal to $SUMOFZIPS.&amp;quot; &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; rm -f /tmp/$REMOTESRV &amp;gt; /dev/null      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Reason: $SUMOFPATCHES not equal to $SUMOFZIPS.&amp;quot; &amp;gt; $REMOTESRV      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Downloaded Patch Files are located here: $TARGETDIR &amp;quot; &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;ABORT!&amp;quot; &amp;gt;&amp;gt; $DWLOGFILE      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;ABORT!&amp;quot; &amp;gt;&amp;gt; $REMOTESRV      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Patch Bundle Creation Failure Notice: $REMOTESRV&amp;quot; &amp;gt;&amp;gt; /tmp/$REMOTESRV      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /usr/bin/mailx -s &amp;quot;Patch Bundle Failure Notice: $REMOTESRV&amp;quot; -r pcaproxy&lt;/font&gt;&lt;a href="mailto:pcaproxy@pcaproxy.mycompany.com"&gt;&lt;font face="Courier New" color="#0000ff"&gt;@pcaproxy.mycompany.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New" color="#0000ff"&gt; $PCAEMAILDISTRO&amp;#160; &amp;lt; /tmp/$REMOTESRV&amp;#160; 2&amp;gt;&amp;amp;1     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; exit      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if [ $SUMOFPATCHES -eq $SUMOFZIPS ]     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; rm -f /tmp/$REMOTESRV &amp;gt; /dev/null      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cd $TARGETDIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cat uname.out &amp;gt; /tmp/$REMOTESRV      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; wc -l patch_order &amp;gt;&amp;gt; /tmp/$REMOTESRV      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cd $TEMPDIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; tar -cf $REMOTESRV.$TODAY.tar $REMOTESRV      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; mv $REMOTESRV.$TODAY.tar $PATCHBUNDLEDIR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; rm -rf $REMOTESRV &amp;gt; /dev/null      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /usr/bin/mailx -s &amp;quot;Patch Bundle Creation Success Notice: $REMOTESRV&amp;quot; -r &lt;/font&gt;&lt;a href="mailto:pca@pcaproxy.mycompany.com"&gt;&lt;font face="Courier New" color="#0000ff"&gt;pca@pcaproxy.mycompany.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New" color="#0000ff"&gt; $PCAEMAILDISTRO &amp;lt; /tmp/$REMOTESRV 2&amp;gt;&amp;amp;1     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; done &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;No Server Config Files to Process&amp;quot; &amp;gt;&amp;gt; $DWLOGFILE &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;########################################################     &lt;br /&gt;# End of Script      &lt;br /&gt;########################################################&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;-------------------- End File: /pca/Scripts/Create_Patch_Bundle.sh ----------------------------&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Installpatches.sh call pca script to install the patches, but it also cleans up the output shown the to sysadmin. The only output seen on the screen is the patch number and the number of patches in total. For example: the output will look like this: &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;lt;root@agni40&amp;gt; ./installpatches.sh      &lt;br /&gt;Are you installing these patches in Single User Mode? [y,n] n      &lt;br /&gt;Specify your Alternate Root Directory: /PBE      &lt;br /&gt;Installing Patches to ABE: /PBE      &lt;br /&gt;Installing 119254-64 (1/138)      &lt;br /&gt;Installing 118666-18 (2/138)      &lt;br /&gt;Installing 119059-46 (3/138)      &lt;br /&gt;Installing 119117-47 (4/138)      &lt;br /&gt;Installing 138217-01 (5/138)      &lt;br /&gt;Installing 120011-14 (6/138)      &lt;br /&gt;Installing 119757-14 (7/138)      &lt;br /&gt;Installing 119783-10 (8/138)      &lt;br /&gt;Installing 120410-30 (9/138)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;All the other information like unzipping the patch, testing is written to /var/log/installpatch.log. If you are installing patches on an ABE, then this log file will be copied over to the ABE once patching has completed.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;---------------------- Start File: /pca/Patches/installpatches.sh -------------------------&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;#!/usr/bin/ksh     &lt;br /&gt;#      &lt;br /&gt;#      &lt;br /&gt;PATCHGROUP=&amp;quot;missing&amp;quot;      &lt;br /&gt;LOGDIR=/var/log      &lt;br /&gt;PATH=/usr/bin:.:$PATH      &lt;br /&gt;export PATH &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;###############################     &lt;br /&gt;# Main Program      &lt;br /&gt;############################### &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;datenow=`date +%a_%b_%d_%H:%M_%Y` &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;if [ -f $LOGDIR/installpatch.log ]     &lt;br /&gt;then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp -p $LOGDIR/installpatch.log $LOGDIR/installpatch.log.`date +%b_%d_%Y`      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;========================================&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;======= `date +%a_%b_%d_%H:%M_%Y` =======&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;========================================&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;else      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;====================================&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;====== `date +%a_%b_%d_%H:%M_%Y` ========&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;========================================&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;fi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;# Space check under /. SUN Alert 246207 - 137137-09 requires min 550 MB under (/) Root File System.     &lt;br /&gt;# &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;ROOTSIZE=`df -b / | tail -1 | awk '{print $2}'` &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;if [ &amp;quot;$ROOTSIZE&amp;quot; -lt 700000 ]     &lt;br /&gt;then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;ERROR: Not enough space under root (/) File System.&amp;quot; | tee -a $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;ERROR: A minimum of 700 MB is required for Patch installation.&amp;quot; | tee -a $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Please free up some space and try again.&amp;quot; | tee -a $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;====== `date +%a_%b_%d_%H:%M_%Y` ==========&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; exit 0      &lt;br /&gt;fi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;echo &amp;quot;Are you installing these patches in Single User Mode? [y,n] \c&amp;quot;     &lt;br /&gt;read REPLY &amp;lt; /dev/tty &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;if [ $REPLY = &amp;quot;y&amp;quot; ]     &lt;br /&gt;then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RUNLEVEL=`who -r | awk '{print $3}'`      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if [ $RUNLEVEL = &amp;quot;3&amp;quot; ]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot; &amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot; &amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot; &amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;You are trying to patch in Multi-User mode.&amp;quot; | tee -a&amp;#160; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;ABORT!&amp;quot; | tee -a&amp;#160; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; exit 0      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ROOTDIR=&amp;quot;/&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Installing patches to Live Boot Environment.&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Installing Patches to Live Boot Environment: $ROOTDIR&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pca -y --patchdir=`pwd` --xrefdir=`pwd` --root=$ROOTDIR -i $PATCHGROUP | tee -a $LOGDIR/installpatch.log | egrep &amp;quot;^Installing|Fail&amp;quot;      &lt;br /&gt;else      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Specify your Alternate Root Directory: \c&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; read ROOTDIR &amp;lt; /dev/tty      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ABEDIR=&amp;quot;$ROOTDIR&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Installing Patches to ABE: $ROOTDIR&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;Installing Patches to ABE: $ROOTDIR&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; pca -y --patchdir=`pwd` --xrefdir=`pwd` --root=$ROOTDIR -i $PATCHGROUP | tee -a $LOGDIR/installpatch.log | egrep &amp;quot;^Installing|Fail&amp;quot;      &lt;br /&gt;fi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;===================================&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;==== `date +%a_%b_%d_%H:%M_%Y` =====&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; echo &amp;quot;===================================&amp;quot; &amp;gt;&amp;gt; $LOGDIR/installpatch.log &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # Copy the patch install log file to the Patched Boot environment for future reference.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if [ $ROOTDIR != &amp;quot;/&amp;quot; ]      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; then      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; cp $LOGDIR/installpatch.log $ABEDIR/var/log/installpatch.log      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fi&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;------------------------------- End File: /pca/Patches/installpatches.sh -------------------------&lt;/font&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ee142d97-ff18-4edc-bd82-a31e9252cc75" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/PCA" rel="tag"&gt;PCA&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/Solaris+Patching" rel="tag"&gt;Solaris Patching&lt;/a&gt;,&lt;a href="http://del.icio.us/popular/PCA+wrapper+scripts" rel="tag"&gt;PCA wrapper scripts&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-518145519914825634?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/518145519914825634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=518145519914825634&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/518145519914825634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/518145519914825634'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2009/10/pca-proxy-config-and-wrapper-script.html' title='PCA Proxy - Config and wrapper script'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-6148659496230131274</id><published>2009-07-16T01:19:00.003-04:00</published><updated>2009-07-16T01:33:37.928-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sshd'/><category scheme='http://www.blogger.com/atom/ns#' term='bind'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='ListenAddress'/><category scheme='http://www.blogger.com/atom/ns#' term='sshd_config'/><title type='text'>Binding SSHD to a single ip-address on systems with multiple ipv4 interfaces</title><content type='html'>&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;I have noticed sometimes when users try their own methods of logging into servers, when they are not supposed to.&lt;br /&gt;&lt;br /&gt;What I mean is that users who have access to private network to a server would rather use that than the normal open to all network interfaces.&lt;br /&gt;&lt;br /&gt;So, if you have such situations, you can put an end to it by a simple configuration change to sshd_config file.&lt;br /&gt;&lt;br /&gt;If you look a netstat output and look at ssh, you will see something li&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div dir="ltr" align="left"&gt;&lt;span class="230523023-15072009"&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#800000;"&gt;[root@agni40 ~]# netstat -a | grep -i listen | grep  -i ssh&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr" align="left"&gt;&lt;span class="230523023-15072009"&gt;&lt;span style="font-family:Book Antiqua;color:#0000ff;"&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#800000;"&gt;tcp         0      0 &lt;strong&gt;*:ssh&lt;/strong&gt;                        *:*                         LISTEN&lt;br /&gt;tcp        0      0  localhost:x11-ssh-offset    *:*                         LISTEN&lt;br /&gt;tcp         0      0 &lt;strong&gt;*:ssh&lt;/strong&gt;                        *:*                         LISTEN&lt;br /&gt;tcp        0      0  ::1:x11-ssh-offset          *:*                          LISTEN&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;The config element we want to manipulate is: ListenAddress&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div dir="ltr" align="left"&gt;&lt;span class="230523023-15072009"&gt;&lt;span style="font-family:Courier New;color:#800000;"&gt;[root@agni40 ~]# grep ListenAddress  /etc/ssh/sshd_config&lt;br /&gt;ListenAddress 0.0.0.0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;&lt;br /&gt;Since, I have 2 ip interfaces plumbed, I am going to let sshd listen to both the interfaces.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div dir="ltr" align="left"&gt;&lt;span class="230523023-15072009"&gt;&lt;span style="font-family:Courier New;color:#800000;"&gt;[root@ ~]# grep ListenAddress  /etc/ssh/sshd_config&lt;br /&gt;ListenAddress 192.20.100.40&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="230523023-15072009"&gt;&lt;span style="font-family:Courier New;color:#800000;"&gt;ListenAddress 192.20.100.41&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;So, Lets look at netstat: (after restarting sshd --&gt; service sshd restart)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="230523023-15072009"&gt;&lt;span style="font-family:Book Antiqua;color:#0000ff;"&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#800000;"&gt;[root@agni40 ~]# netstat -a | grep -i  listen | grep -i ssh&lt;br /&gt;tcp        0      0 agni40:ssh                   *:*                         LISTEN&lt;br /&gt;tcp        0      0  localhost:x11-ssh-offset    *:*                         LISTEN&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="230523023-15072009"&gt;&lt;span style="font-family:Book Antiqua;color:#0000ff;"&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#800000;"&gt;tcp        0      0 agni41:ssh                   *:*                         LISTEN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="230523023-15072009"&gt;&lt;span style="font-family:Book Antiqua;color:#0000ff;"&gt;&lt;span style="font-family:Courier New;font-size:85%;color:#800000;"&gt;tcp         0      0 ::1:x11-ssh-offset          *:*                         LISTEN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-6148659496230131274?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/6148659496230131274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=6148659496230131274&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/6148659496230131274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/6148659496230131274'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2009/07/binding-sshd-to-single-ip-address-on.html' title='Binding SSHD to a single ip-address on systems with multiple ipv4 interfaces'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-6231470660742181669</id><published>2009-04-09T06:39:00.006-04:00</published><updated>2009-04-09T06:46:03.250-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kde 4.1'/><category scheme='http://www.blogger.com/atom/ns#' term='Entropy'/><category scheme='http://www.blogger.com/atom/ns#' term='PCLOS 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Sabayon'/><category scheme='http://www.blogger.com/atom/ns#' term='kde 3.5'/><title type='text'>Switching Distributions</title><content type='html'>&lt;span style="color: rgb(51, 51, 255); font-family: georgia;font-family:trebuchet ms;font-size:100%;"  &gt;After the disastrous expereince of upgrading to Mandriva 2009 with KDE 4.1 from the stable PCLinuxOS 2007, I mentioned that I moved to GNOME desktop and couple Linux/KDE fans commented that I should switch back to KDE 3.5 on PCLOS 2009.&lt;br /&gt;&lt;br /&gt;I spent about 2 weeks on PCLOS 2009, but things were acting funky, when PCLOS 2007 worked flawlessly on the same hardware. &lt;/span&gt;  &lt;span style="color: rgb(51, 51, 255); font-family: georgia;font-family:trebuchet ms;font-size:100%;"  &gt;I started looking at other distributions which gave a solid support for KDE 3.5 a few applications that I use on a daily basis. I gave these a try: Debian Lenny, Sabayon 4.0 r1, Kubuntu, Slackware (Oh! GOD I started with slackware back in 95) and DreamLinux.&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:100%;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: georgia;font-family:trebuchet ms;font-size:100%;"  &gt;Of these, I liked Sabayon the best. It looked solid and out of the box Compiz worked with very well. Of course, on my primary desktop, I usually disable Compiz as I do not need some eye-candy. The main selling point was not Entropy or the fact that it was Gentoo based or because it was built from Source. The selling point was that it had all the applications I use or it was only a few commands away to be installed.&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-family:georgia;font-size:100%;"  &gt;  &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: georgia;font-family:trebuchet ms;font-size:100%;"  &gt;It took me a week to understand its packaging system and learn how to search for packages to install or search for installed packages.&lt;br /&gt;&lt;br /&gt;Sabayon Forum is friendly, but not as friendly as Xandros forum. But this comparison is not fair as Xandros has a commercial backing and the moderators worked for Xandros, so had all kinds of answers and had the time to reply to questions and issues.&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-family:georgia;font-size:100%;"  &gt;  &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: georgia;font-family:trebuchet ms;font-size:100%;"  &gt;As this was my first time with Sabayon, it was hard for me to navigate to the configuration files, as they are not in the same place as Mandriva or Fedora or Ubuntu.&lt;br /&gt;&lt;br /&gt;The learning curve for the config files are quite high.&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-family:georgia;font-size:100%;"  &gt;  &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: georgia;font-family:trebuchet ms;font-size:100%;"  &gt;After all this, I am still sticking with this distribution as it is very stable and since I do not tweak with the OS - config files that much, once the system is setup, I do not have to worry about it. Of course when I did get into an issue - networking / networkmanager, there is a straight forward solution posted on the Forum, which I found using their search engine and I was on my way.&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-family:georgia;font-size:100%;"  &gt;  &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: georgia;font-family:trebuchet ms;font-size:100%;"  &gt;Like all new unknown things, as I started to setup my system as my primary desktop, I learned quite a bit about Openrc, Entropy and Spritz.&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:100%;" &gt;   &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: georgia;font-family:trebuchet ms;font-size:100%;"  &gt;For now I am very happy with this distribution.&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-family:georgia;font-size:100%;"  &gt; &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-family: georgia;font-family:trebuchet ms;font-size:100%;"  &gt;-GGR&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-6231470660742181669?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/6231470660742181669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=6231470660742181669&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/6231470660742181669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/6231470660742181669'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2009/04/switching-distributions.html' title='Switching Distributions'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-7312207795516565495</id><published>2009-03-21T01:33:00.001-04:00</published><updated>2009-03-21T09:14:40.439-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><category scheme='http://www.blogger.com/atom/ns#' term='PCLinuxOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Mandriva'/><title type='text'>KDE4 you let me down</title><content type='html'>&lt;span style="color: rgb(0, 0, 153);"&gt;I have been using KDE since version 1 came out and have always liked it over Gnome. Until recently, I would not even consider switching to or installing Gnome on my desktop. My choice of distributions always depended on a strong support of KDE: Mandriva, Xandros, PCLinuxOS, SuSE, etc.&lt;/span&gt;&lt;p style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Having been on PCLinuxOS 2007 since late 2007, I was very happy with KDE-3. I tried OpenSuSe with KDE4 and it was just horrible. Thinking that it was a SuSE thing, I let be until KDE 4.1 was released.&lt;/p&gt;&lt;p style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;I switched my main desktop from PCLinuxOS to Mandriva 2009.0. The transition was smooth and I did not have to make any changes to my home directory files. I used KDE4.1 for a about 2 months when I started getting frustrated with its weirdness and unexplained slowness. Do not get me wrong, I am running my desktop on a 2.8 GHz Core 2 Duo with 2 GB RAM, but unexplained things started happening. Mouse Clicks would not be recognised, enabling Compiz would bring about more weirdness.&lt;/p&gt;&lt;p style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;So I gave LXDE a try. I set it up on my test machine, as I did not want to mess with my main desktop unless I was very sure to switch to it. LXDE is light and very fast. But as with all new software applications, it is riddled with bugs. But with all the bugs, it was still quite usable.&lt;/p&gt;&lt;p style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Being able to use alone was not enough for me as my main desktop at home is Linux and I had switched from PCLinuxOS to Mandriva. The advantage was that I had newer applications I wanted to use. Down side to it was that most of the applications were less stable. &lt;/p&gt;&lt;p style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;So I tried Gnome (2.24) on Sabayon Linux's latest 4.0 rc1 release and I liked what I saw. I was able to do all the things I was able to do with KDE 3.x and I did not have the slowness anymore. So on my main desktop, I installed Gnome from Mandriva's control panel.&lt;/p&gt;&lt;p style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;It is ironic that I have hated Gnome desktop from the begining and now I am starting to like it very much.&lt;/p&gt;&lt;p style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;KDE4, you have let me down and now I have switched to Gnome.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-7312207795516565495?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/7312207795516565495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=7312207795516565495&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/7312207795516565495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/7312207795516565495'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2009/03/kde4-you-let-me-down-i-have-been-using.html' title='KDE4 you let me down'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-5116964458032113872</id><published>2009-03-20T23:36:00.001-04:00</published><updated>2009-03-21T09:12:31.613-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patching'/><category scheme='http://www.blogger.com/atom/ns#' term='TLP'/><category scheme='http://www.blogger.com/atom/ns#' term='PCA'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>PCA to the rescue</title><content type='html'>&lt;span style="font-family: verdana; color: rgb(0, 0, 153);"&gt;If you are like me working as a System Administrator for many Solaris Servers, then you have probably encountered the one major issue with UNIX based systems - Patching.&lt;/span&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Patching is a pain irrespective of which Unix based OS you choose. Of course Linux, which is not truely UNIX variant is slightly easier.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Patching Solaris servers is not easy, there is no "mock install" or "install, but do not commit" like in AIX. On Solaris, you would usually patch the server in Single user mode, which would mean major downtime for the application, if the OS was not patched for more than a year.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;That is one of the reasons why companies have a patching strategy for UNIX based servers. The other reason being, UNIX is not perfect or to the matter of fact no human written software is perfect.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;SUN has had a number of ways to patch its servers. Over the years there have been many tools, which are complex to configure and have it working effectively in an environment of different sizes. You can read more about Patching for Solaris OS &lt;a href="http://www.sun.com/bigadmin/sundocs/articles/patch-faq.jsp"&gt;here&lt;/a&gt;, &lt;a href="http://www.sun.com/bigadmin/xperts/sessions/24_patching/"&gt;here&lt;/a&gt; and &lt;a href="http://www.sun.com/bigadmin/patches/"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;PCA - &lt;a href="http://www.par.univie.ac.at/solaris/pca/"&gt;Patch Check Advanced&lt;/a&gt; is a simple tool written by Martin Paul in Perl, which comes to aid of the System Admins who are taxed by this patching burden. PCA is fully Open Source and Martin has done a great job on it. It is very easy to use and integrate into any environment, may it be 10 servers are 2000 servers. It uses the patchdiag.xref file that SUN publishes on a daily basis (or whenever they come out with new patches) on the &lt;a href="http://sunsolve.sun.com/patchdiag.xref"&gt;web&lt;/a&gt;. PCA uses this published xref - cross reference file to analyse, list, download and install patches. &lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Do not think that it is non-standard and would not fly in your corporate world. Trust me, it took me almost 1.5 years to convince my management to look at a presentation I made for PCA. Underneath the hood, PCA uses showrev -p, pkginfo -x and uname -a; outputs to analyse and list the patches required for a system. &lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;At my office, we use PCA's local Proxy feature, where we dedicate 1 server to download and store the patches from Sunsolve and the rest of the servers within your LAN contacts this PCA-Proxy server for its patch needs, instead of sending requests to Sunsolve directly. This reduces the download time drastically. We migrated from TLP (Traffic Light Patching) to PCA, the switch has been smooth and has been welcome from many Engineers in my company.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;TLP took about 4 hours to 3 days to create patch bundles if there were any where from 1 to 20 server requests in queue. PCA on the other hand takes is about 6 to 7 minutes for each server, depending on the size of patch bundle. We used to use run pca client on each server to download Patches from the PCA Proxy server, but got into a fix as we have too many different networks and sometimes wget and pca would fail to see the proxy server, so we resorted to creating a patch bundle tar file on the main PCA Proxy server and then use wget to download those tar files.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Since we download the PCA Config files from servers to the PCA Proxy server, we can now create reports as to how many servers were patched and how many patches did each server get. If we need to track a bad patch, we can track that too. Since PCA can create both text and html output, a simple shell script will get us that report very quickly.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;We switched to PCA in July last year and it took me a couple of months to tailor the wrapper script to our needs, which internally call the PCA script. Since November last year our teams have patched over 140 servers with an average of 280 patches per server. One of my test servers (Solaris 8 ) I patched had about 465 patches, as it was not patched in years. &lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Since PCA uses "patchadd" internally, the logs it creates for patch success or failure is good enough for debugging. From time to time, if we (PCA user community) find any issues with PCA patching, Martin (creator of PCA) is more than glad to fix those bugs and add work arounds within the PCA. One such bug was with SUN's 122660 cyclic dependency on obsoleted patches. When this was brought up, Martin gracefully added the work around into PCA. Before that, we had to have that logic in our wrapper script.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;If you are in a bind and need help, there is an online &lt;a href="http://www.par.univie.ac.at/solaris/pca/lists.html"&gt;discussion and support&lt;/a&gt; list you can subscribe to.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;In the following posts, I will post our PCA Proxy configuration, wrapper scripts for your reference.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-5116964458032113872?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/5116964458032113872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=5116964458032113872&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/5116964458032113872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/5116964458032113872'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2009/03/pca-to-rescue-if-you-are-like-me.html' title='PCA to the rescue'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-2946864404229494652</id><published>2009-03-20T22:34:00.001-04:00</published><updated>2009-03-21T09:13:41.067-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux Format'/><category scheme='http://www.blogger.com/atom/ns#' term='LXF'/><title type='text'>I fell in love with Linux format</title><content type='html'>&lt;span style="font-family: verdana; color: rgb(0, 0, 153);"&gt;I must have been under a rock for all these years for not reading an amazing Linux Magazine - Linux Format. I have been tinkering with Linux since 1995, when I first laid my eyes on Slackware Linux 1.0, but this is the first time I have felt that I have missed something in the Open Source world. Last month in our LUG meet, someone brought in a basket full of Linux Format magazines for us to take. Granted they were issues from few months back, but I took a shot at it and took back 3 magazines.&lt;/span&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;I do not remember the last time when I read an entire magazine from the first page to the very end. Yes, some of those articles were not new to me, but to read their views and expert opinions was just great.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Two weeks after I got those magazines, I went ahead and subscribed to it. It was $125 for 13 issues. I get about 6 magazines every month, most of them free, but none of them I felt this strongly about.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;The best part is that their &lt;a href="http://www.linuxformat.co.uk/"&gt;website&lt;/a&gt; has an archive where you can download (if you are a subscriber) each article or the entire magazine in zip format to read it on the computer. They are all in PDF format, so it is platform independent.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;Having read PC Magazine and PC World for years, this magazine is fresh and the articles, link, tutorials and LXF picks are just great to read. It looks like this magazine has been around for at least 5 or 6 years and wonder why I have never heard of it.&lt;/p&gt;&lt;p style="font-family: verdana; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;If you happen to stop by at Borders or any other book store, do look for this magazine and spend 10 minutes. I bet you will fall in love with it too, as I did.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-2946864404229494652?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/2946864404229494652/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=2946864404229494652&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/2946864404229494652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/2946864404229494652'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2009/03/i-fell-in-love-with-linux-format-i-must.html' title='I fell in love with Linux format'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-2811417612144019966</id><published>2008-12-15T09:20:00.004-05:00</published><updated>2009-03-21T09:15:18.225-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patching'/><category scheme='http://www.blogger.com/atom/ns#' term='SVM'/><category scheme='http://www.blogger.com/atom/ns#' term='PCA'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>How to Patch a Live Server whose disks are mirrored using SVM</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span style="color: rgb(0, 0, 153);font-family:georgia;" &gt;SUN has really done a good job of creating the Live upgrade (LU) process and providing tools supporting this methodology. Of course SUN could make things better, but who or what is perfect in the Software world?&lt;br /&gt;&lt;br /&gt;So how does one patch a server running SVM and has a mirrored root? Sounds complex? Well that is what most of the System Administrators would say. But in reality, it is like any other process, while it is still in the unknown, things are difficult and once you have followed the process and come across some hardship, things seem easier the second time around.&lt;br /&gt;&lt;br /&gt;Meta devices: I am not going to explain what they are as &lt;a href="http://docs.sun.com/app/docs/doc/816-4520?l=en&amp;amp;q=solaris++volume+manager" target="_blank"&gt;SUN's documentation&lt;/a&gt; is pretty good in this regard.&lt;br /&gt;&lt;br /&gt;Mirroring root disk using SVM: I might write about it at a later date. There are a number of web-site which deal with that already.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What information you need to backup:&lt;/b&gt;&lt;br /&gt;1. metastat &amp;gt; /var/backup/metastat.cmd&lt;br /&gt;2. metastat -p &amp;gt; /var/backup/metastat-p.cmd&lt;br /&gt;3. metadb &amp;gt; /var/backup/metadb.cmd&lt;br /&gt;4. cp /etc/vfstab &amp;gt; /var/backup/vfstab.file&lt;br /&gt;5. : | format &amp;gt; /var/backup/format.cmd&lt;br /&gt;&lt;br /&gt;Before you remove a submirror for the use of patching, make sure the disks are in sync.&lt;br /&gt;#==&amp;gt; lockfs -af&lt;br /&gt;&lt;br /&gt;Detach the submirror from the mirrored meta-device. On my root disk I have 5 slices used by the OS and 1 slice used for MetaDB&lt;br /&gt;Slice 0 --&amp;gt; /&lt;br /&gt;Slice 1 --&amp;gt; swap&lt;br /&gt;Slice 5 --&amp;gt; /var&lt;br /&gt;Slice 6 --&amp;gt; /home&lt;br /&gt;Slice 7 --&amp;gt; /software&lt;br /&gt;&lt;br /&gt;Slice 4 --&amp;gt; Meta DB&lt;br /&gt;&lt;br /&gt;d0 is a mirror for d10 and d20.&lt;br /&gt;&lt;br /&gt;In my example, I am going to detach d2x submirror disks from dx mirror.&lt;br /&gt;&lt;br /&gt;#==&amp;gt; for each_slice in 0 1 5 6 7&lt;br /&gt;&amp;gt; do&lt;br /&gt;&amp;gt; metadetach d$each_slice d2$each_slice&lt;br /&gt;&amp;gt; metaclear d2$each_slice&lt;br /&gt;&amp;gt; done&lt;br /&gt;&lt;br /&gt;This will detach all the slices from the mirror and clear the meta device defenitions.&lt;br /&gt;&lt;br /&gt;Now, I usually go an label the disk as I had issues with one of my test servers. I used auto Labeling:&lt;br /&gt;&lt;br /&gt;format c1t11d0&lt;br /&gt;format&amp;gt; type&lt;br /&gt;&amp;gt; 0 (auto label and format)&lt;br /&gt;format&amp;gt; label&lt;br /&gt;format&amp;gt; quit&lt;br /&gt;&lt;br /&gt;This will remove all slices on the disk and label it. Now clear all existing slices and create the slices as per you requirement. I have 72 GB disks so I slice it thus:&lt;br /&gt;Slice 0 --&amp;gt; 10 GB --&amp;gt; /&lt;br /&gt;Slice 1 --&amp;gt; 10 GB --&amp;gt; swap&lt;br /&gt;Slice 5 --&amp;gt; 10 GB --&amp;gt; /var&lt;br /&gt;Slice 6 --&amp;gt; 10 GB --&amp;gt; /home&lt;br /&gt;Slice 7 --&amp;gt; 15 GB --&amp;gt; /software&lt;br /&gt;&lt;br /&gt;Since I use Live Upgrade method, it is not required to run newfs on the disk slices. But if you like to, then:&lt;br /&gt;&lt;br /&gt;for iii in 0 5 6 7&lt;br /&gt;&amp;gt; do&lt;br /&gt;&amp;gt; echo "y" | newfs -m 2 /dev/rdsk/c1t11d0s$iii&lt;br /&gt;&amp;gt; done&lt;br /&gt;&lt;br /&gt;Run "lucreate" to copy the live OS to the spare (c1t11d0) disk.&lt;br /&gt;&lt;br /&gt;lucreate -c "Solaris_10" -m /:/dev/dsk/c1t11d0s0:ufs -m -:/dev/dsk/c1t11d0s1:swap -m /var:/dev/dsk/c1t11d0s5:ufs -m /home:/dev/dsk/c1t11d0s6:ufs -m /software:/dev/dsk/c1t11d0s7 -n "Solaris_10_Patch_BE" -l /var/log/lucreate.log&lt;br /&gt;&lt;br /&gt;Here Solaris_10 will be the name for the current BE (boot environment) and Solaris_10_Patch_BE will be the name for our Alternate Boot Environment which we will use to patch the OS.&lt;br /&gt;&lt;br /&gt;Once this is done, mount the ABE:&lt;br /&gt;#==&amp;gt; lumount Solaris_10_Patch_BE&lt;br /&gt;/.alt.Solaris_10_Patch_BE&lt;br /&gt;&lt;br /&gt;Verfy /.alt.Solaris_10_Patch_BE/etc/vfstab is pointing the correct disks and not meta devices.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Check for swap space and see what device it has used for the swap. On&lt;br /&gt;one of my servers, LU used the Live System's swap slice and pointed&lt;br /&gt;swap to the meta device.&lt;br /&gt;&lt;br /&gt;Patch the BE either by using "luupgrade" command or PCA. (I will write more about how I am using PCA in the next few days)&lt;br /&gt;&lt;br /&gt;Once this is done, you are ready to reboot to the Patched BE.&lt;br /&gt;&lt;br /&gt;Note: If you have eTrust installed, after patching, /etc/name_to_sysnum will be changed. Copy over the original file (/etc/name_to_sysnum.old) before you reboot the server.&lt;br /&gt;&lt;br /&gt;Once you are satisfied with your Patched BE, it is time to activate it and reboot the server.&lt;br /&gt;&lt;br /&gt;#==&amp;gt; luumount Solaris_10_Patch_BE&lt;br /&gt;#==&amp;gt; luactivate Solaris_10_Patch_BE&lt;br /&gt;&lt;br /&gt;Set boot-device to the newly Patched BE disk:&lt;br /&gt;#==&amp;gt; eeprom boot-devive="/path/to/disk@0,0:a&lt;br /&gt;&lt;br /&gt;Reboot the server:&lt;br /&gt;#==&amp;gt; shutdown -i6 -g0 -y&lt;br /&gt;&lt;br /&gt;Once the Server has booted back and you are satisfied that the OS is behaving as it should and that the applications and databases are running as they should, it is time to encapsulate the boot disk and mirror the disk back to the other disk:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 1: Clear the old meta devices: (mirror)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;#==&amp;gt; metaclear d0&lt;br /&gt;&lt;br /&gt;Since I have 5 slices, I will use a for loop so as to save time:&lt;br /&gt;&lt;br /&gt;for each_slice in 0 1 5 6 7&lt;br /&gt;&amp;gt; do&lt;br /&gt;&amp;gt; metaclear d$each_slice&lt;br /&gt;&amp;gt; done&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 2: Create replica of the meta DB on the new disk:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;metadb -a -c 3 c1t11d0s4&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 3: Define meta device for each slice:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Initialise the meta device&lt;br /&gt;#==&amp;gt; metainit -f d20 1 1 c1t11d0s0&lt;br /&gt;&lt;br /&gt;Add it to the mirror:&lt;br /&gt;#==&amp;gt; metainit d0 -m d20&lt;br /&gt;&lt;br /&gt;I like to use the for loop here too as it will save time:&lt;br /&gt;&lt;br /&gt;for each_slice 0 1 5 6 7&lt;br /&gt;&amp;gt; do&lt;br /&gt;&amp;gt; metainit -f d2$each_slice 1 1 c1t11d0s$each_slice&lt;br /&gt;&amp;gt; metainit d$each_slice -m d2$each_slice&lt;br /&gt;&amp;gt; done&lt;br /&gt;&lt;br /&gt;Set Meta Root slice&lt;br /&gt;#==&amp;gt; metaroot d0&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 4: Verify /etc/vfstab and reboot the server:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once this is done, you should edit /etc/vfstab to make sure that all FS are pointing to the meta devices.&lt;br /&gt;&lt;br /&gt;Reboot the server to make sure that the disk is functioning as it should:&lt;br /&gt;#==&amp;gt; lockfs -af&lt;br /&gt;#==&amp;gt; shutdown -i0 -g0 -y&lt;br /&gt;&lt;br /&gt;OK&amp;gt; boot&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 5: Mirror boot disk:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once the server has booted and you have verified that the applications, Database and the OS are functioning as they should, it is time to mirror the root/boot disk.&lt;br /&gt;&lt;br /&gt;#==&amp;gt; for each_meta_disk in 0 1 5 6 7&lt;br /&gt;&amp;gt; do&lt;br /&gt;&amp;gt; metattach d$each_meta_disk d1$meta_disk&lt;br /&gt;&amp;gt; done&lt;br /&gt;&lt;br /&gt;For my server(v240), it took about about 1 to 1.5 hours for the OS to sync between the disks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I am not an expert in SVM, but have had my share of frustration with it and the best way to deal with it is to document even the smallest process, so other Engineers who might be new to the process can skip the learning curve and learn from my experiences.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-2811417612144019966?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/2811417612144019966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=2811417612144019966&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/2811417612144019966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/2811417612144019966'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/12/how-to-patch-live-server-whose-disks.html' title='How to Patch a Live Server whose disks are mirrored using SVM'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-184562221350127687</id><published>2008-08-16T11:42:00.004-04:00</published><updated>2009-03-21T09:19:14.442-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='Widgets'/><category scheme='http://www.blogger.com/atom/ns#' term='Superkaramba'/><category scheme='http://www.blogger.com/atom/ns#' term='desklets'/><title type='text'>Desktop Widgets or goodies the Linux Way - SuperKaramba</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;I was always amazed by the desktop goodies which was available on Linux desktop, namely SuperKaramba. I know that there is still a lot for me to learn about them. Since I am not a programmer, I cannot understand nor do I want to understand/learn Python.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;For those of you who are like me, there is a simple way to write small, yet functional scripts to use on a daily basis.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;Here are a few scripts I wrote after looking up the man page or programming syntax:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;1. Date, Time Widget: (SimpleCalendar.theme)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;karamba right=true locked=false w=200 h=110 interval=1000&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Karamba Calls the Program&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Locked: Tell SuperKaramba if you want the widget locked by default or leave it movable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# W -&gt; Width, H -&gt; Height, specify the Width and Height of your Widget Window&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Interval: polling or refresh rate&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Grouping your scripts together makes it easy to debug.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;&gt;&lt;br /&gt;defaultfont align="center" color=255,255,255&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;## image x=0 y=0 path="backgroud.png"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# If you want to have an image for your background. If you leave it as it is&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# your widget will be transparent.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=65 y=20 font="georgia" fontsize=21 sensor=time format="MMMM"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=65 y=40 font="georgia" fontsize=40 sensor=time format="d"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=65 y=85 font="georgia" fontsize=21sensor=time format="dddd"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Use fonts which are installed on your system, I like Georgia Font.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;defaultfont align="left" color=255,255,255&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=110 y=35 font="georgia" fontsize=35 shadow=1 sensor=time &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;format="hh:mm"&lt;br /&gt;&lt; /group &gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;2. Amarok Listing:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Title of Group&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;&gt;&lt;br /&gt;text x=70 y=5 value="AmaRok" color=255,255,255 shadow=1 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;bgcolor=100,100,100 fontsize=16 font="neuropol"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Album Currently Playing&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=240 y=30 sensor=program program="dcop amarok player album" interval=1000 line=1 align=right color=255,255,255 shadow=1 bgcolor=100,100,100 fontsize=10 font="Sans"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Artist&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=17 y=42 value="Artist:" align=left color=255,255,255 shadow=1 bgcolor=100,100,100 fontsize=10 font="Sans"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=240 y=42 sensor=program program="dcop amarok player artist" line=1 align=right color=255,255,255 shadow=1 bgcolor=100,100,100 fontsize=10 font="Sans" interval=1000&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Song Title&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=17 y=54 value="Title:" align=left color=255,255,255 shadow=1 bgcolor=100,100,100 fontsize=10 font="Sans"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=240 y=66 sensor=program program="dcop amarok player title" line=1 align=right color=255,255,255 shadow=1 bgcolor=100,100,100 fontsize=10 font="Sans" interval=1000&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;# Song Time&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=17 y=78 value="Time:" align=left color=255,255,255 shadow=1 bgcolor=100,100,100 fontsize=10 font="Sans"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-family:courier new;"&gt;text x=240 y=78 sensor=program program="dcop amarok player currentTime" line=1 align=right color=255,255,255 shadow=1 bgcolor=100,100,100 fontsize=10 font="Sans" interval=1000&lt;br /&gt;&lt; /group &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;There are other items which are very easy to program like the CPU speed, temperature, load, Network traffic, etc. You can find some of the defenition &lt;a href="http://karamba.sourceforge.net/?a=docs/sensors"&gt;here&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-184562221350127687?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/184562221350127687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=184562221350127687&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/184562221350127687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/184562221350127687'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/08/desktop-widgets-or-goodies-linux-way.html' title='Desktop Widgets or goodies the Linux Way - SuperKaramba'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-917132921424935896</id><published>2008-08-16T03:13:00.002-04:00</published><updated>2008-08-16T03:20:06.539-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Operating Systems'/><category scheme='http://www.blogger.com/atom/ns#' term='Scripts'/><title type='text'>Reading / Writing Kernel Values on Solaris</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;Of course this is not recommended by SUN, but if you are testing something and do not have time to reboot, this will work in DEV environment, please do not try this in Production.&lt;br /&gt;Reading Kernel Values from Live Kernel And writing back into Live Kernel:&lt;br /&gt;&lt;br /&gt;root--&gt; echo 'snooping/D' | adb -k /dev/ksyms /dev/mem&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;&lt;br /&gt;physmem 7ea54&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;snooping:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;snooping:       0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;root--&gt; echo 'snooping/W 0t1' | adb -kw /dev/ksyms /dev/mem&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;physmem 7ea54&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;snooping:       0               =       0x1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;root--&gt; echo 'snoop_interval/W 0t50000000' | adb -kw /dev/ksyms /dev/mem&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;&lt;br /&gt;physmem 7ea54&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;snoop_interval: 0x7270e00       =       0x2faf080&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;root--&gt; echo 'snoop_interval/D' | adb -k /dev/ksyms /dev/mem&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;&lt;br /&gt;physmem 7ea54&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;&lt;br /&gt;snoop_interval:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;&lt;br /&gt;snoop_interval: 50000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;root--&gt; echo 'snoop_interval/W 0t120000000' | adb -kw /dev/ksyms /dev/mem&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;physmem 7ea54&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;snoop_interval: 0x2faf080       =       0x7270e00&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;root--&gt; echo 'snoop_interval/D' | adb -k /dev/ksyms /dev/mem&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;physmem 7ea54&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;snoop_interval:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;snoop_interval: 120000000&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;root--&gt; echo 'maxusers/D' | adb -k /dev/ksyms /dev/mem&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;physmem 7ea54&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;maxusers:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;maxusers:       2048&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;&lt;br /&gt;&lt;br /&gt;root--&gt; adb -k -P adb: /dev/ksyms /dev/mem&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;physmem 7ea54&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;&lt;br /&gt;adb:maxusers/D&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;maxusers:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;maxusers:       2048&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;adb:maxusers/X&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;maxusers:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);font-family:courier new,monospace;" &gt;maxusers:       800&lt;br /&gt;&lt;br /&gt;If you know the kernel value you want to check, you can use this logic to get/set the value.&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-917132921424935896?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/917132921424935896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=917132921424935896&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/917132921424935896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/917132921424935896'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/08/reading-writing-kernel-values-on.html' title='Reading / Writing Kernel Values on Solaris'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-7542356382062011250</id><published>2008-08-16T02:59:00.003-04:00</published><updated>2008-08-16T03:09:02.137-04:00</updated><title type='text'>Disabling Servies on Solaris 10</title><content type='html'>&lt;div style="font-family: courier new; color: rgb(51, 51, 255);" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;div align="justify"&gt;&lt;span style="font-family: georgia;font-size:85%;" &gt;SUN has done a equally good things with Solaris 10 as they have done bad with the same. Sometimes I wonder how or why no one takes care of small issues with Solaris 10. It has become very popular since it went open source, but still there are some annoyances which a day to day system admin can do without.&lt;/span&gt;&lt;span style="font-family: georgia;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: georgia;font-size:85%;" &gt;Few weeks ago I built 4 Solaris 10 server and even though our Flar image had most of the services turned off, some of them came up when the system was built. But turning off services in Solaris 10 is very easy. Here is what I did:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: georgia;font-size:85%;" &gt;&lt;b&gt;1. Identify what each port is mapped to within /etc/services:&lt;/b&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;root&gt; egrep "22|111|6112|8891|8892|32773" /etc/services&lt;br /&gt;ssh 22/tcp # Secure Shell&lt;br /&gt;sunrpc 111/udp rpcbind&lt;br /&gt;sunrpc 111/tcp rpcbind&lt;br /&gt;dtspc 6112/tcp # CDE subprocess control&lt;br /&gt;seosload 8892/tcp&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;2. Using SVCS determine which services are online under RPC:&lt;/span&gt;&lt;/b&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;root&gt; svcs | grep rpc                                 &lt;br /&gt;online         Jun_04   svc:/network/rpc/bind:default&lt;br /&gt;online         Jun_04   svc:/network/rpc/bootparams:default&lt;br /&gt;online         Jun_04   svc:/network/rpc/meta:default&lt;br /&gt;online         Jun_04   svc:/network/rpc/smserver:default&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;3. Since RPC service is up, use it to determine what is running on port 32773:&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;root&gt; rpcinfo -p | grep 32773&lt;br /&gt;    100026    1   udp  32773  bootparam&lt;br /&gt;    100229    1   tcp  32773  metad&lt;br /&gt;    100229    2   tcp  32773  metad&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;b&gt;4. Find out what each service means:&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;root&gt; svcs -xv /network/rpc/smserver&lt;br /&gt;svc:/network/rpc/smserver:default (removable media management)&lt;br /&gt; State: online since Mon Jun 04 06:43:02 2007&lt;br /&gt;   See: man -M /usr/share/man -s 1M rpc.smserverd&lt;br /&gt;Impact: None.&lt;br /&gt;&lt;br /&gt;&lt;root&gt; svcs -xv /network/rpc/meta   &lt;br /&gt;svc:/network/rpc/meta:default (SVM remote metaset services)&lt;br /&gt; State: online since Mon Jun 04 06:43:02 2007&lt;br /&gt;   See: man -M /usr/share/man -s 1M rpc.metad&lt;br /&gt;Impact: None.&lt;br /&gt;&lt;br /&gt;&lt;root&gt; svcs -xv /network/rpc/bind&lt;br /&gt;svc:/network/rpc/bind:default (RPC bindings)&lt;br /&gt; State: online since Mon Jun 04 06:43:00 2007&lt;br /&gt;   See: man -M /usr/share/man -s 1M rpcbind&lt;br /&gt;   See: /var/svc/log/network-rpc-bind:default.log&lt;br /&gt;Impact: None.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Disable each service:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;root&gt; svcadm -v disable /network/rpc/bind&lt;br /&gt;svc:/network/rpc/bind:default disabled.&lt;br /&gt;&lt;br /&gt;&lt;root&gt; svcadm -v disable /network/rpc/bootparams&lt;br /&gt;svc:/network/rpc/bootparams:default disabled.&lt;br /&gt;&lt;br /&gt;&lt;root&gt; svcadm -v disable /network/rpc/meta     &lt;br /&gt;svc:/network/rpc/meta:default disabled.&lt;br /&gt;&lt;br /&gt;&lt;root&gt; svcadm -v disable &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;/network/rpc/smserver&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;svc:/network/rpc/smserver:default &lt;/span&gt;&lt;span style="font-size:85%;"&gt;disabled.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6. Verify RPC is not running:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:85%;" &gt;&lt;root&gt; rpcinfo -p | more&lt;br /&gt;rpcinfo: can't contact portmapper: RPC: Rpcbind failure - RPC: Failed (unspecified error)&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-7542356382062011250?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/7542356382062011250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=7542356382062011250&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/7542356382062011250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/7542356382062011250'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/08/disabling-servies-on-solaris-10.html' title='Disabling Servies on Solaris 10'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-2381855294486177906</id><published>2008-08-16T02:44:00.002-04:00</published><updated>2008-08-16T02:44:35.994-04:00</updated><title type='text'>LVM Commands for RHEL</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;After a long time, I had to create/destroy some volumes on a RHEL 4.x server and it hit me that I had almost forgotten the commands, since I no longer in the Linux Admin team. But thanks to my notes (google notepad) I saved a lot of time searching on the web for those commands.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;lvscan ( to get all the logical volumes)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;vgscan ( go get the list of volume groups)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;pvscan ( to get the list of all physical volumes)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;lvremove -v /dev/appsvg/LVlocal &lt;/span&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;    (Remove logical volume LVlocal)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;vgremove -v appsvg  (Remove the Volume Group - appsvg)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;pvremove -v /dev/sdb1 (Remove Physical Volume reserved for the Volume Group - sdb1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;pvremove -v /dev/sdb (Remove physical disk )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;pvcreate -v /dev/sdc  (Initialise / create Physical Disk for the use by LVM)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;vgcreate -v appsvg /dev/sdc  ( Create a volume Group - appsvg )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;lvcreate -v -n LVlocal --size 33G appsvg (Create Logical Volume - LVlocal)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#3333ff;"&gt;mkfs -j /dev/appsvg/LVlocal (Format Logical Volume. -j option will create ext3 FS)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;With time we do forget things, but keeping good notes of commands commonly used saves the day :)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:georgia;font-size:100%;color:#3333ff;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-2381855294486177906?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/2381855294486177906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=2381855294486177906&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/2381855294486177906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/2381855294486177906'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/08/lvm-commands-for-rhel.html' title='LVM Commands for RHEL'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-2050806942106862181</id><published>2008-08-14T21:12:00.002-04:00</published><updated>2008-08-14T21:13:41.901-04:00</updated><title type='text'>PopCornHour</title><content type='html'>&lt;div style="font-family: verdana;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;div align="justify"&gt;&lt;span style="font-size:85%;color:#3333ff;"&gt;Its been couple of weeks since I wrote anything on my blog. I have been busy at work. I was wondering what I would write about since there are a lot of open source tools or just tools which I use on a day to day basis. Then it hit me, I use an Open Source tool day in and day out.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.popcornhour.com/" target="_blank"&gt;PopCornHour&lt;/a&gt; - It is a HD Media Player. I bought this media player online a few months ago and it is so useful that I rarely think of it as a minipc running Linux.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I have tried my hand in building Media PC with Linux - MythTV on Xandros and MythDora, but it still required a full PC with Keyboard, mouse and of course a Remote (Configuring it was a pain). With PopcornHour, it is simple as installing a Harddisk, network and upgrading the firmware and I am all set to copy any media files to it as a repository and watch my DVDs anytime I want without worrying about scratching them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PopcornHour came out with their second version of set top box and they seem to have fixed the issue of DTS over HDMI issue with the first version.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This box is not perfect, but at $200 less than its competitor Tvix, I am happy with it. It plays Music, Slide show of pictures, all popular video formats except the ones which require a license and WMV files.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It has a very good forum support and can play videos from youtube, systm, vuze and other internet video portals. But it does not support hulu yet. Since it is made in China, where Hulu is not available.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;They have just come out with the next version of the PopcornHour which has better specs than the one I have.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-2050806942106862181?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/2050806942106862181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=2050806942106862181&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/2050806942106862181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/2050806942106862181'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/08/popcornhour.html' title='PopCornHour'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-1803642494956030278</id><published>2008-07-11T19:44:00.003-04:00</published><updated>2009-07-16T01:18:01.830-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Operating Systems'/><title type='text'>Solaris Patch Return Codes</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span style="color: rgb(0, 0, 153);font-family:Courier New;" &gt;List of Solaris Patchadd Return Codes.&lt;br /&gt;&lt;/span&gt;&lt;pre style="color: rgb(0, 0, 153);"&gt;Exit    Meaning&lt;br /&gt;code&lt;br /&gt;&lt;br /&gt;0       No error&lt;br /&gt;1       Usage error&lt;br /&gt;2       Attempt to apply a patch that's already been applied&lt;br /&gt;3       Effective UID is not root&lt;br /&gt;4       Attempt to save original files failed&lt;br /&gt;5       pkgadd failed&lt;br /&gt;6       Patch is obsoleted&lt;br /&gt;7       Invalid package directory&lt;br /&gt;8       Attempting to patch a package that is not installed&lt;br /&gt;9       Cannot access /usr/sbin/pkgadd (client problem)&lt;br /&gt;10      Package validation errors&lt;br /&gt;11      Error adding patch to root template&lt;br /&gt;12      Patch script terminated due to signal&lt;br /&gt;13      Symbolic link included in patch&lt;br /&gt;14      NOT USED&lt;br /&gt;15      The prepatch script had a return code other than 0.&lt;br /&gt;16      The postpatch script had a return code other than 0.&lt;br /&gt;17      Mismatch of the -d option between a previous patch install and the current one.&lt;br /&gt;18      Not enough space in the file systems that are targets of the patch.&lt;br /&gt;19      $SOFTINFO/INST_RELEASE file not found&lt;br /&gt;20      A direct instance patch was required but not found&lt;br /&gt;21      The required patches have not been installed on the manager&lt;br /&gt;22      A progressive instance patch was required but not found&lt;br /&gt;23      A restricted patch is already applied to the package&lt;br /&gt;24      An incompatible patch is applied&lt;br /&gt;25      A required patch is not applied&lt;br /&gt;26      The user specified backout data can't be found&lt;br /&gt;27      The relative directory supplied can't be found&lt;br /&gt;28      A pkginfo file is corrupt or missing&lt;br /&gt;29      Bad patch ID format&lt;br /&gt;30      Dryrun failure(s)&lt;br /&gt;31      Path given for -C option is invalid&lt;br /&gt;32      Must be running Solaris 2.6 or greater&lt;br /&gt;33      Bad formatted patch file or patch file not found&lt;br /&gt;34      Incorrect patch spool directory&lt;br /&gt;35      Later revision already installed&lt;br /&gt;36      Cannot create safe temporary directory&lt;br /&gt;37      Illegal backout directory specified&lt;br /&gt;38      A prepatch, prePatch or a postpatch script could not be executed&lt;br /&gt;39      A compressed patch was unable to be decompressed&lt;br /&gt;40      Error downloading a patch&lt;br /&gt;41      Error verifying signed patch&lt;br /&gt;42      Error unable to retrieve patch information from SQL DB.&lt;br /&gt;43      Error unable to update the SQL DB.&lt;br /&gt;44      Lock file not available&lt;br /&gt;45      Unable to copy patch data to partial spool directory.&lt;/pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-family:Courier New;" &gt;&lt;span style="font-family:georgia;"&gt;After patching 5 to 6 servers in the last week, I have hardly seen most of these errors. The ones I saw were 2, 5, 8 and 15.&lt;br /&gt;&lt;br /&gt;Today I spent about 4 hours patching 1 Solaris Server, at the end of which, I felt that SUN Microsystem is getting closer to MicroSoft's patching process.&lt;br /&gt;&lt;br /&gt;SUN has released a patch 120011-14 which obsoletes among many 122660-10. But to install 120011-14 we need patch 125547-02 which needs 122660-10. This defies logic and has frustrated many in my Organisation.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-1803642494956030278?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/1803642494956030278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=1803642494956030278&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/1803642494956030278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/1803642494956030278'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/07/solaris-patch-return-codes.html' title='Solaris Patch Return Codes'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-6636404132901573837</id><published>2008-07-10T21:17:00.003-04:00</published><updated>2008-07-10T21:35:33.094-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripts'/><title type='text'>Twirl</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span style="color: rgb(0, 0, 153);font-family:georgia;" &gt;&lt;span style="font-family:georgia;"&gt;I always wondered how programmers generated the "twirl-ing /-\" from within a Shell script. Thanks to Google, I finally found that script/function to do it. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Here is the code for that twirl:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 153);font-family:Courier New;" &gt;function twirl {&lt;br /&gt;&lt;span class="s9"&gt;&lt;br /&gt;TCOUNT&lt;/span&gt;=&lt;span class="s13"&gt;"0"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="s8"&gt;while&lt;/span&gt; :&lt;br /&gt;&lt;span class="s8"&gt;do&lt;/span&gt;&lt;br /&gt;     &lt;span class="s9"&gt;TCOUNT&lt;/span&gt;=&lt;span class="s9"&gt;$&lt;/span&gt;(expr &lt;span class="s9"&gt;${TCOUNT}&lt;/span&gt; + &lt;span class="s5"&gt;1&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;     &lt;span class="s8"&gt;case&lt;/span&gt; &lt;span class="s9"&gt;${TCOUNT}&lt;/span&gt; &lt;span class="s8"&gt;in&lt;/span&gt;&lt;br /&gt;         &lt;span class="s13"&gt;"1"&lt;/span&gt;)    echo &lt;span class="s13"&gt;'-'"\b\c"&lt;/span&gt;&lt;br /&gt;                 sleep &lt;span class="s5"&gt;1&lt;/span&gt;&lt;br /&gt;                 &lt;span class="s18"&gt;;;&lt;/span&gt;&lt;br /&gt;         &lt;span class="s13"&gt;"2"&lt;/span&gt;)    echo &lt;span class="s13"&gt;'\\'"\b\c"&lt;/span&gt;&lt;br /&gt;                 sleep &lt;span class="s5"&gt;1&lt;/span&gt;&lt;br /&gt;                 &lt;span class="s18"&gt;;;&lt;/span&gt;&lt;br /&gt;         &lt;span class="s13"&gt;"3"&lt;/span&gt;)    echo &lt;span class="s13"&gt;"|\b\c"&lt;/span&gt;&lt;br /&gt;                 sleep &lt;span class="s5"&gt;1&lt;/span&gt;&lt;br /&gt;                 &lt;span class="s18"&gt;;;&lt;/span&gt;&lt;br /&gt;         &lt;span class="s13"&gt;"4"&lt;/span&gt;)    echo &lt;span class="s13"&gt;"/\b\c"&lt;/span&gt;&lt;br /&gt;                 sleep &lt;span class="s5"&gt;1&lt;/span&gt;&lt;br /&gt;                 &lt;span class="s18"&gt;;;&lt;/span&gt;&lt;br /&gt;         *)      &lt;span class="s9"&gt;TCOUNT&lt;/span&gt;=&lt;span class="s13"&gt;"0"&lt;/span&gt; &lt;span class="s18"&gt;;;&lt;/span&gt;&lt;br /&gt;     &lt;span class="s8"&gt;esac&lt;/span&gt;&lt;br /&gt;&lt;span class="s8"&gt;done&lt;/span&gt;&lt;br /&gt;&lt;span class="s1"&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;# call TWIRL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;twirl &amp;amp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;#Run commands while your user waits.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;# kill TWIRL once your commands are done.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; color: rgb(0, 0, 153);"&gt;kill -9 $! &gt;&gt; /dev/null 2&gt;&amp;amp;1&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-6636404132901573837?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/6636404132901573837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=6636404132901573837&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/6636404132901573837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/6636404132901573837'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/07/twirl.html' title='Twirl'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-1306683969805162520</id><published>2008-07-05T22:06:00.001-04:00</published><updated>2008-07-05T22:06:17.003-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Operating Systems'/><title type='text'>PCLinuxOS</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='justify'&gt;&lt;font color='#000099'&gt;&lt;font face='georgia'&gt;For a long time (since 1995), I was a big fan of Red Hat Linux, until their version 8 or 9 when they introduced default desktop as Gnome. I started using Mandrake, SuSE and Solaris x86 on my PC. By 2004, I had used many different Linux distributions and finally found one which fit my needs and style - Xandros Desktop Linux. &lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color='#000099'&gt;&lt;font face='georgia'&gt;Xandros is not a cutting edge Linux distro, but it came on 1 CD-ROM, it was fast and there was no bloatware. It came with good tools like Xandros Networks to update the OS or to search and install new applications. Best of all it was stable and did a lot of things out of the box, at a time when other distributions were struggling to do the same. I can remember spending hours on end trying to get my display working with Febora or Mandriva or SuSE, but Xandros did it all without having me drop to a shell prompt. Yes now a days Linux distros have come a long way and Ubuntu is a good example of it.&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color='#000099'&gt;&lt;font face='georgia'&gt;So after 4 years, it was time for me to take advantage of a newer OS, which was fast and was easy to update. I tried OpenSuSE, Fedora, Mandriva Spring, CentOS, Sabayon and PCLinuxOS. My requirements were simple. I should be able to do the following things out of the box: &lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;ul&gt;&lt;li&gt;&lt;font color='#000099'&gt;&lt;font face='georgia'&gt;Use Amarok and be able to Sync my iPod&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font color='#000099'&gt;&lt;font face='georgia'&gt;Import Pictures from my Camera without fuss&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font color='#000099'&gt;&lt;font face='georgia'&gt;Good tools to recognise my printer and USB wifi adapter&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;li&gt;&lt;font color='#000099'&gt;&lt;font face='georgia'&gt;Install Lotus Notes, Sametime client, Pidgin and plugins, OpenVPN and FreeNX&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font face='georgia' color='#000099'&gt;OpenSuSE failed with respect to speed, it brought my 2.8 GHz Core 2 Duo 2 GB RAM to a crawl. Fedora is still buggy , I hate Gnome interface and compiz did not work.  Sabayon was good, but none of my requirements were met. CentOS 5.0 was brilliant, everything except wifi configuration worked out of the box, but it was still not fast enough. So having seen the popularity of PCLinuxOS on the net, I gave it a go. Installation was easy, interface was fast in response and all the applications I wanted installed without a fuss. The most important test was accessing it over the net using FreeNX. It came out with flying colours. &lt;br/&gt;&lt;br/&gt;I have been using PCLinuxOS for about 4 months now and I have no complaints. So in the coming months, I might finally switch my main Desktop from Xandros to PCLOS.&lt;/font&gt;&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-1306683969805162520?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/1306683969805162520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=1306683969805162520&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/1306683969805162520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/1306683969805162520'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/07/pclinuxos.html' title='PCLinuxOS'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-6915942171803514670</id><published>2008-07-05T21:23:00.005-04:00</published><updated>2008-07-05T21:23:31.204-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Tools'/><title type='text'>FreeNX - The Free NX</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div style='text-align: justify;'&gt;&lt;span style='font-family: georgia; color: rgb(0, 0, 153);'&gt;Recently I had to connect to my PC remotely and had an issue using VNC or similar products which claimed to have good encryption. But none of the products I used met my purpose. Yes VNC, tightvnc are very good to connect to a Windows console when RDP is not available. But they are very slow and do not work over SSH. I might be wrong here, there could be ways to make them work over ssh, but they are not as straight forward as using &lt;a target='_blank' href='http://freenx.berlios.de/'&gt;FreeNX&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;FreeNX is the GNU implementation of NX Server/Cient. NX is a product by &lt;a target='_blank' href='http://www.nomachine.com/documents.php'&gt;nomachine&lt;/a&gt;. My desktop PC runs - PCLinuxOS 2007 on a 2.8 GHz P4 512 MB RAM. I connect to this desktop from the internet (cable + VPN). Instead of a VNC type of connection, FreeNX gives X11 broadcast to which we can connect using FreeNX Client. The client is available for Windows, Linux, Solaris and OS X.&lt;br/&gt;&lt;br/&gt;I am very happy with the response speeds and interface. I have worked for more than 10 hours at a time and not get the feeling that I am remote. There are times when my cable internet gets interruptions when I do get disconnected from my remote PC, but that is not a problem with FreeNX, but network connectivity.&lt;br/&gt;&lt;br/&gt;Give it a try and see if it fits your needs.&lt;br/&gt;&lt;br/&gt;Links:&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;span style='font-family: georgia; color: rgb(0, 0, 153);'&gt;&lt;br/&gt;&lt;a target='_blank' href='http://www.nomachine.com/index.php'&gt;http://www.nomachine.com/index.php&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a target='_blank' href='http://freenx.berlios.de/'&gt;http://freenx.berlios.de/&lt;/a&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-6915942171803514670?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/6915942171803514670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=6915942171803514670&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/6915942171803514670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/6915942171803514670'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/07/freenx-free-nx_05.html' title='FreeNX - The Free NX'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-7383133961477796900</id><published>2008-07-05T21:23:00.003-04:00</published><updated>2008-07-05T21:23:25.562-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Tools'/><title type='text'>Cog - Its no Amarok</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div style='text-align: justify;'&gt;&lt;span style='color: rgb(0, 0, 153);'&gt;&lt;span style='font-family: georgia;'&gt;I recently switched over to OS X as my Primary OS on my Desktop and have had a hard time finding and coping with the lack of certain tools I am used to. Yes there are very good tools on OS-X, but some of the default tools can be a pain to deal with, when one is used to flexible tools.&lt;br/&gt;&lt;br/&gt;My first caveat was iTunes. Yes, it has a good interface, but the features stop there. I am used to Amarok for listening to music and its interface is awesome. With one click you can search for the Album cover, rip CDs or even get a look at the Artist's web-page or wiki. Nothing like that exists on iTunes.&lt;br/&gt;&lt;br/&gt;Another annoying feature that iTunes lacked was dynamic playlist. When I say dynamic, I mean whatever songs I want I can add to my current playlist. In iTunes, I have to create playlist and thats it. Yes I can add to it, but it is not the same.&lt;br/&gt;&lt;br/&gt;The most annoying feature or lack of it in iTunes is that there is no way to automatically add your new songs to my Music Library within iTunes. There is an add folder menu option, but that is not the same as "rescan collection" in Amarok. I purchased some music on Amazon and by default it put the downloaded music into different folders and to get iTunes to recognise it automatically was not possible.&lt;br/&gt;&lt;br/&gt;&lt;em&gt;&lt;strong&gt;So in short, I hate iTunes.&lt;/strong&gt;&lt;/em&gt;&lt;strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style='font-weight: normal;'&gt;Cog is an open source audio player for OS X, which looks much like iTunes. Its whole purpose is to play your playlist and nothing more than that. So, since there is no Amarok for OS X (or that I know off), I am using Cog. Another good thing about Cog is that it updates my Last.fm profile with the music I listen to.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style='font-weight: normal;'&gt;Give &lt;a href='http://cogx.org/'&gt;Cog&lt;/a&gt; a shot or if you know of a better application than Cog, please leave a comment. If you know if any hidden features of Cog, please leave a note too.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong/&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-7383133961477796900?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/7383133961477796900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=7383133961477796900&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/7383133961477796900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/7383133961477796900'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/07/cog-its-no-amarok_05.html' title='Cog - Its no Amarok'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5230702220013025995.post-5951940315352184624</id><published>2008-07-05T21:23:00.001-04:00</published><updated>2008-07-05T21:23:19.165-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source Tools'/><title type='text'>My First Blog</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div style='font-family: georgia; color: rgb(0, 0, 153); text-align: justify;'&gt;I am not going to waste my first blog on "Hello World" or introduction to what Open Source is or its history. There are a million sites which already does that. So pointing to site which gives you the history and the thought behind this technology will suffice.&lt;br/&gt;&lt;br/&gt;Please visit http://opensource.org&lt;br/&gt;&lt;br/&gt;I will update this blog as and when I find interesting news about open source or any tool that I am currently using and want to share with the rest of world who are searching for such tools.&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5230702220013025995-5951940315352184624?l=ossrocks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ossrocks.blogspot.com/feeds/5951940315352184624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5230702220013025995&amp;postID=5951940315352184624&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/5951940315352184624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5230702220013025995/posts/default/5951940315352184624'/><link rel='alternate' type='text/html' href='http://ossrocks.blogspot.com/2008/07/my-first-blog_05.html' title='My First Blog'/><author><name>Open Source Rocks</name><uri>http://www.blogger.com/profile/10663021966515666033</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
