Netupdate

From NippAero

Jump to: navigation, search

Netupdate script to push a configuration from a TFTP server to a router and merge the configuration with the running configuration. This script was originally written by Leon and we have modified it over time with additional enhancements.

#!/bin/sh
## SNMP PULLING NEW CONFIGURATIONS MERGING WITH RUN
##
##
#snmpset -v 1 -c private <device name> ccCopyProtocol.<random number> integer 1
#ccCopySourceFileType.<Random number> integer 1
#ccCopyDestFileType.<Random number> integer 3
#ccCopyServerAddress.<Random number> ipaddress "<server ip address>"
#ccCopyFileName. <Random number> octetstring "<file name>"
#ccCopyEntryRowStatus.<Random number> integer 4
##
#####################################################################
#SET COMMAND LINE ARGS
host=$1
filecommandline=$2

if [ "$host"  = "" ] || [ "$filecommandline" = "" ]
then
clear
tput cup 24 18; echo "USAGE $0 <host or ip> <filename> "
tput cup 26 18; echo --------------------------------------
tput cup 28 18; echo "(Enter full path if not in /tftpboot (eg  ENTER \"CONFIG/filename\"  for  a file  in \"/tftpboot/CONFIG/filename\")"
exit
else
echo "" >/dev/null
fi



#SET THE TFTP SERVER IP ADDRESS HERE
TFTPSERVER="10.10.10.25"
RandomNumber="$RANDOM"
FileName="$2"

if [ -f "/tftpboot/$FileName" ]
then
echo "$FileName is a file"
else
echo "$FileName is not a file"
exit
fi



####################### BEGIN PUSHING FILE TO RUN  #####################################

for i in $1
do


snmpset -c private -v 1  $i 1.3.6.1.4.1.9.9.96.1.1.1.1.14.$RandomNumber integer 5
snmpset -c private -v 1  $i 1.3.6.1.4.1.9.9.96.1.1.1.1.3.$RandomNumber integer 1
snmpset -c private -v 1  $i 1.3.6.1.4.1.9.9.96.1.1.1.1.2.$RandomNumber integer 1
snmpset -c private -v 1  $i 1.3.6.1.4.1.9.9.96.1.1.1.1.4.$RandomNumber integer 4
snmpset -c private -v 1  $i 1.3.6.1.4.1.9.9.96.1.1.1.1.5.$RandomNumber a $TFTPSERVER
snmpset -c private -v 1  $i 1.3.6.1.4.1.9.9.96.1.1.1.1.6.$RandomNumber string "$FileName"
snmpset -c private -v 1  $i 1.3.6.1.4.1.9.9.96.1.1.1.1.14.$RandomNumber integer 1

done


#######################BEGIN COPY RUN TO START ##########################################

SaveNumber="$RANDOM"


for i in $1
do

#ccCopySourceFileType "runningConfig"
snmpset -c private -v 1  $i .1.3.6.1.4.1.9.9.96.1.1.1.1.3.$SaveNumber integer 4


#ccCopyDestFileType - "startupConfig"
snmpset -c private -v 1  $i .1.3.6.1.4.1.9.9.96.1.1.1.1.4.$SaveNumber integer 3


#ccCopyEntryRowStatus - execute save
snmpset -c private -v 1  $i .1.3.6.1.4.1.9.9.96.1.1.1.1.14.$SaveNumber integer 1

#---------------------------- CHECK STATUS ----------------------------------------------

# Check Status 3:successful
while [ `snmpget -c private -v 1  $i  .1.3.6.1.4.1.9.9.96.1.1.1.1.10.$SaveNumber |grep "INTEGER: 3"|wc -l` -ne 1 ]
do
echo "Saving Configuration"
echo "..............................."
sleep 1
done

done
Personal tools