- play_arrow 概述
- play_arrow 入门
- play_arrow 使用配置语句配置设备
- play_arrow 使用操作命令监视设备
- play_arrow 配置语句和操作命令
管理配置
展会 |比较 |显示 xml 命令输出
筛选器将 compare | display xml
候选配置与当前提交的配置进行比较,并以 XML 格式显示两种配置之间的差异。要比较配置,请在操作模式或配置模式下在管道 (|) 符号后输入 compare | display xml
。
操作模式下的示例:
user@host> show configuration | compare | display xml
配置模式下的示例:
[edit]
user@host# show | compare | display xml
您可以进入紧靠过滤器之前 compare
的特定配置层次结构,例如 show configuration system syslog | compare | display xml
。在配置模式下,您可以导航到应用命令的层次结构。
与比较筛选器函数的差异以 XML 格式输出。标记开始 configuration
输出。更改的上下文是使用相对于比较根的层次结构名称标记建立的。对于元素更改,将在发生更改的标记中输出一个 operation
属性。此属性的值为 create
、 delete
或 merge
。对于元数据更改,将指定元数据名称。例如,如果语句标记为非活动, inactive="inactive"
则输出属性和值。必要时使用 nc 命名空间来指示属性位于 NETCONF 命名空间中,而不是在操作系统命名空间中。
从 Junos OS 16.2R2 版开始, show | compare | display xml
如果比较未返回任何差异,或者比较仅返回非本机配置数据(例如,与 OpenConfig 数据模型关联的配置数据)的差异,则该命令将省略 <configuration>
XML 输出中的标记。
以下各节说明为特定类型的配置更改生成的 XML。显示相应的文本更改以供比较。
- 添加语句(创建操作)
- 删除语句(删除操作)
- 更改语句(删除并创建操作)
- 更改元数据(非活动属性和操作)
- 添加注释(注释标记和创建操作)
- 更改注释(注释标签,以及删除和创建操作)
- 在容器内添加 语句(创建操作,并插入和键属性)
- 更改容器内的顺序(合并操作以及插入和键属性)
添加语句(创建操作)
以下示例显示了将 IPv4 地址 2.2.2.2 添加到单元 1 的过程。
标记 到 提供 name
添加的上下文。该 operation="create"
属性指示 unit
语句已创建,并由标签中的 unit
配置定义。
[edit interfaces ge-0/0/0] user@host>show configuration | compare
[edit interfaces ge-0/0/0] + unit 1 { + family inet { + address 2.2.2.2/32; + } + } [edit interfaces ge-0/0/0] user@host#show | compare | display xml
<configuration> <interfaces> <interface> <name>ge-0/0/0</name> <unit nc:operation="create"> <name>1</name> <family> <inet> <address> <name>2.2.2.2/32</name> </address> </inet> </family> </unit> </interface> </interfaces> </configuration>
删除语句(删除操作)
以下示例显示如何删除配置层次结构中的简单语句。标记 到 提供 system
删除的上下文。该 operation="delete"
属性指示 services
语句已删除。语句后面 services
的配置已删除,但未输出。
[edit system] user@host>show configuration | compare
[edit system] - services { - ftp; - } [edit system] user@host#show | compare | display xml
<configuration> <system> <services operation="delete"/> </system> </configuration>
以下示例显示了如何从接口中删除 ge-0/0/0
单元 1。语句后面 unit
的配置已删除,但未输出。
[edit interfaces ge-0/0/0] user@host>show configuration | compare
[edit interfaces ge-0/0/0] - unit 1 { - family inet { - address 2.2.2.2/32; - } - } [edit interfaces ge-0/0/0] user@host#show | compare | display xml
<configuration> <interfaces> <interface> <name>ge-0/0/0</name> <unit nc:operation="delete"> <name>1</name> </unit> </interface> </interfaces> </configuration>
以下示例显示了配置的 apply-groups
删除。已删除的组不会显示在输出中。
[edit] user@host#delete apply-groups
[edit] user@host>show configuration | compare
[edit] - apply-groups [ g1 g2 g3 ]; [edit] user@host#show | compare | display xml
<configuration> <apply-groups operation="delete"/> </configuration>
更改语句(删除并创建操作)
以下示例显示了层次结构中语句的更改。标记 为 为 system
提供更改的上下文。该 operation="delete"
属性指示 host-name
语句已删除。语句后面 host-name
的配置已删除,但输出中未显示。该 operation="create"
属性指示 host-name
语句已创建,并由标签中的 host-name
配置定义。
[edit system] user@host>show configuration | compare
[edit system] - host-name router1; + host-name router2; [edit system] user@host#show | compare | display xml
<configuration> <system> <host-name nc:operation="delete"/> <host-name nc:operation="create">router2</host-name> </system> </configuration>
更改元数据(非活动属性和操作)
以下示例显示如何停用层次结构中的语句。标记 为 为 system
提供更改的上下文。该 inactive="inactive"
属性指示 syslog
语句已停用。
[edit system] user@host>show configuration | compare
[edit system] ! inactive: syslog { ... } [edit system] user@host#show | compare | display xml
<configuration> <system> <syslog inactive="inactive"/> </system> </configuration>
下面的示例演示如何添加非活动 syslog
语句。该 operation="create"
属性指示 syslog
语句已创建,并由标记中的 syslog
配置定义。该 inactive="inactive"
属性指示 syslog
语句已停用。
[edit system] user@host>show configuration | compare
[edit system] + inactive: syslog { + file foo { + any any; + } + } [edit system] user@host#show | compare | display xml
<configuration> <system> <syslog nc:operation="create" inactive="inactive"> <file> <name>foo</name> <contents> <name>any</name> <any/> </contents> </file> </syslog> </system> </configuration>
添加注释(注释标记和创建操作)
下面的示例演示如何向语句添加注释。标记 到 为 syslog
注释提供上下文。operation="create"
标记的属性junos:comment
指示注释已添加到层次结构中[edit system syslog]
。
[edit system] user@host>show configuration | compare
[edit system] + /* my-comments-simple */ syslog { ... } [edit system] user@host#show | compare | display xml
<configuration> <system> <junos:comment nc:operation="create">/* my-comments-simple */</junos:comment> <syslog/> </system> </configuration>
下面的示例演示如何向语句添加注释。标记 到 为 syslog
注释提供上下文。标签的属性junos:comment
指示注释已添加到标签内syslog
语句输出的层次结构中[edit system syslog]
。operation="create"
[edit system syslog] user@host>show configuration | compare
+ /* my-comments-ele */ file f1 { ... } [edit system syslog] user@host#show | compare | display xml
<configuration> <system> <syslog> <junos:comment nc:operation="create">/* my-comments-elem */</junos:comment> <file> <name>f1</name> </file> </syslog> </system> </configuration>
更改注释(注释标签,以及删除和创建操作)
下面的示例演示语句注释的更改。标记 到 为 system
注释提供上下文。
operation="delete"
标签的属性junos:comment
指示注释已从[edit system]
语句的syslog
层次结构中删除。operation="create"
标记的属性junos:comment
指示注释已添加到语句的syslog
层次结构中[edit system]
。
[edit system] user@host>show configuration | compare
- /* my-comments-1 */ + /* my-comments-2 */ syslog { ... } [edit system] user@host#show | compare | display xml
<configuration> <system> <junos:comment nc:operation="delete"/> <junos:comment nc:operation="create">/* my-comments-2 */</junos:comment> <syslog/> </system> </configuration>
在容器内添加 语句(创建操作,并插入和键属性)
下面的示例演示如何在层次结构中添加[edit system syslog]
语句file
。标记 到 提供 syslog
添加的上下文。
operation="create"
标签的属性file
指示file
已添加语句。该
yang:insert="after"
属性指示文件是在属性指示yang:key="[name='file-1']"
的位置之后添加的。file-1 值表示现有
file
语句中的位置,其中一个是第一个文件。在此示例中,new
file
语句是在第一个文件之后添加的。
[edit system syslog] user@host>show configuration | compare
[edit system syslog] file file-1 { ... } + file file-2 { + any any; + } [edit system syslog] user@host#show | compare | display xml
<configuration> <system> <syslog> <file nc:operation="create" yang:insert="after" yang:key="[name='file-1']"> <name>file-2</name> <contents> <name>any</name> <any/> </contents> </file> </syslog> </system> </configuration>
更改容器内的顺序(合并操作以及插入和键属性)
以下示例显示了层次结构中[edit system syslog]
语句顺序file
的变化。标记 为 为 syslog
提供更改的上下文。
operation="merge"
标签的属性file
指示已移动现有file
语句。该
yang:insert="after"
属性指示文件在文件之后移动到该yang:key="[name='file-1']"
属性指示的位置。file-1 值表示现有
file
语句中的一个位置,其中一个是第一个文件。标记 file-3 处
name
的值表示现有 file 语句中的位置。在此示例中,
file
第三个位置的语句在第一个文件之后移动。
[edit system syslog] user@host>show configuration | compare
[edit system syslog] file f1 { ... } ! file f3 { ... } [edit system syslog] user@host#show | compare | display xml
<configuration> <system> <syslog> <file nc:operation="merge" yang:insert="after" yang:key="[name='file-1']"> <name>file-3</name> </file> </syslog> </system> </configuration>
返回到最近提交的配置
要返回到最近提交的配置并将其加载到配置模式而不激活它,请使用 rollback
配置模式命令:
[edit]
user@host# rollback
load complete
要激活已回滚到的配置,请使用 commit
以下命令:
[edit] user@host#rollback
load complete [edit] user@host#commit
返回到之前提交的配置
本主题说明如何返回到比最近提交的配置更早的配置。
返回到先前配置的示例
要返回到以前的配置,请在命令中包含 rollback
配置编号 0 到 49。最近保存的配置是编号 0(这是系统返回的默认配置),保存的最旧的配置是编号 49。
示例:
[edit]
user@host# rollback number
load complete
显示先前配置的示例
要显示以前的配置,请使用 rollback ?
命令。您可以包括回滚编号、日期、时间、提交更改的用户的名称以及提交方法。
示例:
[edit]
user@host# rollback ?
Possible completions:
<[Enter]> Execute this command
<number> Numeric argument
0 2018-02-27 12:52:10 PST by abc via cli
1 2018-02-26 14:47:42 PST by def via cli
2 2018-02-14 21:55:45 PST by ghi via cli
3 2018-02-10 16:11:30 PST by jkl via cli
4 2018-02-10 16:02:35 PST by mno via cli
5 2018-03-16 15:10:41 PST by pqr via cli
6 2018-03-16 14:54:21 PST by stu via cli
7 2018-03-16 14:51:38 PST by vwx via cli
8 2018-03-16 14:43:29 PST by yzz via cli
9 2018-03-16 14:15:37 PST by abc via cli
10 2018-03-16 14:13:57 PST by def via cli
11 2018-03-16 12:57:19 PST by root via other
12 2018-03-16 10:45:23 PST by root via other
13 2018-03-16 10:08:13 PST by root via other
14 2018-03-16 01:20:56 PST by root via other
15 2018-03-16 00:40:37 PST by ghi via cli
16 2018-03-16 00:39:29 PST by jkl via cli
17 2018-03-16 00:32:36 PST by mno via cli
18 2018-03-16 00:31:17 PST by pqr via cli
19 2018-03-15 19:59:00 PST by stu via cli
20 2018-03-15 19:53:39 PST by vwx via cli
21 2018-03-15 18:07:19 PST by yzz via cli
22 2018-03-15 17:59:03 PST by abc via cli
23 2018-03-15 15:05:14 PST by def via cli
24 2018-03-15 15:04:51 PST by ghi via cli
25 2018-03-15 15:03:42 PST by jkl via cli
26 2018-03-15 15:01:52 PST by mno via cli
27 2018-03-15 14:58:34 PST by pqr via cli
28 2018-03-15 13:09:37 PST by root via other
29 2018-03-12 11:01:20 PST by stu via cli
30 2018-03-12 10:57:35 PST by vwx via cli
31 2018-03-11 10:25:07 PST by yzz via cli
32 2018-03-10 23:40:58 PST by abc via cli
33 2018-03-10 23:40:38 PST by def via cli
34 2018-03-10 23:14:27 PST by ghi via cli
35 2018-03-10 23:10:16 PST by jkl via cli
36 2018-03-10 23:01:51 PST by mno via cli
37 2018-03-10 22:49:57 PST by pqr via cli
38 2018-03-10 22:24:07 PST by stu via cli
39 2018-03-10 22:20:14 PST by vwx via cli
40 2018-03-10 22:16:56 PST by yzz via cli
41 2018-03-10 22:16:41 PST by abc via cli
42 2018-03-10 20:44:00 PST by def via cli
43 2018-03-10 20:43:29 PST by ghi via cli
44 2018-03-10 20:39:14 PST by jkl via cli
45 2018-03-10 20:31:30 PST by root via other
46 2018-03-10 18:57:01 PST by mno via cli
47 2018-03-10 18:56:18 PST by pqr via cli
48 2018-03-10 18:47:49 PST by stu via cli
49 2018-03-10 18:47:34 PST by vw via cli
| Pipe through a command
[edit]
关于比较配置版本
只有在配置模式下,当您对配置进行更改时,才能将候选配置与以前的版本进行比较。要比较版本,请使用 compare
命令显示配置。该 compare
命令将候选配置与当前提交的配置或配置文件进行比较。此命令还显示两种配置之间的差异。
要比较配置,请在竖线后指定 compare
命令:
[edit]
user@host# show | compare (filename| rollback n)
filename
是配置文件的完整路径。该文件必须采用正确的格式:语句的层次结构。n
是以前提交的配置列表的索引。最近保存的配置编号为 0,保存的最早配置编号为 49。如果未指定参数,系统会将候选配置与活动配置文件 ()/config/juniper.conf 进行比较。
比较输出在语句的前缀中包含以下符号:
仅在候选配置中:加号 (+)。
仅在比较文件中:减号 (-)。
变;单个空格 ( )。
以下示例显示了各种更改,然后比较候选配置与活动配置。该示例仅显示了在层次结构级别所做的 [edit protocols bgp]
更改:
[edit] user@host#edit protocols bgp
[edit protocols bgp] user@host#show
group my-group { type internal; hold-time 60; advertise-inactive; allow 10.1.1.1/8; } group fred { type external; peer-as 33333; allow 10.2.2.2/8; } group test-peers { type external; allow 10.3.3.3/8; } [edit protocols bgp] user@host#set group my-group hold-time 90
[edit protocols bgp] user@host#delete group my-group advertise-inactive
[edit protocols bgp] user@host#set group fred advertise-inactive
[edit protocols bgp] user@host#delete group test-peers
[edit protocols bgp] user@host#show | compare
[edit protocols bgp group my-group] -hold-time 60; +hold-time 90; -advertise-inactive; [edit protocols bgp group fred] +advertise-inactive; [edit protocols bgp] -group test-peers { -type external; -allow 10.3.3.3/8; } [edit protocols bgp] user@host#show
group my-group { type internal; hold-time 90; allow 10.1.1.1/8; } group fred { type external; advertise-inactive; peer-as 3333; allow 10.2.2.2/8; }
使用配置修订标识符
每个提交都有一个与之关联的配置修订标识符 (CRI)。CRI 是唯一的字符串,与回滚索引不同,它在提交新配置时不会更改。
由于给定已提交配置的 CRI 是固定的,因此与使用回滚索引相比,它具有优势。网络管理系统 (NMS) 可以缓存给定提交的 CRI。稍后,NMS 可以将缓存值与网络设备上当前配置的 CRI 进行比较,以检测其他系统是否对设备进行了带外配置更改,例如,在维护时段内。
此外,从 Junos OS 和 Junos OS 演化版 20.4R1 开始,您可以使用与已提交配置关联的 CRI 执行以下操作:
查看配置。
比较两种配置。
恢复为配置。
检索与该配置关联的当前回滚索引。
若要查看与每个提交关联的 CRI,请使用 show system commit include-configuration-revision
命令。这将显示系统提交历史记录和每个提交的 CRI。
user@host> show system commit include-configuration-revision 0 2020-08-02 00:42:58 IST by user via cli re0-1596309177-4 1 2020-08-02 00:42:53 IST by user via cli re0-1596309173-3 2 2020-08-02 00:42:50 IST by user via cli re0-1596309170-2 3 2020-08-02 00:42:40 IST by user via other re0-1596309160-1
或者,您可以通过发出 show system rollback number configuration-revision
命令来查看特定回滚编号的 CRI。
user@host> show system rollback 0 configuration-revision The corresponding configuration revision is: re0-1596309177-4
获得特定提交的 CRI 字符串后,可以使用命令查看 show system configuration revision cri-string
该配置。
user@host> show system configuration revision re0-1596309177-4
您可以使用带有两个 CRI 的选项来 compare
比较 2 种配置。
user@host> show system configuration revision compare re0-1596309177-4 re0-1596309173-3
您还可以通过包含该 rollback-number cri-string
选项来查看特定 CRI 的回滚编号。
user@host> show system configuration revision rollback-number re0-1596309160-1 The corresponding rollback number is: 3
此外,在配置模式下,可以通过指定 CRI 而不是回滚索引来回滚到配置。
[edit] user@host# rollback revision re0-1596309160-1 load complete [edit] user@host# commit
将配置保存到文件
通过将设备配置保存到文件中,您可以使用您选择的任何纯文本编辑器对其进行编辑。您可以将当前配置保存到 ASCII 文件中,该文件会以当前形式保存配置,包括任何未提交的更改。如果多个用户正在修改配置,则会保存所有用户所做的所有更改。
要将软件配置更改保存到 ASCII 文件,请使用 save
配置模式命令:
[edit]
user@host# save filename
[edit]
user@host#
将保存语句层次结构的当前级别(及以下级别)的内容以及包含该层次结构的语句层次结构。这允许保存配置的一部分,同时完全指定语句层次结构。
默认情况下,配置将保存到主目录中的文件中,该文件位于闪存驱动器上。
从层次结构中的任何位置(顶级除外)发出此命令时, replace
文件开头会自动包含一个标记。您可以使用标记 replace
来控制如何从文件加载配置。
示例:
user@host>file show /var/home/user/myconf
replace
: protocols { bgp { disable; group int { type internal; } } isis { disable; interface all { level 1 disable; } interface fxp0.0 { disable; } } ospf { traffic-engineering; reference-bandwidth 4g; ... } }
关于压缩当前配置文件
默认情况下,当前操作配置文件被压缩并存储在文件系统的/config文件中juniper.conf.gz。操作配置文件与配置的最后三个提交版本一起存储。如果您有大型网络,则当前配置文件可能会超过文件系统中的 /config 可用空间。压缩当前配置文件可使文件适合文件系统,通常可将文件大小减小 90%。您可能希望在当前操作配置文件的大小达到 3 兆字节 (MB) 时对其进行压缩。
压缩当前配置文件时,配置文件的名称会更改。要确定文件系统中 /config 文件的大小,请发出 file list /config detail
命令。
我们建议您压缩配置文件(这是默认设置)以最大程度地减少它们所需的磁盘空间量。
如果要压缩当前配置文件,请在层次结构级别包含
compress-configuration-files
[edit system]
语句:content_copy zoom_out_map[edit system] compress-configuration-files;
提交当前配置文件以包含
compression-configuration-files
该语句。再次提交配置以压缩当前配置文件:content_copy zoom_out_map[edit system] user@host#
set compress-configuration-files
user@host#commit
commit complete如果不想压缩当前操作配置文件,请在层次结构级别包含
no-compress-configuration-files
[edit system]
该语句:content_copy zoom_out_map[edit system] no-compression-configuration-files;
提交当前配置文件以包含
no-compress-configuration-files
该语句。再次提交配置以解压缩当前配置文件:content_copy zoom_out_map[edit system] user@host#
set no-compress-configuration-files
user@host#commit
commit complete
释放系统存储空间
问题
Description
设备上的系统文件存储空间已满。重新启动交换机不能解决问题。
文件存储空间已满后,在设备上执行典型操作期间,会出现以下错误消息:
user@host%cli
user@host>configure
/var: write failed, filesystem is full
解决方案
通过删除系统文件来清理设备上的文件存储。
发出清理(删除)系统文件的请求。
content_copy zoom_out_mapuser@host>
request system storage cleanup
将显示要删除的文件列表。
content_copy zoom_out_mapList of files to delete: Size Date Name 11B Jul 26 20:55 /var/jail/tmp/alarmd.ts 124B Aug 4 18:05 /var/log/default-log-messages.0.gz 1301B Jul 26 20:42 /var/log/install.0.gz 387B Jun 3 14:37 /var/log/install.1.gz 4920B Aug 4 18:05 /var/log/messages.0.gz 20.0K Jul 26 21:00 /var/log/messages.1.gz 16.3K Jun 25 13:45 /var/log/messages.2.gz 804B Aug 4 18:05 /var/log/security.0.gz 16.8K Aug 3 11:15 /var/log/security.1.gz 487B Aug 4 18:04 /var/log/wtmp.0.gz 855B Jul 29 22:54 /var/log/wtmp.1.gz 920B Jun 30 16:32 /var/log/wtmp.2.gz 94B Jun 3 14:36 /var/log/wtmp.3.gz 353.2K Jun 3 14:37 /var/sw/pkg/jloader-qfx-11.2I20110303_1117_dc-builder.tgz 124.0K Jun 3 14:30 /var/tmp/gres-tp/env.dat 0B Apr 14 16:20 /var/tmp/gres-tp/lock 0B Apr 14 17:37 /var/tmp/if-rtsdb/env.lck 12.0K Jul 26 20:55 /var/tmp/if-rtsdb/env.mem 2688.0K Jul 26 20:55 /var/tmp/if-rtsdb/shm_usr1.mem 132.0K Jul 26 20:55 /var/tmp/if-rtsdb/shm_usr2.mem 2048.0K Jul 26 20:55 /var/tmp/if-rtsdb/trace.mem 155B Jul 26 20:55 /var/tmp/krt_gencfg_filter.txt 0B Jul 26 20:55 /var/tmp/rtsdb/if-rtsdb 1400.6K Aug 3 10:13 /var/tmp/sfid.core.0.gz 1398.9K Aug 3 17:01 /var/tmp/sfid.core.1.gz Delete these files ? [yes,no] (no)
选择删除
yes
文件。重新启动设备。
我们建议您定期发出清理系统文件存储的请求。清理系统文件存储空间可优化设备性能。
使用 CLI 清理文件
您可以使用 CLI request system storage cleanup
命令轮换日志文件并删除设备上不必要的文件。如果存储空间不足,文件清理过程会快速识别您可以删除的文件。
文件清理过程执行以下任务:
轮换日志文件 - 存档当前日志文件中的所有信息、删除旧存档并创建新日志文件。
删除 中的
/var/log
日志文件 —删除当前未写入的任何文件。删除 中的
/var/tmp
临时文件 —删除两天内未访问过的任何文件。删除 -
/var/crash
删除设备在错误期间写入的任何核心文件。删除
*.tgz
—/var/sw/pkg
删除软件升级期间复制到此目录的所有软件映像(文件)。
要使用 CLI 轮换日志文件并删除不必要的文件,请执行以下操作:
您可以发出命令来 request system storage cleanup dry-run
查看可以安全删除的文件列表。dry-run 操作允许您在发出 request system storage cleanup
删除文件的命令之前查看列表。
在 SRX 系列防火墙上,/var
层次结构托管在单独的分区(而不是根分区)中。如果由于空间不足导致操作系统安装失败:
使用
request system storage cleanup
命令删除临时文件。删除根分区和层次结构下
/var
的任何用户创建的文件。
变更历史表
是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。
show | compare | display xml
如果比较未返回任何差异,或者比较仅返回非本机配置数据(例如,与 OpenConfig 数据模型关联的配置数据)的差异,则该命令将省略 <configuration>
XML 输出中的标记。