<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Pre/Post Change Script in API / CLI Discussion</title>
    <link>https://community.checkpoint.com/t5/API-CLI-Discussion/Pre-Post-Change-Script/m-p/39313#M2443</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I hadn't given it that much thought yet.&amp;nbsp; I guess whichever makes more sense.&amp;nbsp; This was the initial to get it out there.&amp;nbsp; Now I'm committed. &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://community.checkpoint.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 20 Mar 2018 20:57:49 GMT</pubDate>
    <dc:creator>Ivan_Moore</dc:creator>
    <dc:date>2018-03-20T20:57:49Z</dc:date>
    <item>
      <title>Pre/Post Change Script</title>
      <link>https://community.checkpoint.com/t5/API-CLI-Discussion/Pre-Post-Change-Script/m-p/39311#M2441</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I've had this rolling around for a while and finally have some time to work on it.&amp;nbsp; This community is the perfect place to drop this for expansion, correction, improvement,etc...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The idea is a pre/post change script that can be run via whatever method (manually via cli or via CDT, etc..) that would run various checks on the system and do some sort of compare afterwards.&amp;nbsp; There would have to be some sort of logic to help the engineer spot issues or potential issues which is part of what I haven't started working on.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Phase 1 is identifying useful information that we need to be looking at and collecting it.&amp;nbsp; &amp;nbsp;See below.&amp;nbsp; Calls out the ping-gateways.sh script which I will post below as well.&amp;nbsp; I really need to add to the list of things to check to include CoreXL information, be VSX aware, etc...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The main thing I'm hoping to get for this phase is ideas for what to look for and the best way to collect it in a format that will make phase 2 easier.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Phase 2 is manipulating the data and comparing pre/post and presenting it in a decent manner to help speed up and improve the validation efforts.&amp;nbsp; (Not started)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;#!/bin/bash&lt;BR /&gt;#&lt;BR /&gt;# checkup.sh&lt;BR /&gt;#&lt;BR /&gt;# Initially created by Ivan Moore&lt;BR /&gt;#&lt;BR /&gt;# Pre/Post Change Validation script&lt;BR /&gt;#&lt;BR /&gt;# 1.0.0 Initial version which just collects data&lt;BR /&gt;#&lt;BR /&gt;VERSION=1.0.0&lt;BR /&gt;MYNAME=`hostname`&lt;BR /&gt;date=`date '+%d%b%Y'`&lt;BR /&gt;time=`date '+%X'`&lt;BR /&gt;. /etc/profile.d/CP.sh&lt;BR /&gt;TLOG="/var/log/tmp/$MYNAME/$MYNAME-$time.txt"&lt;BR /&gt;USAGE='Usage:\tcheckup.sh\n '&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;collect () {&lt;BR /&gt;&amp;nbsp; echo Running $1&lt;BR /&gt;&amp;nbsp; echo "#################" &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;&amp;nbsp; echo "Running $1" &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;&amp;nbsp; echo "#################" &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;&amp;nbsp; echo "#" &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;&amp;nbsp; echo " " &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;&amp;nbsp; $1 &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;&amp;nbsp; echo " " &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;#######&lt;BR /&gt;#&lt;BR /&gt;echo "Setting up some temp space and our log file"&lt;BR /&gt;#&lt;BR /&gt;&lt;BR /&gt;mkdir /var/log/tmp/$MYNAME &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;BR /&gt;cd /var/log/tmp/$MYNAME&lt;BR /&gt;&lt;BR /&gt;echo "############# Validation Log ############" &amp;gt;$TLOG&lt;BR /&gt;echo "#############&amp;nbsp;&amp;nbsp;&amp;nbsp; $date&amp;nbsp;&amp;nbsp; ############" &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;echo "#############&amp;nbsp;&amp;nbsp;&amp;nbsp; $time&amp;nbsp;&amp;nbsp;&amp;nbsp; ############" &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;echo "#########################################" &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;echo "" &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;&lt;BR /&gt;######&lt;BR /&gt;#&lt;BR /&gt;#&lt;BR /&gt;#&lt;BR /&gt;&lt;BR /&gt;collect "cphaprob -a if"&lt;BR /&gt;collect "cphaprob -l list"&lt;BR /&gt;collect "cphaprob stat"&lt;BR /&gt;collect "fwaccel stats"&lt;BR /&gt;collect "fwaccel stats -s"&lt;BR /&gt;collect "fwaccel stat"&lt;BR /&gt;collect "ping-gateways.sh"&lt;BR /&gt;collect "netstat -i"&lt;BR /&gt;&lt;BR /&gt;dmesg | tail &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;&lt;BR /&gt;echo "Running ethtool and checking bonds"&lt;BR /&gt;for IF in `ifconfig -a | grep -v grep | grep HWaddr | awk '{print $1}' | grep -v bond`&lt;BR /&gt;&amp;nbsp; do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo -n "$IF: "&amp;gt;&amp;gt;$TLOG;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ethtool -S "$IF" &amp;gt;&amp;gt;$TLOG&lt;BR /&gt;done&lt;BR /&gt;&lt;BR /&gt;for i in `ifconfig | grep bond | awk ' { print $1 }' | grep -v "\."`; do \&lt;BR /&gt;&amp;nbsp; cphaconf show_bond $i &amp;gt;&amp;gt;$TLOG;\&lt;BR /&gt;done&lt;BR /&gt;&lt;BR /&gt;collect "cpview -p"&lt;BR /&gt;&lt;BR /&gt;#######&lt;BR /&gt;echo " "&lt;BR /&gt;echo " "&lt;BR /&gt;echo "Some bits to look at."&lt;BR /&gt;echo " "&lt;BR /&gt;echo "### Interface Errors - If Any"&lt;BR /&gt;echo " "&lt;BR /&gt;netstat -i | grep -v "\." | awk '{ print $1 "\t\t" $5 "\t" $6 "\t" $7 "\t" $9 "\t" $10 "\t" $11 }'&lt;BR /&gt;echo " "&lt;BR /&gt;echo "Cluster State: " `cphaprob stat | grep "(local)" |&amp;nbsp; awk {' print $5'}`&lt;BR /&gt;echo "Currenet # of Connections: " `fw tab -t connections -s | grep "connections" | awk {' print $4 '}`&lt;BR /&gt;&lt;BR /&gt;echo " "&lt;BR /&gt;echo "Full log file can be found here:"&lt;BR /&gt;echo "&amp;nbsp;&amp;nbsp;&amp;nbsp; $TLOG"&lt;BR /&gt;echo " "&lt;BR /&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;#!/bin/bash&lt;BR /&gt;#&lt;BR /&gt;#&amp;nbsp; ping-gateways.sh&lt;BR /&gt;#&lt;BR /&gt;# [Ivan Moore]&lt;BR /&gt;#&lt;BR /&gt;# Determine all next hop gateways from routing table and ping&lt;BR /&gt;# to make sure we can reach them.&amp;nbsp; If no ping response is received&lt;BR /&gt;# check ARP table to see if we have L2 just in case the device is&lt;BR /&gt;# not allowed to respond.&lt;BR /&gt;#&lt;BR /&gt;# 11/19/2015&lt;BR /&gt;&lt;BR /&gt;VERSION=1.0.0&lt;BR /&gt;&lt;BR /&gt;# Program name: ping script to ping next-hop addresses&lt;BR /&gt;date&lt;BR /&gt;ip route | awk '/via/ { print $3 }' | sort -u | while read output&lt;BR /&gt;do&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ping -c 1 -w 1 "$output" &amp;gt; /dev/null&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if [ $? -eq 0 ]; then&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "node $output is up"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo " "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "node $output is down"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo "Checking for an ARP entry in case PING is disabled:"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arp -a $output &amp;amp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TASK_PID=$!&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sleep 20&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; kill $TASK_PID &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo " "&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fi&lt;BR /&gt;done&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Mar 2018 17:34:23 GMT</pubDate>
      <guid>https://community.checkpoint.com/t5/API-CLI-Discussion/Pre-Post-Change-Script/m-p/39311#M2441</guid>
      <dc:creator>Ivan_Moore</dc:creator>
      <dc:date>2018-03-16T17:34:23Z</dc:date>
    </item>
    <item>
      <title>Re: Pre/Post Change Script</title>
      <link>https://community.checkpoint.com/t5/API-CLI-Discussion/Pre-Post-Change-Script/m-p/39312#M2442</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I like the idea of the project. Are you planning on putting this on GitHub or just adding to the project and updating the post here?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Mar 2018 19:45:16 GMT</pubDate>
      <guid>https://community.checkpoint.com/t5/API-CLI-Discussion/Pre-Post-Change-Script/m-p/39312#M2442</guid>
      <dc:creator>KernelGordon</dc:creator>
      <dc:date>2018-03-20T19:45:16Z</dc:date>
    </item>
    <item>
      <title>Re: Pre/Post Change Script</title>
      <link>https://community.checkpoint.com/t5/API-CLI-Discussion/Pre-Post-Change-Script/m-p/39313#M2443</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I hadn't given it that much thought yet.&amp;nbsp; I guess whichever makes more sense.&amp;nbsp; This was the initial to get it out there.&amp;nbsp; Now I'm committed. &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://community.checkpoint.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Mar 2018 20:57:49 GMT</pubDate>
      <guid>https://community.checkpoint.com/t5/API-CLI-Discussion/Pre-Post-Change-Script/m-p/39313#M2443</guid>
      <dc:creator>Ivan_Moore</dc:creator>
      <dc:date>2018-03-20T20:57:49Z</dc:date>
    </item>
  </channel>
</rss>

