fetchconfig moved to https://github.com/udhos/fetchconfig.
fetchconfig is a Perl script for retrieving configuration of multiple devices. It has been tested under Linux and Windows, and currently supports a variety of devices, including Cisco IOS, Cisco Catalyst, Cisco ASA, Cisco PIX, FortiGate Firewalls, ProCurve, Alcatel Ethernet Routers (aka Riverstone), Dell PowerConnect Switches, Terayon 3200/3500CMTS, Datacom DmSwitch Switches, HP MSR Routers, Mikrotik Routers, Tellabs MSR Routers, Juniper EX Switch JunOS.
fetchconfig - Fetch Configuration
Copyright (C) 2006 Everton da Silva Marques
fetchconfig is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.
fetchconfig is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with fetchconfig; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
cd /usr/local tar xzf /tmp/fetchconfig-0.0.tar.gz ln -s fetchconfig-0.0 fetchconfig[ fetchconfig is now available under /usr/local/fetchconfig ]
cd /usr/local/fetchconfig cp device_table.example device_table vi device_table
cd /usr/local/fetchconfig ./fetchconfig.pl -devices=device_table
The fetchconfig.pl script will scan the "device_table" file, trying to retrieve the configuration for every device, storing configuration files under the "repository".
The device table assigned with '-device=' switch is a text file which supports two types of lines:
Default options lines assign default options to a device model. The following example adds some default options to the "cisco-ios" model:
#default model model-default-options # default: cisco-ios user=backup,pass=fran,enable=jose
Device lines define attributes of every device and optionally assign device-specific options. The following example define a device named "vpn-gw":
#model dev-unique-id device-host [device-options] # cisco-ios vpn-gw 192.168.0.1 keep=10,changes_only=1The dev-unique-id must be:
Modules recognize the following options. Please verify the options supported by each module by consulting the README file of the source distribution.
pass | The TELNET login password. |
user | The TELNET login username. |
enable | The priviledged enable password. |
timeout | How long to wait for TELNET responses from devices. |
banner_timeout | If given, it will override the timeout value used to wait for the 'login:' prompt. It is useful for devices which spend many seconds before issuing the initial login prompt for TELNET connections. |
fetch_timeout | If given, it will override the timeout value used to fetch all the configuration lines. It is useful for devices which spend several seconds building the configuration. |
repository | The base directory for saving the configuration files. |
keep | The maximum number of config files to retain for the device. When this limit is reached, the older files are discarded. |
changes_only | If specified as changes_only=1, only new configurations are saved. Otherwise, configurations are saved whenever the script runs; if not defined as changes_only=1, the script might possibly retain multiple identical configuration files. |
show_cmd | If specified as show_cmd=wrterm, "write term" will be used in place of the usual "show run" command. This is necessary for some older devices. Values other than wrterm should have no effect. |
on_fetch_run | Path to an external program to be called whenever the configuration is fetched. |
Get latest stable release here:
http://savannah.nongnu.org/download/fetchconfig/
ViewCVS access to CVS tree:
http://cvs.savannah.nongnu.org/viewcvs/fetchconfig/fetchconfig/
Anonymous access to CVS repository:
export CVS_RSH=ssh cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/fetchconfig co fetchconfig |
For suggestions, patches, bug reports, please visit support page at Savannah:
http://savannah.nongnu.org/projects/fetchconfig/