JUNOS Pipe(输出符)参数总结 – Part 1

无论在JUNOS的Operational模式还是在Configuration模式下面,对于输出相关信息的命令,譬如show/help,我们都可以在输入命令以后,使用PIPE(|)输出符对输出的信息进行过滤。下面逐一举例说明,注意:由于这份文档之前发布后总被隐去来源信息而转载,因此我手动调整了代码中关于主机名的信息。JUNOS PIPE(|)输出符常见的可选项为:

nigel@itaa7.2> show configuration | ?
Possible completions:
compare          Compare configuration changes with prior
                 version
count            Count occurrences
display          Show additional kinds of information
except           Show only text that does not match a
                 pattern
find             Search for first occurrence of pattern
hold             Hold text without exiting the --More--
                 prompt
last             Display end of output only
match            Show only text that matches a pattern
no-more          Don't paginate output
request          Make system-level requests
resolve          Resolve IP addresses
save             Save output text to file
trim             Trim specified number of columns from
                 start of line

JUNOS | compare

compare 用于使用当前Candidate配置与:

  • 当前Committed配置(Rollback 1);
  • 之前committed 的50个配置文件;
  • 或者任意一个之前保存下来的配置文件;

进行比较。 命令格式如下:

nigel@itaa7.2# show | compare [ 文件名 | rollback n]

文件名:这个参数默认是路径是相关用户的home目录(/var/home/用户名)。假如你需要与保存在其它地方的配置文件进行对比,那么我们需要的是指定该配置文件在FreeBSD底下的完整路径。

n:这个参数定义的是之前所保存的50个已被committed 的配置文件中的序号。假如你在compare后面不加入任何参数,那么系统JUNOS将使用Candidate配置与内置flash当中的config/juniper.conf 配置文件进行比较。

需要注意的是,对于Olive而言,由于其本身并没有所谓PCMIC/Compact Flash的概念,本来应该存放在Compact Flash 中的config 目录被安装在FreeBSD的根目录下面。juniper.conf 实际上就是rollback 1.

比较后的输出采用以下方式标识:

  • 仅在Candidate配置下添加的配置;将使用加号标识(+)
  • 仅在相关对比文件中存在的配置,或者是在Candidate配置中被删除的配置;将使用减号标识(-)
  • 没有被修改的配置;将使用空格标识( )

例:

nigel@itaa7.2> show configuration system | compare
rollback 9
[edit system]
+ host-name nutmeg;
+ backup-router 192.168.71.254;
- ports {
-     console log-out-on-disconnect;
- }
[edit system name-server]
+ 172.17.28.11;
   172.17.28.101 { ... }
[edit system name-server]
   172.17.28.101 { ... }
+ 172.17.28.100;
+ 172.17.28.10;
[edit system]
- scripts {
-      commit {
-          allow-transients;
-      }
- }
+ services {
+      ftp;
+      rlogin;
+      rsh;
+      telnet;
+ } 

JUNOS | count

用于统计输出信息条目数量,例:

nigel@itaa7.2> show configuration | count
Count: 269 lines

JUNOS | display

该参数后面紧跟着好几个子参数,分别为:

  • Detail:根据不同的命令或者JUNOS版本,用于显示更为详尽的信息,并且对每一段输出给予相关的解析。如(以##为前缀的信息为解析信息;其它则为实际配置):
nigel@itaa7.2# show system | display detail
##
## system: System parameters
## require: admin system
##
##
## login: Names, login classes, and passwords for users
## require: admin
##
login {
    ##
    ## message: System login message
    ## range: 1 .. 2048
    ##
    message "This is an Olive";
    ##
    ## User name (login)
    ## match: Must be 1 to 16 characters (alphanumerics,
       underscores or hypens) starting with a non-hypen
       character
    ## match (regex): ^[[:alnum:]_][[:alnum:]_-]{1,15}$
    ##
    user nigel {
        ##
        ## uid: User identifier (uid)
        ## range: 100 .. 64000
        ##
        uid 2005;
        ##
        ## class: Login class
        ## match (regex): ^[[:alnum:]_-]+$
        ##
        class superuser;
        ##
        ## authentication: Authentication method
        ##
        authentication {
            ##
            ## encrypted-password: Encrypted password string
            ##
            encrypted-password
            "$1$TlAYG0vx$XlobOj/wOC6BooaRyeUme.";
            # SECRET-DATA
        }
    }
}
[edit]
  • Inheritance:显示那些通过继承模式配置以及它们是通过哪个源配置组继承下来的。
  • Set:用于显示相关配置当时如何使用set命令被配置上去。例:
nigel@itaa7.2> show configuration system | display set
set system login message "This is an Olive"
set system login user nigel uid 2005
set system login user nigel class superuser
set system login user nigel authentication encrypted-password
 "$1$TlAYG0vx$XlobOj/wOC6BooaRyeUme." 
  • XML:使用这个参数,JUNOS将把输出的内容采用打上XML标签的格式输出。由于在2005-06年的时候做了接近一年Web应用程序开发,一开始用的就是基于.NET2.0的Visual Studio,后来的php,ruby on rails等那是后话了。因此对于XML这个参数特别感兴趣。XML代表Extensible Markup Language – eXtensible Markup Language 的缩写,意为可扩展的标记语言。我们还可以把XML数据转换成其它格式,并用不同的视图来表示其内容。最简单的方法就是使用XSLT转换,它提供了一种强大的面向树的转换语言实现,可以把使用一种词汇表的XML实例转换成简单文本、HTML或者使用其它词汇表的XML.基于HTTP管理Juniper路由器的JWeb,实际上采用的便是将路由器里面采用XML储存的配置及数据,通过Web Service将相关XML数据转换成为UI更为美观的HTTP格式,我们便可以通过Web浏览器对路由器进行更为直观的管理。这里好像已经超出了网络工程师了解的范围,如果有兴趣可以在这里来对XML Web Service进行进一步的了解。

2 thoughts on “JUNOS Pipe(输出符)参数总结 – Part 1

  1. 使用JUNOS查询网络服务端口号码 « JUNIPER JUNOS & CISCO IOS 互联路由

  2. Juniper实验: JUNOS IS-IS Small/Wide Metrics对比 « JUNIPER JUNOS & CISCO IOS 互联路由

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s