<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi list,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">According to business requirements, we must have our Solaris servers patched with the last CPU and create a monthly report with the patch compliance level (%) against that patch set per server.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I was given the task to create such report. <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">------------------------------------------------------<o:p></o:p></p>
<p class="MsoNormal">Server                   #patches in last CPU       #installed applicable patches(a)                     #non-applicable patches        #missing applicable patches from last CPU(b)       Compliance level (100 - b/a*100)<o:p></o:p></p>
<p class="MsoNormal">.<o:p></o:p></p>
<p class="MsoNormal">.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">-------------------------------------------------------<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I tried EMOC , but it's huge and not very smart. It gives me the list of non-installed patches from the CPU, but considering non-applicable patches as not-installed.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">This week I started looking at pca.  I downloaded the xref file from oracle, gathered  the .out info from our Solaris servers as described in the "remote" and run a pca report against my servers.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The problem I have is the xref file has newer patches than the CPU patches, and I must check compliance against the CPU patches.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">How complicated will be to create the patchdiag.xref from the patchset, instead of downloading from Oracle?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I was taking a look at the format and it looks very simple. From the downloaded CPU files, I can get almost all the info in one shot.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Patchdiag format: <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">----------------------------------<o:p></o:p></p>
<p class="MsoNormal">138899|01|Aug/01/08| | | |  |Unbundled|sparc;|SUNWs9brandu:11.10.0,REV=2008.04.24.03.37;|Solaris 9 Containers 1.0: s9_brand patch
<o:p></o:p></p>
<p class="MsoNormal">Field Definitions<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Field                      Name    Definition                                                                                                           Examples<o:p></o:p></p>
<p class="MsoNormal">1              Patch number   A series of numeric characters defining a specific patch.              138899<o:p></o:p></p>
<p class="MsoNormal">2              Patch version    A two digit number, zero filled, defining the patch version         01<o:p></o:p></p>
<p class="MsoNormal">3              Release date     Date the patch was release in the format MMM/dd/yy                  Apr/01/08<o:p></o:p></p>
<p class="MsoNormal">4              Recommended The character "R" or a space."R" means this is a recommended patch     R<o:p></o:p></p>
<p class="MsoNormal">5              Security               The character "S" or a space."S" means this is a security patch                   S<o:p></o:p></p>
<p class="MsoNormal">6              Obsolete             The character "O" or a space.<o:p></o:p></p>
<p class="MsoNormal">                                                "O" means the patch has been obsoleted by another patch or version. O<o:p></o:p></p>
<p class="MsoNormal">7              Bad                        The characters "YB". “Y “, “ B” or spaces.<o:p></o:p></p>
<p class="MsoNormal">                                                “B” means this is a bad patch and the patch has been withdrawn<o:p></o:p></p>
<p class="MsoNormal">                                                "Y" means this is a Y2K patch                                                                                      YB<o:p></o:p></p>
<p class="MsoNormal">8              OS Version         This field lists Solaris release, the word “Unbundled” if this is for a non OS product. A “_x86” suffix to the release indicates this patch is specific to x86 architecture.                                                                                            
 10<o:p></o:p></p>
<p class="MsoNormal">                                                                                                                                                                                                10_86<o:p></o:p></p>
<p class="MsoNormal">                                                                                                                                                                                                Unbundled<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">9              Architecture      A “;” separated list of applicable architectures.                                 sparc, i386, sparc.sun4u<o:p></o:p></p>
<p class="MsoNormal">10           Package                               A “;” separated list of packages this patch applies to.                                     SUNWcsu:11.10.0,REV=2005.01.21.15.53<o:p></o:p></p>
<p class="MsoNormal">11           Readme Synopsis            This is a synopsis of the readme file for the patch                                            SunOS 5.10: flowacct patch<o:p></o:p></p>
<p class="MsoNormal">                                                                                                                                                                                                Obsoleted by: 137278-01 SunOS 5.10: usr/sbin/ipsecconf
 patch<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">----------------------------------<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">From the patch directory:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">-bash-3.2# cat patchinfo<o:p></o:p></p>
<p class="MsoNormal">PATCHINFOVERSION="1.0"<o:p></o:p></p>
<p class="MsoNormal">PATCHID=121337-01<o:p></o:p></p>
<p class="MsoNormal">PATCH_CORRECTS='BaseOS.SolarisCore-5.10'<o:p></o:p></p>
<p class="MsoNormal">PATCH_ARCH='sparc'<o:p></o:p></p>
<p class="MsoNormal">PATCH_OS='SunOS'<o:p></o:p></p>
<p class="MsoNormal">PATCH_OSRELEASE='5.10'<o:p></o:p></p>
<p class="MsoNormal">PATCH_PROPERTIES='rebootafter singleuser clientroot'<o:p></o:p></p>
<p class="MsoNormal">PATCH_REQUIRES="118822-23"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">So, my plan is to write a script to create a custom patchdiag.xref so I can use pca to extract information.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My only problem is the field #10, which is  not in the patchinfo file.  The release date is in the README.<patch> file.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Before starting with tests, I would like to ask:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">1) Is there any better way to do it? <o:p></o:p></p>
<p class="MsoNormal">2) is pca considering that info (field #10)?<o:p></o:p></p>
<p class="MsoNormal">3) If yes, does anybody have any tip where can I extract that info from?<o:p></o:p></p>
<p class="MsoNormal">4) Did anybody have a requirement like this before? (compare against a fixed set of patches)
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Arial","sans-serif";mso-fareast-language:EN-CA">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Arial","sans-serif";mso-fareast-language:EN-CA"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:"Arial","sans-serif";mso-fareast-language:EN-CA">Sergio<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>