I usually use an „wr“-command-alias, an EEM-Applet or the IOS-Archive-Feature to copy the running-config to a central repository when an admin enters the „write“-command [copy running-config startup-config].
Sometimes it’s handy to pull the current running-config from a device.
Following Centralized access to device-configuration and other state-information using NAPALM – NAPALM makes this very easy:
import napalm #credentials DEVICE="192.168.2.139" USER="rmond" PASS="rmondpass" #instanciate NAPALM iosdriver = napalm.get_network_driver('ios') #connect to device router = iosdriver(hostname=DEVICE, username=USER, password=PASS, optional_args={'port': 22, 'dest_file_system': 'bootflash:'}) router.open() #read the hostname from the device facts = router.get_facts() hostname= facts["hostname"] #read the device-config clishowrun=['show running-config'] configRun=router.cli(clishowrun)[clishowrun[0]] #disconnet router.close() #construct config-filename filename = hostname+".cfg" #write config-text into the file with open(filename, "w") as f: print >>f, configRun