我必须运行大量 ACL/access-group 和 network-object 命令,并且我发现每个命令的字符限制为 1024 个 - 即使它跨越多行。在代码中,我使用 1,000 个字符作为限制,并通过 SSH 一次向 CLI 发送尽可能多的行。这需要很长时间。
我正在思考 *nix 中的 shell 脚本,或者 Windows 中的批处理文件。
我看过很多关于导入/导出配置的文章,但我说的是在运行的系统上运行命令,而不是关闭系统进行重启。我没有更改核心映像,只是更改了一些可以在 ASA 上即时更改的访问参数,无需重启或关闭/不关闭。
期望:一种运行发送到 ASA 的 tftp/ftp/scp 文件内容的方法,就像我在 CLI 上输入它一样。我将准备命令、编写文件、发送文件,然后逐行运行文件的内容,就像我登录到 ASA 一样。
答案1
在 ASA(和 IOS)上,可以通过将命令复制到 running-config 来完成此操作:
asa# copy tftp running-config
这样做的效果是将 TFTP 服务器上文件中的命令与正在运行的配置合并,就像您手动输入或粘贴它们一样。该文件应包含您要运行的逐字命令。当然,您可以从 ASA 支持的任何来源复制,例如 FTP 或 HTTP(S)。不过,我不知道内置的 SCP 服务器是否支持这一点。
唯一的缺点是它只能在配置模式下工作。例如,您不能使用它来运行一堆“show”命令。您可能需要使用 Expect 来实现这一点(或者可能是 EEM,Jason 指出)。
答案2
从 ASA 代码 9.2 开始,添加了 EEM(嵌入式事件管理器)支持。这可能为您提供一种从文件读取命令并应用它们的方法。
我远非 EEM 专家,但可以帮助您解决这个问题的人是@https://supportforums.cisco.com/community/5941/eem-scripting
让我们知道你发现什么!