我熟悉托管以太网交换机上的CLI。但是,最近我在交换机上遇到了一个术语“基于事务的CLI”。我不太确定在交换机中使用它的目的和目的。它与数据库事务类似,您可以在提交之前先展开整个命令?

编辑:

按要求: br />
检查点CLI事务

评论

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。

#1 楼


我熟悉托管以太网交换机上的CLI。但是,最近我在交换机上遇到了一个术语“基于事务的CLI”。我不太确定在交换机中使用它的目的和目的。它与数据库事务类似,在数据库事务中您可以在提交整个命令之前先展开整个命令?数据库。
您提到的Checkpoint链接暗示同一件事,但是它们指定可以将离散的配置命令组合在一起,成为一个单独的“提交”操作。和回滚

这些功能与您在业界其他地方发现的功能非常相似...例如,在Cisco路由器上,如果您在Cisco的正在运行配置。

SW1#sh runn | b archive
archive
 path bootflash:$h_config
!
SW1#term exec prompt time
SW1#archive config

SW1#dir bootflash:
Directory of bootflash:/

   21  -rw-       52770   Nov 3 2013 12:48:04 -06:00  SW1_config-Nov--3-12-48-02-CST-1
   20  -rw-       52770   Nov 3 2013 12:45:02 -06:00  SW1_config-Nov--3-12-45-00-CST-0
   22  -rw-       52762   Nov 3 2013 12:52:22 -06:00  SW1_config-Nov--3-12-52-20-CST-0
   23  -rw-       52762   Nov 3 2013 14:38:44 -06:00  SW1_config-Nov--3-14-38-41-CST-1
   26  -rw-       66622  Jan 31 2014 13:17:46 -06:00  SW1_configJan-31-13-17-42-CST-2  <---

131436544 bytes total (95956992 bytes free)
SW1#


目前没有配置Loopback100 ...

SW1#sh runn int lo100
                  ^
% Invalid input detected at '^' marker.

SW1#


示例CLI事务配置和确认

让我们使用10分钟的回滚计时器来配置archive,看看自配置快照以来的变化确认更改,然后回滚。如果回滚计时器在未确认配置的情况下到期,它将自动恢复为我们的最后一个Loopback100(执行config archive时也会发生此情况)。指出无法访问的点,它将自动回滚到保存的快照...
如果您可以管理路由器但需要快速回滚到已知良好的配置,这也很有帮助。

SW1#configure terminal revert timer 10
Rollback Confirmed Change: Backing up current running config 
 to bootflash:SW1_configJan-31-13-20-21-CST-3

Enter configuration commands, one per line.  End with CNTL/Z.
SW1(config)#
SW1(config)#int loopback 100
SW1(config-if)#ip address 1.2.3.4 255.255.255.255
SW1(config-if)#end
SW1#


我们可以看到Looback100存在...

SW1#sh runn int lo100
Load for five secs: 28%/0%; one minute: 24%; five minutes: 24%
Time source is NTP, 13:21:25.243 CST Fri Jan 31 2014

Building configuration...

Current configuration : 65 bytes
!
interface Loopback100
 ip address 1.2.3.4 255.255.255.255
end

SW1#


我们可以看到回滚到最后一个配置所需的差异存档...

SW1#sh archive config differences bootflash:SW1_configJan-31-13-17-42-CST-2
Load for five secs: 17%/0%; one minute: 24%; five minutes: 23%
Time source is NTP, 13:25:55.832 CST Fri Jan 31 2014
!
!Contextual Config Diffs:
-interface Loopback100
 -ip address 1.2.3.4 255.255.255.255

SW1#


现在我们可以确认提交了……这意味着如果10分钟计时器到期,我们不会自动回滚。

SW1#configure confirm
SW1#sh runn int loo100
Load for five secs: 25%/0%; one minute: 25%; five minutes: 24%
Time source is NTP, 13:30:17.269 CST Fri Jan 31 2014

Building configuration...

Current configuration : 65 bytes
!
interface Loopback100
 ip address 1.2.3.4 255.255.255.255
end

SW1#
br />假设我们在config terminal revert之后发现问题。让我们回滚到存档的旧配置...

SW1#configure replace bootflash:SW1_configJan-31-13-17-42-CST-2
This will apply all necessary additions and deletions
to replace the current running configuration with the
contents of the specified configuration file, which is
assumed to be a complete configuration, not a partial
configuration. Enter Y if you are sure you want to proceed. ? [no]: yes
Total number of passes: 1
Rollback Done

SW1#


现在Loopback100在运行的配置中不存在。该配置与我们拍摄第一张快照时的配置完全相同。如果出现错误或某些不可预测的事件,使用此功能时将config confirm配置在您的配置中是个好主意。我喜欢最大超时值600秒...这意味着可以锁定配置的最大时间是10分钟。主要厂商来部署配置回滚功能。当时我曾在Cisco工作,而我们的销售客户都对Cisco IOS中的此功能大喊大叫。我仍然记得公司重要参与者的内部指示,他们说“在Cisco IOS中是不可能的”。

当然,有了足够的持久性(中间还有几年),我们可以IOS ...关键是,不要以为第一个“不,我们不能那样做”确实是正确的。

评论


谢谢你的例子。一件事对我来说还不清楚...键入命令后是否立即激活更改(在这种情况下为环回),或者在确认事务(配置确认)后立即激活更改。

–谦虚
2014年1月31日21:48

@ modest,Cisco立即应用命令;当您进行配置确认时,您只是在告诉路由器您不想自动回滚那些更改。当然,无需定时回滚就可以进行更改。无论哪种方式,命令都将立即激活。

–迈克·彭宁顿
2014年1月31日在21:52



#2 楼

您的假设是正确的。在这两种情况下,如果配置命令无法按预期运行,则可以将其回滚到已知点。

评论


明白了但是,您可以通过简单地加载以前的配置文件(假设在开始进行更改之前先保存它)来达到目的,以防万一情况变坏。我在这里想念什么吗?

–谦虚
2014年1月31日19:41

@modest重新加载以前的配置不会删除需要“ no ”的命令。例如,如果使用命令“ ip access-group 100 in”将访问列表应用于接口,然后键入“ copy start run”以重新加载配置,则不会删除访问列表。

–罗恩·托恩(Ron Trunk)
2014年1月31日20:00



此功能的另一件事(至少在Cisco和Juniper上)是允许您设置回滚计时器。当计时器到期时,配置将自行回滚。如果您进行了一些更改,导致与设备失去连通性,则此功能很有用。并不是说我曾经做过:(

–罗恩·托恩(Ron Trunk)
2014年1月31日20:10