Cisco has a way to copy configuration to/from TFTP server using SNMP commands. I tried to follow
Cisco's documentaion, but it did not work. Here is the right way:
~$ snmpset -v2c -c secret cr2 1.3.6.1.4.1.9.9.96.1.1.1.1.14.222 i 5
~$ snmpset -v2c -c secret cr2 1.3.6.1.4.1.9.9.96.1.1.1.1.2.222 i 1
~$ snmpset -v2c -c secret cr2 1.3.6.1.4.1.9.9.96.1.1.1.1.3.222 i 4
~$ snmpset -v2c -c secret cr2 1.3.6.1.4.1.9.9.96.1.1.1.1.4.222 i 1
~$ snmpset -v2c -c secret cr2 1.3.6.1.4.1.9.9.96.1.1.1.1.5.222 a 10.20.4.20
~$ snmpset -v2c -c secret cr2 1.3.6.1.4.1.9.9.96.1.1.1.1.6.222 s aaa
~$ snmpset -v2c -c secret cr2 1.3.6.1.4.1.9.9.96.1.1.1.1.14.222 i 1
Step 1.
-------------
In the tftpboot directory (or the directory of the tftp server) create a new empty text
file and name it config.txt. Make sure everybody can read and write to the file, i.e. "chmod 666 config.txt".
Command Syntax:
snmpset -v 2c -c <> <> <> <> <>
Step 2.
-------------
First snmpset we need to make is to create a new ROW in the device within the ccCopyTable
Mib, where all the values are going to be stored in order to gather the device running configuration.
Please check ccCopyEntryRowStatus MIB
snmpset -v2c -c <> <> 1.3.6.1.4.1.9.9.96.1.1.1.1.14.222 i 5
NOTE: var_type is ?i? for Interger
Value 5 is for createAndWait
The number.222 is the entry index in the table. If the row is occupied then destroy it first and try to create it again.
Step 3.
-------------
We are going to use TFTP to transfer the device configuration with the OID ccCopyProtocol.
Check ccCopyProtocol MIB for details
snmpset -v2c -c <> <> 1.3.6.1.4.1.9.9.96.1.1.1.1.2.222 i 1
NOTE: Value is 1 for tftp
Step 4.
-------------
We want to copy running configuration.
Please look into MIB ccCopySourceFileType
snmpset -v2c -c <> <> 1.3.6.1.4.1.9.9.96.1.1.1.1.3.222 i 4
NOTE: Value is 4 for runningConfig
NOTE: Value is 3 for StartupConfig
Apparently, there is an error in the documentation.
Step 5.
-------------
Once we have specified the Source, we need to specify destination
ccCopyDestFileType MIB
snmpset -v2c -c <> <> 1.3.6.1.4.1.9.9.96.1.1.1.1.4.222 i 1
NOTE: Value is 1 for networkFile
Step 6.
-------------
TFTP's server IP address is important part of the destination.
Check ccCopyServerAddress MIB for additional details
snmpset -v2c -c <> <> 1.3.6.1.4.1.9.9.96.1.1.1.1.5.222 a < Server's IP>
NOTE: var_type is "a" for IP address
Value is the TFTP server's IP address
Step 7.
-------------
Now, we need to tell the name of the file where the data is going to be sent to or stored.
Please look into MIB ccCopyFileName
snmpset -v2c -c <> <> 1.3.6.1.4.1.9.9.96.1.1.1.1.6.222 s config.txt
NOTE: var_type is "s" for Display String
Value is the file name in the TFTPboot previously created with full privileges
Step 8.
-------------
Now we activate row 222 with the following command.
Details are in ccCopyEntryRowStatus MIB
snmpset -v2c -c <> <> 1.3.6.1.4.1.9.9.96.1.1.1.1.14.222 i 1
NOTE: Value is 1 for active.
Update: There is
perl module to do the same thing.