<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: zypper-update-report (was: patch2mail for SLES10)</title>
	<atom:link href="http://blog.barfoo.org/2008/08/16/zypper-update-report-was-patch2mail-for-sles10/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.barfoo.org/2008/08/16/zypper-update-report-was-patch2mail-for-sles10/</link>
	<description>The usual IT babble</description>
	<pubDate>Wed, 07 Jan 2009 17:21:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.8-bleeding-edge</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Miguel Ruiz</title>
		<link>http://blog.barfoo.org/2008/08/16/zypper-update-report-was-patch2mail-for-sles10/comment-page-1/#comment-957</link>
		<dc:creator>Miguel Ruiz</dc:creator>
		<pubDate>Tue, 09 Sep 2008 21:11:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.barfoo.org/?p=907#comment-957</guid>
		<description>I had some bug in the other code. This is the one fixed.
# Figure out how much updates are still pending
PENDING=&quot;$( cat $ZYPP_LIST &#124; grep &quot;&#124; Needed&quot; &#124; wc -l )&quot;

if [ $PENDING -eq 0 ] ; then
 exit 0
fi

echo &quot;TO: $RECEIPENTS&quot; &gt; $TMP
echo &quot;From: $FROM&quot; &gt;&gt; $TMP
echo &quot;Subject: [$( date +%F )] Update report for $(domainname -f) &quot; &gt;&gt; $TMP
echo 'MIME-Version: 1.0' &gt;&gt; $TMP
echo 'Content-type:text/html;charset=iso-8859-1' &gt;&gt; $TMP
echo '' &gt;&gt; $TMP
echo &quot; Pending updates for $( domainname -f ) on $( date )&quot; &gt;&gt; $TMP
echo '' &gt;&gt; $TMP
echo 'Package' &gt;&gt; $TMP
echo 'Needs Reboot' &gt;&gt; $TMP
echo 'Update Info' &gt;&gt; $TMP
echo 'Atom' &gt;&gt; $TMP
echo '' &gt;&gt; $TMP

for severity in $CLASSES; do
 echo '&lt;strong&gt;'
 PACKAGES=&quot;$( cat $ZYPP_LIST &#124; egrep &quot;${severity}(.*)\&#124; Needed&quot; &#124;\
  cut -d\&#124; -f2 &#124; sed &quot;s,^ ,,&quot; &#124; sort -u )&quot;
 [ -n &quot;$PACKAGES&quot; ] &amp;&amp; echo
 [ -n &quot;$PACKAGES&quot; ] &amp;&amp; echo &quot;  Category: $severity&quot;
 echo '&lt;/strong&gt;'
 for package in $PACKAGES; do
  zypper patch-info $package 2&gt;/dev/null &gt; $ZYPP_DETAILS
  echo ''
  echo &quot;&quot;
  echo &quot; $package&quot;
  echo ''
  echo &quot;    $( cat $ZYPP_DETAILS &#124;\
   grep &quot;Reboot Required:&quot; &#124; sed -e &quot;s,Reboot Required: ,,&quot; )&quot;
   echo &quot;&quot;
   echo '&lt;PRE&gt;'
   echo &quot; $( cat $ZYPP_DETAILS ) &quot;
   echo '&lt;/PRE&gt;'
   for atom in $( cat $ZYPP_DETAILS &#124; grep &quot;^atom:&quot; &#124; cut -d\  -f2 &#124;\
    sort ); do
    # Let's check whether or not the package listed in atom is
    # installed. If so, echo the atom, otherwise skip it
    RPM_STATUS=$( rpm -qi $atom )
    if [ &quot;$RPM_STATUS&quot; != &quot;package $atom is not installed&quot; ] ; then
     echo &quot;    - $atom&quot;
    fi
   done
 done
 echo ''
done &gt;&gt; $TMP
echo '' &gt;&gt; $TMP

if [ -n &quot;$RECEIPENTS&quot; ] ; then
 cat $TMP &#124;\
 sendmail $RECEIPENTS
fi

trap 'rm -f &quot;$TMP&quot; &quot;$ZYPP_LIST&quot; &quot;$ZYPP_DETAILS&quot; &gt;/dev/null 2&gt;&amp;1' 0
trap &quot;exit 2&quot; 1 2 3 15

# vim: set tw=80 ts=2 sw=2 et softtabstop=2</description>
		<content:encoded><![CDATA[<p>I had some bug in the other code. This is the one fixed.<br />
# Figure out how much updates are still pending<br />
PENDING=&#8221;$( cat $ZYPP_LIST | grep &#8220;| Needed&#8221; | wc -l )&#8221;</p>
<p>if [ $PENDING -eq 0 ] ; then<br />
 exit 0<br />
fi</p>
<p>echo &#8220;TO: $RECEIPENTS&#8221; &gt; $TMP<br />
echo &#8220;From: $FROM&#8221; &gt;&gt; $TMP<br />
echo &#8220;Subject: [$( date +%F )] Update report for $(domainname -f) &#8221; &gt;&gt; $TMP<br />
echo &#8216;MIME-Version: 1.0&#8242; &gt;&gt; $TMP<br />
echo &#8216;Content-type:text/html;charset=iso-8859-1&#8242; &gt;&gt; $TMP<br />
echo &#8221; &gt;&gt; $TMP<br />
echo &#8221; Pending updates for $( domainname -f ) on $( date )&#8221; &gt;&gt; $TMP<br />
echo &#8221; &gt;&gt; $TMP<br />
echo &#8216;Package&#8217; &gt;&gt; $TMP<br />
echo &#8216;Needs Reboot&#8217; &gt;&gt; $TMP<br />
echo &#8216;Update Info&#8217; &gt;&gt; $TMP<br />
echo &#8216;Atom&#8217; &gt;&gt; $TMP<br />
echo &#8221; &gt;&gt; $TMP</p>
<p>for severity in $CLASSES; do<br />
 echo &#8216;<strong>&#8216;<br />
 PACKAGES=&#8221;$( cat $ZYPP_LIST | egrep &#8220;${severity}(.*)\| Needed&#8221; |\<br />
  cut -d\| -f2 | sed &#8220;s,^ ,,&#8221; | sort -u )&#8221;<br />
 [ -n "$PACKAGES" ] &amp;&amp; echo<br />
 [ -n "$PACKAGES" ] &amp;&amp; echo &#8221;  Category: $severity&#8221;<br />
 echo &#8216;</strong>&#8216;<br />
 for package in $PACKAGES; do<br />
  zypper patch-info $package 2&gt;/dev/null &gt; $ZYPP_DETAILS<br />
  echo &#8221;<br />
  echo &#8220;&#8221;<br />
  echo &#8221; $package&#8221;<br />
  echo &#8221;<br />
  echo &#8221;    $( cat $ZYPP_DETAILS |\<br />
   grep &#8220;Reboot Required:&#8221; | sed -e &#8220;s,Reboot Required: ,,&#8221; )&#8221;<br />
   echo &#8220;&#8221;<br />
   echo &#8216;
<pre>&#8216;
   echo &#8221; $( cat $ZYPP_DETAILS ) &#8221;
   echo &#8216;</pre>
<p>&#8216;<br />
   for atom in $( cat $ZYPP_DETAILS | grep &#8220;^atom:&#8221; | cut -d\  -f2 |\<br />
    sort ); do<br />
    # Let&#8217;s check whether or not the package listed in atom is<br />
    # installed. If so, echo the atom, otherwise skip it<br />
    RPM_STATUS=$( rpm -qi $atom )<br />
    if [ "$RPM_STATUS" != "package $atom is not installed" ] ; then<br />
     echo &#8221;    - $atom&#8221;<br />
    fi<br />
   done<br />
 done<br />
 echo &#8221;<br />
done &gt;&gt; $TMP<br />
echo &#8221; &gt;&gt; $TMP</p>
<p>if [ -n "$RECEIPENTS" ] ; then<br />
 cat $TMP |\<br />
 sendmail $RECEIPENTS<br />
fi</p>
<p>trap &#8216;rm -f &#8220;$TMP&#8221; &#8220;$ZYPP_LIST&#8221; &#8220;$ZYPP_DETAILS&#8221; &gt;/dev/null 2&gt;&amp;1&#8242; 0<br />
trap &#8220;exit 2&#8243; 1 2 3 15</p>
<p># vim: set tw=80 ts=2 sw=2 et softtabstop=2</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Miguel Ruiz</title>
		<link>http://blog.barfoo.org/2008/08/16/zypper-update-report-was-patch2mail-for-sles10/comment-page-1/#comment-956</link>
		<dc:creator>Miguel Ruiz</dc:creator>
		<pubDate>Tue, 09 Sep 2008 20:08:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.barfoo.org/?p=907#comment-956</guid>
		<description>I edited your code to send html email and the update info

#!/bin/bash
 
[ -f /etc/sysconfig/zypper-update-report ] &#124;&#124; exit 1
 
source /etc/sysconfig/zypper-update-report
 
# Temporary files
ZYPP_LIST=&quot;$( mktemp /tmp/zypper-list.XXXXXX )&quot;
ZYPP_DETAILS=&quot;$( mktemp /tmp/zypper-details.XXXXXX )&quot;
TMP=&quot;$( mktemp /tmp/zypper-report.XXXXXX )&quot;
zypper pch 2&gt;/dev/null &gt; $ZYPP_LIST
 
# Figure out how much updates are still pending PENDING=&quot;$( cat $ZYPP_LIST &#124; grep &quot;&#124; Needed&quot; &#124; wc -l )&quot;
 
if [ $PENDING -eq 0 ] ; then
 exit 0
fi
 
echo &quot;TO: $RECEIPENTS&quot; &gt; $TMP
echo &quot;From: $FROM&quot; &gt;&gt; $TMP
echo &quot;Subject: [$( date +%F )] Update report for $(domainname -f) &quot; &gt;&gt; $TMP
echo 'MIME-Version: 1.0' &gt;&gt; $TMP echo 'Content-type:text/html;charset=iso-8859-1' &gt;&gt; $TMP
echo '' &gt;&gt; $TMP echo &quot; Pending updates for $( domainname -f ) on $( date )&quot; &gt;&gt; $TMP
echo '' &gt;&gt; $TMP echo 'Package' &gt;&gt; $TMP
echo 'Needs Reboot' &gt;&gt; $TMP
echo 'Update Info' &gt;&gt; $TMP
echo 'Atom' &gt;&gt; $TMP
echo '&lt;strong&gt;' &gt;&gt; $TMP
 
for severity in $CLASSES; do
 PACKAGES=&quot;$( cat $ZYPP_LIST &#124; egrep &quot;${severity}(.*)\&#124; Needed&quot; &#124;\
  cut -d\&#124; -f2 &#124; sed &quot;s,^ ,,&quot; &#124; sort -u )&quot;
 [ -n &quot;$PACKAGES&quot; ] &amp;&amp; echo
 [ -n &quot;$PACKAGES&quot; ] &amp;&amp; echo &quot;  Category: $severity&quot;
 echo '&lt;/strong&gt;'
 for package in $PACKAGES; do
  zypper patch-info $package 2&gt;/dev/null &gt; $ZYPP_DETAILS
  echo ''
  echo &quot;&quot; 
  echo &quot; $package&quot;
  echo '' 
  echo &quot;    $( cat $ZYPP_DETAILS &#124;\
   grep &quot;Reboot Required:&quot; &#124; sed -e &quot;s,Reboot Required: ,,&quot; )&quot;
   echo &quot;&quot; 
   echo '&lt;PRE&gt;' 
   echo &quot; $( cat $ZYPP_DETAILS ) &quot; 
   echo '&lt;/PRE&gt;' 
   for atom in $( cat $ZYPP_DETAILS &#124; grep &quot;^atom:&quot; &#124; cut -d\  -f2 &#124;\
    sort ); do
    # Let's check whether or not the package listed in atom is
    # installed. If so, echo the atom, otherwise skip it
    RPM_STATUS=$( rpm -qi $atom )
    if [ &quot;$RPM_STATUS&quot; != &quot;package $atom is not installed&quot; ] ; then
     echo &quot;    - $atom&quot;
    fi
   done
 done
 echo '' 
done &gt;&gt; $TMP
echo '' &gt;&gt; $TMP
 
if [ -n &quot;$RECEIPENTS&quot; ] ; then
 cat $TMP &#124;\
 sendmail $RECEIPENTS
fi
 
trap 'rm -f &quot;$TMP&quot; &quot;$ZYPP_LIST&quot; &quot;$ZYPP_DETAILS&quot; &gt;/dev/null 2&gt;&amp;1' 0 trap &quot;exit 2&quot; 1 2 3 15
 
# vim: set tw=80 ts=2 sw=2 et softtabstop=2</description>
		<content:encoded><![CDATA[<p>I edited your code to send html email and the update info</p>
<p>#!/bin/bash</p>
<p>[ -f /etc/sysconfig/zypper-update-report ] || exit 1</p>
<p>source /etc/sysconfig/zypper-update-report</p>
<p># Temporary files<br />
ZYPP_LIST=&#8221;$( mktemp /tmp/zypper-list.XXXXXX )&#8221;<br />
ZYPP_DETAILS=&#8221;$( mktemp /tmp/zypper-details.XXXXXX )&#8221;<br />
TMP=&#8221;$( mktemp /tmp/zypper-report.XXXXXX )&#8221;<br />
zypper pch 2&gt;/dev/null &gt; $ZYPP_LIST</p>
<p># Figure out how much updates are still pending PENDING=&#8221;$( cat $ZYPP_LIST | grep &#8220;| Needed&#8221; | wc -l )&#8221;</p>
<p>if [ $PENDING -eq 0 ] ; then<br />
 exit 0<br />
fi</p>
<p>echo &#8220;TO: $RECEIPENTS&#8221; &gt; $TMP<br />
echo &#8220;From: $FROM&#8221; &gt;&gt; $TMP<br />
echo &#8220;Subject: [$( date +%F )] Update report for $(domainname -f) &#8221; &gt;&gt; $TMP<br />
echo &#8216;MIME-Version: 1.0&#8242; &gt;&gt; $TMP echo &#8216;Content-type:text/html;charset=iso-8859-1&#8242; &gt;&gt; $TMP<br />
echo &#8221; &gt;&gt; $TMP echo &#8221; Pending updates for $( domainname -f ) on $( date )&#8221; &gt;&gt; $TMP<br />
echo &#8221; &gt;&gt; $TMP echo &#8216;Package&#8217; &gt;&gt; $TMP<br />
echo &#8216;Needs Reboot&#8217; &gt;&gt; $TMP<br />
echo &#8216;Update Info&#8217; &gt;&gt; $TMP<br />
echo &#8216;Atom&#8217; &gt;&gt; $TMP<br />
echo &#8216;<strong>&#8216; &gt;&gt; $TMP</p>
<p>for severity in $CLASSES; do<br />
 PACKAGES=&#8221;$( cat $ZYPP_LIST | egrep &#8220;${severity}(.*)\| Needed&#8221; |\<br />
  cut -d\| -f2 | sed &#8220;s,^ ,,&#8221; | sort -u )&#8221;<br />
 [ -n "$PACKAGES" ] &amp;&amp; echo<br />
 [ -n "$PACKAGES" ] &amp;&amp; echo &#8221;  Category: $severity&#8221;<br />
 echo &#8216;</strong>&#8216;<br />
 for package in $PACKAGES; do<br />
  zypper patch-info $package 2&gt;/dev/null &gt; $ZYPP_DETAILS<br />
  echo &#8221;<br />
  echo &#8220;&#8221;<br />
  echo &#8221; $package&#8221;<br />
  echo &#8221;<br />
  echo &#8221;    $( cat $ZYPP_DETAILS |\<br />
   grep &#8220;Reboot Required:&#8221; | sed -e &#8220;s,Reboot Required: ,,&#8221; )&#8221;<br />
   echo &#8220;&#8221;<br />
   echo &#8216;
<pre>&#8216;
   echo &#8221; $( cat $ZYPP_DETAILS ) &#8221;
   echo &#8216;</pre>
<p>&#8216;<br />
   for atom in $( cat $ZYPP_DETAILS | grep &#8220;^atom:&#8221; | cut -d\  -f2 |\<br />
    sort ); do<br />
    # Let&#8217;s check whether or not the package listed in atom is<br />
    # installed. If so, echo the atom, otherwise skip it<br />
    RPM_STATUS=$( rpm -qi $atom )<br />
    if [ "$RPM_STATUS" != "package $atom is not installed" ] ; then<br />
     echo &#8221;    - $atom&#8221;<br />
    fi<br />
   done<br />
 done<br />
 echo &#8221;<br />
done &gt;&gt; $TMP<br />
echo &#8221; &gt;&gt; $TMP</p>
<p>if [ -n "$RECEIPENTS" ] ; then<br />
 cat $TMP |\<br />
 sendmail $RECEIPENTS<br />
fi</p>
<p>trap &#8216;rm -f &#8220;$TMP&#8221; &#8220;$ZYPP_LIST&#8221; &#8220;$ZYPP_DETAILS&#8221; &gt;/dev/null 2&gt;&amp;1&#8242; 0 trap &#8220;exit 2&#8243; 1 2 3 15</p>
<p># vim: set tw=80 ts=2 sw=2 et softtabstop=2</p>
]]></content:encoded>
	</item>
</channel>
</rss>
