{"id":20832885,"url":"https://github.com/udhos/fetchconfig","last_synced_at":"2025-05-08T01:40:46.333Z","repository":{"id":25825529,"uuid":"29264791","full_name":"udhos/fetchconfig","owner":"udhos","description":"fetchconfig is a Perl script for retrieving configuration of multiple devices","archived":false,"fork":false,"pushed_at":"2017-02-01T17:27:54.000Z","size":58,"stargazers_count":15,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-31T16:13:58.325Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/udhos.png","metadata":{"files":{"readme":"README","changelog":"CHANGES","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-14T20:43:06.000Z","updated_at":"2024-11-06T23:14:12.000Z","dependencies_parsed_at":"2022-07-27T05:32:16.361Z","dependency_job_id":null,"html_url":"https://github.com/udhos/fetchconfig","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udhos%2Ffetchconfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udhos%2Ffetchconfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udhos%2Ffetchconfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udhos%2Ffetchconfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/udhos","download_url":"https://codeload.github.com/udhos/fetchconfig/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252983761,"owners_count":21835758,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T00:13:35.513Z","updated_at":"2025-05-08T01:40:46.305Z","avatar_url":"https://github.com/udhos.png","language":"Perl","funding_links":[],"categories":["Network Change Management","Tools","Online Parser"],"sub_categories":["SD-WAN","NETCONF","TTP"],"readme":"#\n# $Id: README,v 1.27 2013/10/16 03:29:11 evertonm Exp $\n#\n\nINTRODUCTION\n\n\tfetchconfig is a Perl script for retrieving configuration of\n\tmultiple devices. It has been tested under Linux and Windows,\n\tand currently supports a variety of devices, including Cisco\n\tIOS, Cisco Catalyst, Cisco ASA, Cisco PIX, FortiGate\n\tFirewalls, ProCurve, Alcatel Ethernet Routers (aka\n\tRiverstone), Dell PowerConnect Switches, Terayon 3200/3500\n\tCMTS, Datacom DmSwitch Switches, HP MSR Routers, Mikrotik\n\tRouters, Tellabs MSR Routers, Juniper EX Switch JunOS, Oracle\n\tAcme Packet, Audiocodes Mediant, Cisco IOS XR, NEC Univerge\n\tIX.\n\nLICENSE\n\n        fetchconfig - Retrieving configuration for multiple devices\n        Copyright (C) 2006 Everton da Silva Marques\n\n        fetchconfig is free software; you can redistribute it and/or\n        modify it under the terms of the GNU General Public License as\n        published by the Free Software Foundation; either version 2,\n        or (at your option) any later version.\n\n        fetchconfig is distributed in the hope that it will be useful,\n        but WITHOUT ANY WARRANTY; without even the implied warranty of\n        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n        GNU General Public License for more details.\n\n\tYou should have received a copy of the GNU General Public\n\tLicense along with fetchconfig; see the file COPYING. If not,\n\twrite to the Free Software Foundation, Inc., 51 Franklin St,\n\tFifth Floor, Boston, MA 02110-1301 USA.\n\nINSTALLATION (UNIX/Linux)\n\n\t1. fetchconfig.pl expects a Perl interpreter at /usr/bin/perl.\n\n\t2. fetchconfig.pl requires the Net::Telnet module.\n\t(Use \"cpan install Net::Telnet\" if you don't have it.)\n\n\t3. Unpack the fetchconfig tarball at a suitable\n        location. Example:\n\n\t[ fetchconfig tarball available at /tmp/fetchconfig-0.0.tar.gz ]\n\n\tcd /usr/local\n\ttar xzf /tmp/fetchconfig-0.0.tar.gz\n\tln -s fetchconfig-0.0 fetchconfig\n\n\t[ fetchconfig is now available under /usr/local/fetchconfig ]\n\nINSTALLATION (Windows)\n\n\t1. fetchconfig.pl expects to find a Perl interpreter in the PATH.\n\n\t2. fetchconfig.pl requires the Net::Telnet module.\n\t(Use \"cpan install Net::Telnet\" if you don't have it.)\n\n\t3. Unpack the fetchconfig tarball at a suitable\n\tlocation.  From the command line, gzip and tar (links\n\tbelow) can be used.\n\thttp://www.gzip.org\n\thttp://gnuwin32.sourceforge.net/packages/tar.htm\n\n\tAlternatively, some commercial programs (such as WinZip)\n\toffer a GUI.\n\n\tCommand Line Example:\n\n\t[ fetchconfig tarball available at c:\\temp\\fetchconfig-0.0.tar.gz ]\n\n\tc:\n\tcd \\\n\tgzip -cd c:\\temp\\fetchconfig-0.0.tar.gz | tar xvf -\n\tmove fetchconfig-0.0 fetchconfig\n\n\t[ fetchconfig is now available under c:\\fetchconfig ]\n\nUSAGE\n\n\t1. Edit the file \"device_table.example\" according your needs,\n        and save it as \"device_table\". Example:\n\n\t[ fetchconfig available under /usr/local/fetchconfig ]\n\n\tcd /usr/local/fetchconfig\n\tcp device_table.example device_table\n\tvi device_table\n\n\t2. Run fetchconfig.pl, as in the following example:\n\n\t[ fetchconfig available under /usr/local/fetchconfig ]\n\n\tcd /usr/local/fetchconfig\n\t./fetchconfig.pl -devices=device_table\n\n\tThe fetchconfig.pl script will scan the \"device_table\" file,\n\ttrying to retrieve the configuration for every device, storing\n\tconfiguration files under the \"repository\".\n\nDEVICE TABLE\n\n\tThe device table assigned with '-device=' switch is a text\n        file which supports two types of lines:\n\n\t1. Default options lines assign default options to a device\n        model. The following example adds some default options to the\n        \"cisco-ios\" model:\n\n\t#default\tmodel\t\tmodel-default-options\n\t#\n\tdefault:        cisco-ios       user=backup,pass=fran,enable=jose\n\n\t2. Device lines define attributes of every device and\n        optionally assign device-specific options. The following\n        example define a device named \"vpn-gw\":\n\n\t#model\t\tdev-unique-id\tdevice-host\t[device-options]\n\t#\n\tcisco-ios       vpn-gw          192.168.0.1     keep=10,changes_only=1\n\n\tThe dev-unique-id must be:\n\ta) an unique identifier across all devices;\n\tb) a valid filesystem's directory name.\n\nEMBEDDING DEVICE TABLE INTO COMMAND LINE\n\n\tValid lines for the device table file can also be passed\n\tdirectly through the -line=string command line switch.\n\n\tExample:\n\t/path/to/fetchconfig.pl -line=\"default: tellabs-msr user=backup,pass=s\u0026cr\u0026t,timeout=10,keep=5,changes_only=0,fetch_timeout=1200,filename_append_suffix=.txt,repository=/path/to/repo\" -line=\"tellabs-msr lab-router 10.0.0.1\"\n\nDEVICE SUPPORT\n\n\tThe following devices are known to be supported.  This\n\tis not a comprehensive list.  Other devices and versions\n\tare likely to work but have not been verified.\n\n\tModel Name\tDevices/OS Supported\n\t----------\t------------------------------------------------\n\n\tcisco-cat\tCatOS switches\n\n\tcisco-ios\tIOS routers\n\t\t\t2500 series, 2600 series, 2800 series,\n\t\t\tCS-516 (with show_cmd=wrterm option)\n\n\tcisco-asa\tCisco ASA firewalls\n\n\tcisco-pix\tCisco PIX firewalls\n\n\tcisco-iosxr\tCisco IOS XR\n\n\tfortigate\tFortiOS 3.0\n\n\tparks\t\tParks 209R\n\n\triverstone\tAlcatel Ethernet Router 3100 (Riverstone RS3100)\n\n\tterayon-os\tTerayon 3200/3500 CMTS\n\n\tdmswitch\tDatacom DmSwitch\n\n\t3com-msr\t3Com MSR routers\n\n\tmikrotik\tMikroTik routers\n\n\tcoriant-8600\tCoriant 8600 Smart Router Series\n\n\ttellabs-msr\tTellabs MSR routers\n\n\tjunos\t\tJuniper EX Switch JunOS\n\n\tacme\t\tOracle Acme Packet\n\n\tmediant\t\tAudiocodes Mediant\n\n\tnec-univerge-ix\tNEC Univerge IX\n\n\nOPTIONS\n\n\tThe modules CiscoIOS, CiscoCAT, CiscoASA and CiscoPIX\n\trecognize the following options:\n\n\tpass\t\tA mandatory option, specifies the login password.\n\n\tuser\t\tSpecifies the login username. It can be omitted\n                        for devices not requiring a login username.\n\n\tenable\t\tMandatory, specifies the enable password.\n\n\ttimeout\t\tMandatory, how long to wait for TELNET responses\n                        from devices.\n\n\tfetch_timeout\tOptional. If given, will override the timeout\n                        value used to fetch all the configuration lines.\n                        It is useful for devices which spend several\n                        seconds building the configuration.\n\n\trepository\tMandatory, specifies the base directory for\n                        saving the configuration files.\n\n\tkeep\t\tMandatory, the maximum number of config files\n                        to retain for the device. When this limit is\n                        reached, the older files are discarded.\n\n\tchanges_only \tOptional. Boolean. If specified as\n\t\t\tchanges_only=1, only new configurations are\n\t\t\tsaved. Otherwise, configurations are saved\n\t\t\twhenever the script runs; if not defined as\n\t\t\tchanges_only=1, the script might possibly\n\t\t\tretain multiple identical configuration files.\n\n\ton_fetch_run\tOptional. Path to an external program to be\n\t\t\tcalled whenever the configuration is fetched.\n\t\t\tThe following environmental variables are\n\t\t\tpassed to the program:\n\t\t\tFETCHCONFIG_DEV_ID = device unique id\n\t\t\tFETCHCONFIG_DEV_HOST = device hostname (or IP addr)\n\t\t\tFETCHCONFIG_PREV = pathname to previous config,\n                                           undefined if none exists\n\t\t\tFETCHCONFIG_CURR = pathname to current config\n\t\t\tExample:\n\t\t\ton_fetch_run=/usr/local/bin/mail_diff_to_admin.sh\n\t\t\tPlease notice that, if changes_only=1, the\n\t\t\tbackup file referenced to FETCHCONFIG_CURR\n\t\t\twill be erased right after the external program\n\t\t\tis finished. This option is available for all\n\t\t\tmodules.\n\n\ton_fetch_cat\tOptional. Boolean. If specified as\n\t\t\ton_fetch_cat=1, the currently fetched\n\t\t\tconfiguration is issued to standard\n\t\t\toutput. This option is available for all\n\t\t\tmodules.\n\n\ttimezone\tOptional. If defined as timezone=hide, it will\n\t\t\tsupress timezone information from config filename.\n\n\tfilename_append_suffix\n\t\t\tOptional. If defined, it is appended to the\n\t\t\tgenerated filename. This option is available\n\t\t\tfor all modules.\n\t\t\tExample: filename_append_suffix=.txt\n\n\tOptions specific to CiscoIOS:\n\n\tshow_cmd\tOptional. If specified, its value will replace\n\t\t\tthe usual \"show run\" command. This is necessary\n                        for some older devices. It may be useful to\n\t\t\tsend alternative commands to capture the\n\t\t\tconfiguration. To keep compatibility with\n\t\t\tprevious versions of fetchconfig, if specified\n\t\t\tas show_cmd=wrterm, \"write term\" will be used\n\t\t\tin place of the usual \"show run\" command.\n\n\tThe fortigate module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\ttimeout\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe parks module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\ttimeout\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tOptions specific to Parks:\n\n\tbanner_timeout\tOptional. If given, will override the timeout\n                        value used to wait for the 'login:' prompt.\n                        It is useful since the Parks 209R spends\n \t\t\tmany seconds before issuing the initial\n\t\t\tlogin prompt for TELNET connections.\n\n\tThe riverstone module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\tenable\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\ttimeout\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe terayon-os module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\tenable\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\ttimeout\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe dmswitch module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\ttimeout\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe 3com-msr module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\tenable\t\tMandatory.\n\ttimeout\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe mikrotik module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\tenable\t\tMandatory.\n\ttimeout\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe tellabs module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\tenable\t\tMandatory.\n\ttimeout\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe junos module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\ttimeout\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe acme module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tOptional.\n\tpass\t\tMandatory.\n\ttimeout\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe mediant module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\ttimeout\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe nec-univerge-ix module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\ttimeout\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe cisco-iosxr module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\ttimeout\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\tThe coriant-8600 module recognizes the following options:\n\t(See above cisco-ios/cisco-cat section for descriptions.)\n\n\tuser\t\tMandatory.\n\tpass\t\tMandatory.\n\ttimeout\t\tMandatory.\n\trepository\tMandatory.\n\tkeep\t\tMandatory.\n\tfetch_timeout\tOptional.\n\tchanges_only\tOptional.\n\ton_fetch_run\tOptional.\n\ton_fetch_cat\tOptional.\n\ttimezone\tOptional.\n\tfilename_append_suffix Optional.\n\n\t\t\t\t -- END --\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudhos%2Ffetchconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fudhos%2Ffetchconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudhos%2Ffetchconfig/lists"}