Network Working Group                                            D. Levi
Request for Comments: 2592                               Nortel Networks
Category: Standards Track                               J. Schoenwaelder
                                                         TU Braunschweig
                                                                May 1999
        
Network Working Group                                            D. Levi
Request for Comments: 2592                               Nortel Networks
Category: Standards Track                               J. Schoenwaelder
                                                         TU Braunschweig
                                                                May 1999
        

Definitions of Managed Objects for the Delegation of Management Scripts

管理脚本委托的托管对象定义

Status of this Memo

本备忘录的状况

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (1999). All Rights Reserved.

版权所有(C)互联网协会(1999年)。版权所有。

Abstract

摘要

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes a set of managed objects that allow the delegation of management scripts to distributed managers.

此备忘录定义了管理信息库(MIB)的一部分,用于Internet社区中的网络管理协议。特别是,它描述了一组托管对象,允许将管理脚本委托给分布式管理器。

Table of Contents

目录

   1. Introduction .................................................   2
   2. The SNMP Management Framework ................................   2
   3. Overview .....................................................   3
   3.1 Terms ......................................................    4
   4. Requirements and Design Issues ..............................    5
   4.1 Script Languages ...........................................    5
   4.2 Script Transfer ............................................    6
   4.3 Script Execution ...........................................    7
   5. The Structure of the MIB .....................................   8
   5.1 The smLanguageGroup ........................................    9
   5.2 The smScriptGroup ..........................................    9
   5.3 The smCodeGroup ............................................   10
   5.4 The smLaunchGroup ..........................................   10
   5.5 The smRunGroup .............................................   11
   6 Definitions ..................................................   11
   7. Usage Examples ...............................................  41
   7.1 Pushing a script via SNMP ..................................   41
        
   1. Introduction .................................................   2
   2. The SNMP Management Framework ................................   2
   3. Overview .....................................................   3
   3.1 Terms ......................................................    4
   4. Requirements and Design Issues ..............................    5
   4.1 Script Languages ...........................................    5
   4.2 Script Transfer ............................................    6
   4.3 Script Execution ...........................................    7
   5. The Structure of the MIB .....................................   8
   5.1 The smLanguageGroup ........................................    9
   5.2 The smScriptGroup ..........................................    9
   5.3 The smCodeGroup ............................................   10
   5.4 The smLaunchGroup ..........................................   10
   5.5 The smRunGroup .............................................   11
   6 Definitions ..................................................   11
   7. Usage Examples ...............................................  41
   7.1 Pushing a script via SNMP ..................................   41
        
   7.2 Pulling a script from a URL ................................   42
   7.3 Modifying an existing script ...............................   42
   7.4 Removing an existing script ................................   43
   7.5 Creating a launch button ...................................   43
   7.6 Launching a script .........................................   44
   7.7 Terminating a script .......................................   44
   7.8 Removing a launch button ...................................   45
   8. VACM Configuration Examples ..................................  45
   8.1 Sandbox for guests .........................................   45
   8.2 Sharing scripts ............................................   46
   8.3 Emergency scripts ..........................................   47
   9. IANA Considerations ..........................................  48
   10. Security Considerations .....................................  48
   11. Intellectual Property .......................................  49
   12.  Acknowledgments ............................................. 49
   13. References ..................................................  50
   14. Editors' Addresses ..........................................  52
   16. Full Copyright Statement ....................................  53
        
   7.2 Pulling a script from a URL ................................   42
   7.3 Modifying an existing script ...............................   42
   7.4 Removing an existing script ................................   43
   7.5 Creating a launch button ...................................   43
   7.6 Launching a script .........................................   44
   7.7 Terminating a script .......................................   44
   7.8 Removing a launch button ...................................   45
   8. VACM Configuration Examples ..................................  45
   8.1 Sandbox for guests .........................................   45
   8.2 Sharing scripts ............................................   46
   8.3 Emergency scripts ..........................................   47
   9. IANA Considerations ..........................................  48
   10. Security Considerations .....................................  48
   11. Intellectual Property .......................................  49
   12.  Acknowledgments ............................................. 49
   13. References ..................................................  50
   14. Editors' Addresses ..........................................  52
   16. Full Copyright Statement ....................................  53
        
1. Introduction
1. 介绍

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes a set of managed objects that allow the delegation of management scripts to distributed managers.

此备忘录定义了管理信息库(MIB)的一部分,用于Internet社区中的网络管理协议。特别是,它描述了一组托管对象,允许将管理脚本委托给分布式管理器。

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [21].

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119[21]中所述进行解释。

2. The SNMP Management Framework
2. SNMP管理框架

The SNMP Management Framework presently consists of five major components:

SNMP管理框架目前由五个主要组件组成:

o An overall architecture, described in RFC 2271 [1].

o RFC 2271[1]中描述的总体架构。

o Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and described in STD 16, RFC 1155 [2], STD 16, RFC 1212 [3] and RFC 1215 [4]. The second version, called SMIv2, is described in STD 58, RFC 2578 [5], RFC 2579 [6] and RFC 2580 [7].

o 为管理目的描述和命名对象和事件的机制。这种管理信息结构(SMI)的第一个版本称为SMIv1,并在STD 16、RFC 1155[2]、STD 16、RFC 1212[3]和RFC 1215[4]中进行了描述。第二个版本称为SMIv2,在STD 58、RFC 2578[5]、RFC 2579[6]和RFC 2580[7]中进行了描述。

o Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and described in STD 15, RFC 1157 [8]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10]. The third version of the message protocol is called SNMPv3 and described in RFC 1906 [10], RFC 2272 [11] and RFC 2274 [12].

o 用于传输管理信息的消息协议。SNMP消息协议的第一个版本称为SNMPv1,在STD 15、RFC 1157[8]中进行了描述。SNMP消息协议的第二个版本不是互联网标准跟踪协议,称为SNMPv2c,在RFC 1901[9]和RFC 1906[10]中进行了描述。消息协议的第三个版本称为SNMPv3,在RFC 1906[10]、RFC 2272[11]和RFC 2274[12]中进行了描述。

o Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in STD 15, RFC 1157 [8]. A second set of protocol operations and associated PDU formats is described in RFC 1905 [13].

o 访问管理信息的协议操作。STD 15、RFC 1157[8]中描述了第一组协议操作和相关PDU格式。RFC 1905[13]中描述了第二组协议操作和相关PDU格式。

o A set of fundamental applications described in RFC 2273 [14] and the view-based access control mechanism described in RFC 2275 [15].

o RFC 2273[14]中描述的一组基本应用程序和RFC 2275[15]中描述的基于视图的访问控制机制。

Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms defined in the SMI.

托管对象通过虚拟信息存储(称为管理信息库或MIB)进行访问。MIB中的对象是使用SMI中定义的机制定义的。

MIB conforming to the SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (use of Counter64). Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during the translation process. However, this loss of machine readable information is not considered to change the semantics of the MIB.

可以通过适当的翻译生成符合SMIv1的MIB。生成的已翻译MIB必须在语义上等效,除非由于无法翻译而省略了对象或事件(使用计数器64)。在翻译过程中,SMIv2中的一些机器可读信息将转换为SMIv1中的文本描述。但是,这种机器可读信息的丢失不被认为会改变MIB的语义。

3. Overview
3. 概述

The Script MIB module defined in this memo can be used to delegate management functions to distributed managers. Management functions are defined as management scripts written in a management scripting language. This MIB makes no assumptions about the language itself and even allows distribution of compiled native code, if an implementation is able to execute native code under the control of this MIB.

此备忘录中定义的脚本MIB模块可用于将管理功能委托给分布式管理器。管理功能定义为使用管理脚本语言编写的管理脚本。如果实现能够在该MIB的控制下执行本机代码,则该MIB不对语言本身进行任何假设,甚至允许分发已编译的本机代码。

The Script MIB defines a standard interface for the delegation of management functions based on the Internet management framework. In particular, it provides the following capabilities:

脚本MIB定义了基于Internet管理框架的管理功能委托的标准接口。特别是,它提供了以下功能:

1. Capabilities to transfer management scripts to a distributed manager.

1. 将管理脚本传输到分布式管理器的功能。

2. Capabilities for initiating, suspending, resuming and terminating management scripts.

2. 用于启动、挂起、恢复和终止管理脚本的功能。

3. Capabilities to transfer arguments for management scripts.

3. 传输管理脚本参数的功能。

4. Capabilities to monitor and control running management scripts.

4. 监视和控制正在运行的管理脚本的功能。

5. Capabilities to transfer the results produced by running management scripts.

5. 传输运行管理脚本产生的结果的功能。

This memo does not address any additional topics like the generation of notifications or how to address remote agents from a Script MIB implementation.

本备忘录不涉及任何其他主题,如通知的生成或如何通过脚本MIB实现对远程代理进行寻址。

3.1. Terms
3.1. 条款

This section defines the terms used throughout this memo.

本节定义了本备忘录中使用的术语。

o A `distributed manager' is a processing entity which is capable of performing network management functions. For the scope of this memo, a distributed manager is assumed to implement the Script MIB.

o “分布式管理器”是能够执行网络管理功能的处理实体。对于本备忘录的范围,假定使用分布式管理器来实现脚本MIB。

o A `higher-level manager', or just `manager', is a processing entity or human who initiates and controls the operations performed by one or more distributed managers.

o “更高级别的管理者”或“管理者”是一个处理实体或人员,负责发起和控制一个或多个分布式管理者执行的操作。

o A `management script' is a set of instructions written in an executable language which implements a management function.

o “管理脚本”是用可执行语言编写的一组指令,用于实现管理功能。

o A `management scripting language' is a language used to write management scripts. Note, the term scripting language does not imply that the language must have the characteristics of scripting languages (e.g. string orientation, interpretation, weak typing). The MIB defined in this memo also allows to control management scripts written in arbitrary compiled system programming languages.

o “管理脚本语言”是一种用于编写管理脚本的语言。请注意,术语脚本语言并不意味着该语言必须具有脚本语言的特征(例如字符串方向、解释、弱类型)。本备忘录中定义的MIB还允许控制以任意编译系统编程语言编写的管理脚本。

o A `distributed manager' can be decomposed into an `SNMP entity' which implements the Script MIB defined in this memo and the `runtime system' that executes scripts. The Script MIB sees the runtime system as the managed resource which is controlled by the MIB.

o “分布式管理器”可以分解为“SNMP实体”,该实体实现本备忘录中定义的脚本MIB和执行脚本的“运行时系统”。脚本MIB将运行时系统视为受MIB控制的托管资源。

The runtime system can act as an SNMP application, according to the SNMP architecture defined in RFC 2271 [1]. For example, a runtime system which sends SNMP requests to other SNMP entities will act as a command generator application. The SNMP

根据RFC 2271[1]中定义的SNMP体系结构,运行时系统可以充当SNMP应用程序。例如,向其他SNMP实体发送SNMP请求的运行时系统将充当命令生成器应用程序。SNMP

applications in the runtime system may use the same SNMP engine which also serves the command responder application used to implement the Script MIB, but they are not required to do so.

运行时系统中的应用程序可以使用相同的SNMP引擎,该引擎也为用于实现脚本MIB的命令响应程序应用程序提供服务,但不需要这样做。

o A `launch button' is the conceptual button used to start the execution of a management script. It assignes control parameters to a management script. In particular, it defines the ownership of the scripts started from a launch button. The ownership can be used by the language runtime system to enforce security profiles on a running management script.

o “启动按钮”是用于启动管理脚本执行的概念性按钮。它将控制参数分配给管理脚本。特别是,它定义了从启动按钮启动的脚本的所有权。语言运行时系统可以使用所有权在运行的管理脚本上强制实施安全配置文件。

4. Requirements and Design Issues
4. 需求和设计问题

This section discusses some general requirements that have influenced the design of the Script MIB.

本节讨论影响脚本MIB设计的一些一般需求。

o The Script MIB must not make any assumptions about specific languages or runtime systems.

o 脚本MIB不得对特定语言或运行时系统进行任何假设。

o The Script MIB must provide mechanisms that help to avoid new management problems (e.g. script version problems).

o 脚本MIB必须提供有助于避免新的管理问题(例如脚本版本问题)的机制。

o The Script MIB must provide SNMP interfaces to all functions required to delegate management scripts. However, other protocols might be used in addition if they provide a significant improvement in terms of convenience for implementation or performance.

o 脚本MIB必须为委托管理脚本所需的所有功能提供SNMP接口。然而,如果其他协议在实现或性能方面提供了显著的改进,则可以另外使用它们。

o The Script MIB must be organized so that access can be controlled effectively by using view-based access control [15].

o 必须组织脚本MIB,以便通过使用基于视图的访问控制有效地控制访问[15]。

The following sections discuss some design issues in more detail.

以下各节将更详细地讨论一些设计问题。

4.1. Script Languages
4.1. 脚本语言

The Script MIB defined in this memo makes no assumption about the script language. This MIB can therefore be used in combination with different languages (such as Tcl or Java) and/or different versions of the same language. No assumptions are made about the format in which management scripts are transferred.

本备忘录中定义的脚本MIB不对脚本语言进行假设。因此,此MIB可以与不同语言(如Tcl或Java)和/或同一语言的不同版本结合使用。未对管理脚本的传输格式进行任何假设。

The Script MIB provides access to information about the language versions supported by a Script MIB implementation so that a manager can learn about the capabilities provided by an implementation. Languages and language versions are identified as follows:

脚本MIB提供对脚本MIB实现支持的语言版本信息的访问,以便管理者可以了解实现提供的功能。语言和语言版本标识如下:

1. The language is identified by an object identifier. Object identifier for well-known languages will be registered by the Internet Assigned Numbers Authority (IANA). Enterprise specific languages can also be registered in the enterprise specific OID subtree.

1. 该语言由对象标识符标识。著名语言的对象标识符将由互联网分配号码管理局(IANA)注册。企业特定语言也可以在企业特定OID子树中注册。

2. A particular version of a language is identified by a language version number. The combination of a language object identifier and a language version is in most cases sufficient to decide whether a script can be executed or not.

2. 语言的特定版本由语言版本号标识。在大多数情况下,语言对象标识符和语言版本的组合足以决定脚本是否可以执行。

3. Different implementations of the same language version might have differences due to ambiguities in the language definition or additional language features provided by an implementor. An additional object identifier value is provided which identifies the organization which provides the implementation of a language. This might be used by scripts that require a particular implementation of a language.

3. 同一语言版本的不同实现可能会因语言定义的歧义或实现者提供的其他语言特性而存在差异。提供了一个附加的对象标识符值,用于标识提供语言实现的组织。这可能由需要特定语言实现的脚本使用。

4. Finally, there might be different versions of a language implementation. A version number for the language implementation is provided so that the manager can also distinguish between different implementations from the same organization of a particular language version.

4. 最后,可能有不同版本的语言实现。提供语言实现的版本号,以便经理还可以区分来自特定语言版本的同一组织的不同实现。

The version numbers can either be used by a manager to select the language version required to execute a particular script or to select a script that fits the language versions supported by a particular Script MIB implementation.

管理器可以使用版本号选择执行特定脚本所需的语言版本,也可以选择适合特定脚本MIB实现支持的语言版本的脚本。

An additional table lists language extensions that provide features not provided by the core language. Language extensions are usually required to turn a general purpose language into a management language. In many cases, language extensions will come in the form of libraries that provide capabilities like sending SNMP requests to remote SNMP agents or accessing the local MIB instrumentation. Every extension is associated with a language and carries its own version numbers.

另一个表列出了提供核心语言未提供的功能的语言扩展。将通用语言转换为管理语言通常需要语言扩展。在许多情况下,语言扩展将以库的形式出现,这些库提供向远程SNMP代理发送SNMP请求或访问本地MIB检测等功能。每个扩展都与一种语言相关联,并带有自己的版本号。

4.2. Script Transfer
4.2. 脚本传输

There are two different ways to transfer management scripts to a distributed manager. The first approach requires that the manager pushes the script to the distributed manager. This is therefore called the `push model'. The second approach is the `pull model' where the manager tells the distributed manager the location of the script and the distributed manager retrieves the script itself.

将管理脚本传输到分布式管理器有两种不同的方法。第一种方法要求管理器将脚本推送到分布式管理器。因此,这被称为“推送模式”。第二种方法是“拉模型”,其中管理器告诉分布式管理器脚本的位置,分布式管理器检索脚本本身。

The MIB defined in this memo supports both models. The `push model' is realized by a table which allows a manager to write scripts by sending a sequence of SNMP set requests. The script can be split into several fragments in order to deal with SNMP message size limitations.

本备忘录中定义的MIB支持这两种模型。“推送模式”由一个表实现,该表允许管理者通过发送一系列SNMP集合请求来编写脚本。为了处理SNMP消息大小限制,可以将脚本拆分为多个片段。

The `pull model' is realized by the use of Uniform Resource Locators (URLs) [17] that point to the script source. The manager writes the URL which points to the script source to the distributed manager by sending an SNMP set request. The distributed manager is then responsible for retrieving the document using the protocol specified in the URL. This allows the use of protocols like FTP [18] or HTTP [19] to transfer large management scripts efficiently.

“拉动模型”是通过使用指向脚本源的统一资源定位器(URL)[17]实现的。管理器通过发送SNMP设置请求,将指向脚本源的URL写入分布式管理器。然后,分布式管理器负责使用URL中指定的协议检索文档。这允许使用FTP[18]或HTTP[19]等协议高效地传输大型管理脚本。

The Script MIB also allows management scripts that are hard-wired into the Script MIB implementation. Built-in scripts can either be implemented in a language runtime system, or they can be built natively into the Script MIB implementation. The implementation of the `push model' or the `pull model' is not required.

脚本MIB还允许硬连接到脚本MIB实现中的管理脚本。内置脚本可以在语言运行时系统中实现,也可以在脚本MIB实现中本机构建。不需要实施“推模式”或“拉模式”。

Scripts can be stored in non-volatile storage. This allows a distributed manager to restart scripts if it is restarted (off-line restart). A manager is not required to push scripts back into the distributed manager after a restart if the script is backed up in non-volatile storage.

脚本可以存储在非易失性存储器中。这允许分布式管理器在重新启动(离线重新启动)时重新启动脚本。如果在非易失性存储中备份脚本,则在重新启动后,管理器无需将脚本推回分布式管理器。

Every script is identified by an administratively assigned name. This name may be used to derive the name which is used to access the script in non-volatile storage. This mapping is implementation specific. However, the mapping must ensure that the Script MIB implementation can handle scripts with the same administrative name owned by different managers. One way to achieve this is to use the script owner in addition to the script name in order to derive the internal name used to refer to a particular script in non-volatile storage.

每个脚本都由管理分配的名称标识。此名称可用于派生用于访问非易失性存储器中脚本的名称。此映射是特定于实现的。但是,映射必须确保脚本MIB实现可以处理不同管理者拥有的具有相同管理名称的脚本。实现这一点的一种方法是,除了使用脚本名称外,还使用脚本所有者,以便派生用于引用非易失性存储中特定脚本的内部名称。

4.3. Script Execution
4.3. 脚本执行

The Script MIB permits execution of several instances of the same or different management scripts. Script arguments are passed as OCTET STRING values. Scripts return a single result value which is also an OCTET STRING value. The semantic interpretation of result values is left to the invoking manager or other management scripts. A script invoker must understand the format and semantics of both the arguments and the results of the scripts that it invokes.

脚本MIB允许执行相同或不同管理脚本的多个实例。脚本参数作为八位字节字符串值传递。脚本返回一个结果值,该值也是八位字节字符串值。结果值的语义解释留给调用管理器或其他管理脚本。脚本调用程序必须理解参数的格式和语义以及它调用的脚本的结果。

Scripts can also export complex results through a MIB interface. This allows a management application to access and use script results in the same manner as it processes any other MIB data. However, the Script MIB does not provide any special support for the implementation of MIBs through scripts.

脚本还可以通过MIB接口导出复杂的结果。这允许管理应用程序以与处理任何其他MIB数据相同的方式访问和使用脚本结果。但是,脚本MIB不提供任何通过脚本实现MIB的特殊支持。

Runtime errors terminate active scripts. An exit code and a human readable error message is left in the MIB. A notification containing the exit code, the error message and a timestamp is generated when a script terminates with an error exit code.

运行时错误终止活动脚本。MIB中会留下一个退出代码和一条人类可读的错误消息。当脚本以错误退出代码终止时,将生成包含退出代码、错误消息和时间戳的通知。

Script arguments and results do not have any size limitations other than the limits imposed by the SMI and the SNMP protocol. However, implementations of this MIB might have further restrictions. A script designer might therefore choose to return the results via other mechanisms if the script results can be very large. One possibility is to return a URL as a script result which points to the file containing the script output.

除了SMI和SNMP协议施加的限制外,脚本参数和结果没有任何大小限制。但是,此MIB的实现可能有进一步的限制。因此,如果脚本结果可能非常大,脚本设计者可能会选择通过其他机制返回结果。一种可能是返回一个URL作为脚本结果,该结果指向包含脚本输出的文件。

Executing scripts have a status object attached which allows script execution to be suspended, resumed, or aborted. The precise semantics of the suspend and resume operations are language and runtime system dependent. Some runtime systems may choose to not implement the suspend/resume operations.

正在执行的脚本附加了一个状态对象,该对象允许暂停、恢复或中止脚本执行。挂起和恢复操作的精确语义取决于语言和运行时系统。某些运行时系统可能选择不实现挂起/恢复操作。

A history of finished scripts is kept in the MIB. A script invoker can collect results at a later point in time (offline operation). Control objects can be used to control how entries in the history are aged out if the table fills up.

已完成脚本的历史记录保存在MIB中。脚本调用程序可以在稍后的时间点(脱机操作)收集结果。控件对象可用于控制当表填满时历史记录中的条目如何老化。

5. The Structure of the MIB
5. MIB的结构

This section presents the structure of the MIB. The objects are arranged into the following groups:

本节介绍MIB的结构。对象被排列为以下组:

o language group (smLanguageGroup)

o 语言组(smLanguageGroup)

o script group (smScriptGroup)

o 脚本组(smScriptGroup)

o script code group (smCodeGroup)

o 脚本代码组(smCodeGroup)

o script launch group (smLaunchGroup)

o 脚本启动组(smLaunchGroup)

o running script group (smRunGroup)

o 正在运行的脚本组(smRunGroup)

5.1. The smLanguageGroup
5.1. smLanguageGroup

The smLanguageGroup is used to provide information about the languages and the language extensions supported by a Script MIB implementation. This group includes two tables. The smLangTable lists all languages supported by a Script MIB implementation and the smExtsnTable lists the extensions that are available for a given language.

smLanguageGroup用于提供有关脚本MIB实现支持的语言和语言扩展的信息。该组包括两个表。smLangTable列出脚本MIB实现支持的所有语言,SMEXTSNTBLE列出可用于给定语言的扩展。

5.2. The smScriptGroup
5.2. smScriptGroup

The smScriptGroup consists of a single table, called the smScriptTable. The smScriptTable lists all scripts known to a Script MIB implementation. The smScriptTable contains objects that allow the following operations:

smScriptGroup由一个名为smScriptTable的表组成。smScriptTable列出脚本MIB实现已知的所有脚本。smScriptTable包含允许以下操作的对象:

o download scripts from a URL (pull model)

o 从URL下载脚本(拉模型)

o read scripts from local non-volatile storage

o 从本地非易失性存储器读取脚本

o store scripts in local non-volatile storage

o 将脚本存储在本地非易失性存储器中

o delete scripts from local non-volatile storage

o 从本地非易失性存储中删除脚本

o list permanent scripts (that can not be changed or removed)

o 列出永久脚本(不能更改或删除)

o read and modify the script status (enabled, disabled, editing)

o 读取并修改脚本状态(已启用、已禁用、正在编辑)

A status object called smScriptOperStatus allows a manager to obtain the current status of a script. It is also used to provide an error indication if an attempt to invoke one of the operations listed above fails. The status change of a script can be requested by modifying the associated smScriptAdminStatus object.

名为smScriptOperStatus的状态对象允许管理器获取脚本的当前状态。它还用于在调用上述操作之一失败时提供错误指示。可以通过修改关联的smScriptAdminStatus对象来请求脚本的状态更改。

The source of a script is defined by the smScriptSource object. This object may contain a URL pointing to a remote location which provides access to the management script. The script source is read from the smCodeTable (described below) or from non-volatile storage if the smScriptSource object contains an empty URL. The smScriptStorageType object is used to distinguish between scripts read from non-volatile storage and scripts read from the smCodeTable.

脚本的源由smScriptSource对象定义。此对象可能包含指向远程位置的URL,该位置提供对管理脚本的访问。如果smScriptSource对象包含空URL,则从smCodeTable(如下所述)或非易失性存储器读取脚本源。smScriptStorageType对象用于区分从非易失性存储读取的脚本和从smCodeTable读取的脚本。

Scripts are automatically loaded once the smScriptAdminStatus object is set to `enabled'. Loading a script includes retrieving the script (probably from a remote location), compiling the script for languages that require a compilation step, and making the code available to the runtime system. The smScriptOperStatus object is used to indicate the status of the loading process. This object will start in the

smScriptAdminStatus对象设置为“已启用”后,脚本将自动加载。加载脚本包括检索脚本(可能来自远程位置)、为需要编译步骤的语言编译脚本,以及使代码可供运行时系统使用。smScriptOperStatus对象用于指示加载进程的状态。此对象将从中开始

state `retrieving', switch to the state `compiling' and finally reach the state `enabled'. Errors during the retrieval or compilation phase will result in an error state such as `compilationFailed'.

状态“正在检索”,切换到状态“正在编译”,最后达到状态“已启用”。检索或编译阶段的错误将导致错误状态,如“compilationFailed”。

5.3. The smCodeGroup
5.3. smCodeGroup

The smCodeGroup consists of a single table, called the smCodeTable, which provides the ability to transfer and modify scripts via SNMP set requests. In particular, the smCodeTable allows the following operations:

smCodeGroup由一个称为smCodeTable的表组成,该表提供了通过SNMP集合请求传输和修改脚本的能力。特别是,smCodeTable允许以下操作:

o download scripts via SNMP (push model)

o 通过SNMP下载脚本(推送模式)

o modify scripts via SNMP (editing)

o 通过SNMP修改脚本(编辑)

The smCodeTable lists the code of a script. A script can be fragmented over multiple rows of the smCodeTable in order to handle SNMP message size limitations. Modifications of the smCodeTable are only possible if the associated smScriptOperStatus object has the value `editing'. The Script MIB implementation reloads the modified script code once the smScriptOperStatus changes to `enabled' again.

smCodeTable列出了脚本的代码。为了处理SNMP消息大小限制,脚本可以在smCodeTable的多行上分段。仅当关联的smScriptOperStatus对象的值为“editing”时,才能修改smCodeTable。一旦smScriptOperStatus再次更改为“enabled”,脚本MIB实现将重新加载修改后的脚本代码。

The implementation of the smCodeGroup is optional.

smCodeGroup的实现是可选的。

5.4. The smLaunchGroup
5.4. smLaunchGroup

The smLaunchGroup contains a single table, the smLaunchTable. An entry in the smLaunchTable represents a launch button which can be used to start a script. The smLaunchTable allows the following operations:

smLaunchGroup包含一个表smLaunchTable。smLaunchTable中的条目表示可用于启动脚本的启动按钮。smLaunchTable允许以下操作:

o associate a script with an owner used during script execution

o 将脚本与脚本执行期间使用的所有者关联

o provide arguments and parameters for script invocation

o 为脚本调用提供参数和参数

o invoke scripts with a single set operation

o 使用单个集合操作调用脚本

The smLaunchTable describes scripts and their parameters that are ready to be launched. An entry in the smLaunchTable attaches an argument to a script and control values which, for example, define the maximum number of times that a script invoked from a particular row in the smLaunchTable may be running concurrently.

smLaunchTable描述准备启动的脚本及其参数。smLaunchTable中的条目将参数附加到脚本和控制值,例如,这些值定义了从smLaunchTable中特定行调用的脚本可以并发运行的最大次数。

An entry in the smLaunchTable also defines the owner which will be used to associate permissions with the script execution.

smLaunchTable中的一个条目还定义了将用于将权限与脚本执行关联的所有者。

5.5. The smRunGroup
5.5. SMRUNGOUP

The smRunGroup contains a single table, called the smRunTable, which lists all scripts that are currently running or have terminated recently. The smRunTable contains objects that allow the following operations:

smRunGroup包含一个名为smRunTable的表,其中列出了当前正在运行或最近终止的所有脚本。smRunTable包含允许以下操作的对象:

o retrieve status information from running scripts

o 从正在运行的脚本中检索状态信息

o control running scripts (suspend, resume, abort)

o 控制正在运行的脚本(挂起、恢复、中止)

o retrieve results from recently terminated scripts

o 从最近终止的脚本检索结果

o control the remaining maximum lifetime of a running script

o 控制运行脚本的剩余最长生存期

o control how long script results are accessible

o 控制脚本结果可访问的时间

Every row in the smRunTable contains the argument passed during script invocation, the result produced by the script and the script exit code. The smRunTable also provides information about the current run state as well as start and end time-stamps. There are three writable objects in the smRunTable. The smRunLifeTime object defines the maximum time a running script may run before it is terminated by the Script MIB implementation. The smRunExpireTime object defines the time that a completed script can stay in the smRunTable before it is aged out. The smRunControl object allows running scripts to be suspended, resumed, or aborted.

smRunTable中的每一行都包含脚本调用期间传递的参数、脚本生成的结果和脚本退出代码。smRunTable还提供有关当前运行状态以及开始和结束时间戳的信息。smRunTable中有三个可写对象。smRunLifeTime对象定义在脚本MIB实现终止正在运行的脚本之前可以运行的最长时间。smRunExpireTime对象定义完成的脚本在过期之前可以停留在smRunTable中的时间。smRunControl对象允许暂停、恢复或中止正在运行的脚本。

6. Definitions
6. 定义
   DISMAN-SCRIPT-MIB DEFINITIONS ::= BEGIN
        
   DISMAN-SCRIPT-MIB DEFINITIONS ::= BEGIN
        

IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Integer32, Unsigned32, mib-2 FROM SNMPv2-SMI

从SNMPv2 SMI导入模块标识、对象类型、通知类型、整数32、无符号32、mib-2

RowStatus, TimeInterval, DateAndTime, StorageType, DisplayString FROM SNMPv2-TC

SNMPv2 TC中的行状态、时间间隔、日期和时间、存储类型、显示字符串

MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF

来自SNMPv2 CONF的MODULE-COMPLIANCE、OBJECT-GROUP、NOTIFICATION-GROUP

SnmpAdminString FROM SNMP-FRAMEWORK-MIB;

SNMP-FRAMEWORK-MIB的snmpadmin安装;

scriptMIB MODULE-IDENTITY LAST-UPDATED "9902221800Z"

scriptMIB模块标识最后更新的“9902221800Z”

ORGANIZATION "IETF Distributed Management Working Group" CONTACT-INFO "David B. Levi Nortel Networks 4401 Great America Parkway Santa Clara, CA 95052-8185 U.S.A. Tel: +1 423 686 0432 E-mail: dlevi@nortelnetworks.com

组织“IETF分布式管理工作组”联系方式“David B.Levi Nortel Networks 4401 Great America Parkway Santa Clara,CA 95052-8185美国电话:+1 423 686 0432电子邮件:dlevi@nortelnetworks.com

            Juergen Schoenwaelder
            TU Braunschweig
            Bueltenweg 74/75
            38106 Braunschweig
            Germany
            Tel: +49 531 391-3283
            E-mail: schoenw@ibr.cs.tu-bs.de"
       DESCRIPTION
           "This MIB module defines a set of objects that allow to
            delegate management scripts to distributed managers."
       ::= { mib-2 64 }
        
            Juergen Schoenwaelder
            TU Braunschweig
            Bueltenweg 74/75
            38106 Braunschweig
            Germany
            Tel: +49 531 391-3283
            E-mail: schoenw@ibr.cs.tu-bs.de"
       DESCRIPTION
           "This MIB module defines a set of objects that allow to
            delegate management scripts to distributed managers."
       ::= { mib-2 64 }
        

-- -- The groups defined within this MIB module: --

----在此MIB模块中定义的组:--

   smObjects       OBJECT IDENTIFIER ::= { scriptMIB 1 }
   smNotifications OBJECT IDENTIFIER ::= { scriptMIB 2 }
   smConformance   OBJECT IDENTIFIER ::= { scriptMIB 3 }
        
   smObjects       OBJECT IDENTIFIER ::= { scriptMIB 1 }
   smNotifications OBJECT IDENTIFIER ::= { scriptMIB 2 }
   smConformance   OBJECT IDENTIFIER ::= { scriptMIB 3 }
        
   --
   -- Script language and language extensions.
   --
   -- This group defines tables which list the languages and the
   -- language extensions supported by a script MIB implementation.
   -- Languages are uniquely identified by object identifier values.
   --
        
   --
   -- Script language and language extensions.
   --
   -- This group defines tables which list the languages and the
   -- language extensions supported by a script MIB implementation.
   -- Languages are uniquely identified by object identifier values.
   --
        
   smLangTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmLangEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists supported script languages."
       ::= { smObjects 1 }
        
   smLangTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmLangEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists supported script languages."
       ::= { smObjects 1 }
        

smLangEntry OBJECT-TYPE SYNTAX SmLangEntry

smLangEntry对象类型语法smLangEntry

       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular language."
       INDEX { smLangIndex }
       ::= { smLangTable 1 }
        
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular language."
       INDEX { smLangIndex }
       ::= { smLangTable 1 }
        
   SmLangEntry ::= SEQUENCE {
       smLangIndex         Integer32,
       smLangLanguage      OBJECT IDENTIFIER,
       smLangVersion       SnmpAdminString,
       smLangVendor        OBJECT IDENTIFIER,
       smLangRevision      SnmpAdminString,
       smLangDescr         SnmpAdminString
   }
        
   SmLangEntry ::= SEQUENCE {
       smLangIndex         Integer32,
       smLangLanguage      OBJECT IDENTIFIER,
       smLangVersion       SnmpAdminString,
       smLangVendor        OBJECT IDENTIFIER,
       smLangRevision      SnmpAdminString,
       smLangDescr         SnmpAdminString
   }
        

smLangIndex OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The locally arbitrary, but unique identifier associated with this language entry.

smLangIndex对象类型语法整数32(1..2147483647)MAX-ACCESS not ACCESS STATUS current DESCRIPTION“与此语言项关联的本地任意但唯一的标识符。

The value is expected to remain constant at least from one re-initialization of the entity's network management system to the next re-initialization.

至少从实体网络管理系统的一次重新初始化到下一次重新初始化,该值应保持不变。

            Note, the data type and the range of this object must be
            consistent with the definition of smScriptLanguage."
       ::= { smLangEntry 1 }
        
            Note, the data type and the range of this object must be
            consistent with the definition of smScriptLanguage."
       ::= { smLangEntry 1 }
        
   smLangLanguage OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The globally unique identification of the language."
       ::= { smLangEntry 2 }
        
   smLangLanguage OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The globally unique identification of the language."
       ::= { smLangEntry 2 }
        

smLangVersion OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..32)) MAX-ACCESS read-only STATUS current DESCRIPTION "The version number of the language. The zero-length string shall be used if the language does not have a version number.

smLangVersion对象类型语法SnmpAdminString(大小(0..32))MAX-ACCESS只读状态当前描述“语言的版本号。如果语言没有版本号,则应使用零长度字符串。

            It is suggested that the version number consist of one or
            more decimal numbers separated by dots, where the first
            number is called the major version number."
       ::= { smLangEntry 3 }
        
            It is suggested that the version number consist of one or
            more decimal numbers separated by dots, where the first
            number is called the major version number."
       ::= { smLangEntry 3 }
        
   smLangVendor OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "An object identifer which identifies the vendor who
            provides the implementation of the language. This object
            identifer SHALL point to the object identifier directly
            below the enterprise object identifier {1 3 6 1 4 1}
            allocated for the vendor. The value must be the object
            identifier {0 0} if the vendor is not known."
       ::= { smLangEntry 4 }
        
   smLangVendor OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "An object identifer which identifies the vendor who
            provides the implementation of the language. This object
            identifer SHALL point to the object identifier directly
            below the enterprise object identifier {1 3 6 1 4 1}
            allocated for the vendor. The value must be the object
            identifier {0 0} if the vendor is not known."
       ::= { smLangEntry 4 }
        

smLangRevision OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..32)) MAX-ACCESS read-only STATUS current DESCRIPTION "The version number of the language implementation. The value of this object must be an empty string if version number of the implementation is unknown.

smLangRevision对象类型语法SnmpAdminString(大小(0..32))MAX-ACCESS只读状态当前说明“语言实现的版本号。如果实现的版本号未知,则此对象的值必须为空字符串。

            It is suggested that the value consist of one or more
            decimal numbers separated by dots, where the first
            number is called the major version number."
       ::= { smLangEntry 5 }
        
            It is suggested that the value consist of one or more
            decimal numbers separated by dots, where the first
            number is called the major version number."
       ::= { smLangEntry 5 }
        
   smLangDescr OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A textual description of the language."
       ::= { smLangEntry 6 }
        
   smLangDescr OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A textual description of the language."
       ::= { smLangEntry 6 }
        
   smExtsnTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmExtsnEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists supported language extensions."
       ::= { smObjects 2 }
        
   smExtsnTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmExtsnEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists supported language extensions."
       ::= { smObjects 2 }
        
   smExtsnEntry OBJECT-TYPE
       SYNTAX      SmExtsnEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular language extension."
       INDEX { smLangIndex, smExtsnIndex }
       ::= { smExtsnTable 1 }
        
   smExtsnEntry OBJECT-TYPE
       SYNTAX      SmExtsnEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular language extension."
       INDEX { smLangIndex, smExtsnIndex }
       ::= { smExtsnTable 1 }
        
   SmExtsnEntry ::= SEQUENCE {
       smExtsnIndex        Integer32,
       smExtsnExtension    OBJECT IDENTIFIER,
       smExtsnVersion      SnmpAdminString,
       smExtsnVendor       OBJECT IDENTIFIER,
       smExtsnRevision     SnmpAdminString,
       smExtsnDescr        SnmpAdminString
   }
        
   SmExtsnEntry ::= SEQUENCE {
       smExtsnIndex        Integer32,
       smExtsnExtension    OBJECT IDENTIFIER,
       smExtsnVersion      SnmpAdminString,
       smExtsnVendor       OBJECT IDENTIFIER,
       smExtsnRevision     SnmpAdminString,
       smExtsnDescr        SnmpAdminString
   }
        

smExtsnIndex OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS not-accessible STATUS current

smExtsnIndex对象类型语法整数32(1..2147483647)MAX-ACCESS不可访问状态当前

DESCRIPTION "The locally arbitrary, but unique identifier associated with this language extension entry.

DESCRIPTION“与此语言扩展项关联的本地任意但唯一的标识符。

            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization."
       ::= { smExtsnEntry 1}
        
            The value is expected to remain constant at least from one
            re-initialization of the entity's network management system
            to the next re-initialization."
       ::= { smExtsnEntry 1}
        
   smExtsnExtension OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The globally unique identification of the language
            extension."
       ::= { smExtsnEntry 2 }
        
   smExtsnExtension OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The globally unique identification of the language
            extension."
       ::= { smExtsnEntry 2 }
        

smExtsnVersion OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..32)) MAX-ACCESS read-only STATUS current DESCRIPTION "The version number of the language extension.

smExtsnVersion对象类型语法SnmpAdminString(大小(0..32))MAX-ACCESS只读状态当前描述“语言扩展的版本号。

            It is suggested that the version number consist of one or
            more decimal numbers separated by dots, where the first
            number is called the major version number."
       ::= { smExtsnEntry 3 }
        
            It is suggested that the version number consist of one or
            more decimal numbers separated by dots, where the first
            number is called the major version number."
       ::= { smExtsnEntry 3 }
        
   smExtsnVendor OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "An object identifer which identifies the vendor who
            provides the implementation of the extension. The
            object identifer value should point to the OID node
            directly below the enterprise OID {1 3 6 1 4 1}
            allocated for the vendor. The value must by the object
            identifier {0 0} if the vendor is not known."
       ::= { smExtsnEntry 4 }
        
   smExtsnVendor OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "An object identifer which identifies the vendor who
            provides the implementation of the extension. The
            object identifer value should point to the OID node
            directly below the enterprise OID {1 3 6 1 4 1}
            allocated for the vendor. The value must by the object
            identifier {0 0} if the vendor is not known."
       ::= { smExtsnEntry 4 }
        

smExtsnRevision OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..32)) MAX-ACCESS read-only STATUS current DESCRIPTION "The version number of the extension implementation. The value of this object must be an empty string if version number of the implementation is unknown.

SMEXTSNRIVATION对象类型语法SnmpAdminString(大小(0..32))MAX-ACCESS只读状态当前说明“扩展实现的版本号。如果实现的版本号未知,则此对象的值必须为空字符串。

            It is suggested that the value consist of one or more
            decimal numbers separated by dots, where the first
            number is called the major version number."
       ::= { smExtsnEntry 5 }
        
            It is suggested that the value consist of one or more
            decimal numbers separated by dots, where the first
            number is called the major version number."
       ::= { smExtsnEntry 5 }
        
   smExtsnDescr OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A textual description of the language extension."
       ::= { smExtsnEntry 6 }
        
   smExtsnDescr OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "A textual description of the language extension."
       ::= { smExtsnEntry 6 }
        
   --
   -- Scripts known by the Script MIB implementation.
   --
   -- This group defines a table which lists all known scripts.
   -- Scripts can be added and removed through manipulation of the
   -- smScriptTable.
   --
        
   --
   -- Scripts known by the Script MIB implementation.
   --
   -- This group defines a table which lists all known scripts.
   -- Scripts can be added and removed through manipulation of the
   -- smScriptTable.
   --
        
   smScriptObjects OBJECT IDENTIFIER ::= { smObjects 3 }
        
   smScriptObjects OBJECT IDENTIFIER ::= { smObjects 3 }
        
   smScriptTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmScriptEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists and describes locally known scripts."
       ::= { smScriptObjects 1 }
        
   smScriptTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmScriptEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists and describes locally known scripts."
       ::= { smScriptObjects 1 }
        
   smScriptEntry OBJECT-TYPE
       SYNTAX      SmScriptEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular script. Every script that
            is stored in non-volatile memory is required to appear in
            this script table."
       INDEX { smScriptOwner, smScriptName }
       ::= { smScriptTable 1 }
   SmScriptEntry ::= SEQUENCE {
       smScriptOwner       SnmpAdminString,
       smScriptName        SnmpAdminString,
       smScriptDescr       SnmpAdminString,
       smScriptLanguage    Integer32,
       smScriptSource      DisplayString,
       smScriptAdminStatus INTEGER,
       smScriptOperStatus  INTEGER,
       smScriptStorageType StorageType,
       smScriptRowStatus   RowStatus
   }
        
   smScriptEntry OBJECT-TYPE
       SYNTAX      SmScriptEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular script. Every script that
            is stored in non-volatile memory is required to appear in
            this script table."
       INDEX { smScriptOwner, smScriptName }
       ::= { smScriptTable 1 }
   SmScriptEntry ::= SEQUENCE {
       smScriptOwner       SnmpAdminString,
       smScriptName        SnmpAdminString,
       smScriptDescr       SnmpAdminString,
       smScriptLanguage    Integer32,
       smScriptSource      DisplayString,
       smScriptAdminStatus INTEGER,
       smScriptOperStatus  INTEGER,
       smScriptStorageType StorageType,
       smScriptRowStatus   RowStatus
   }
        
   smScriptOwner OBJECT-TYPE
       SYNTAX      SnmpAdminString (SIZE (0..32))
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The manager who owns this row in the smScriptTable."
       ::= { smScriptEntry 1 }
        
   smScriptOwner OBJECT-TYPE
       SYNTAX      SnmpAdminString (SIZE (0..32))
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The manager who owns this row in the smScriptTable."
       ::= { smScriptEntry 1 }
        

smScriptName OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS not-accessible STATUS current DESCRIPTION "The locally-unique, administratively assigned name for this script. This object allows an smScriptOwner to have multiple entries in the smScriptTable.

smScriptName对象类型语法SNMPAdministring MAX-ACCESS不可访问状态当前描述“此脚本的本地唯一管理分配名称。此对象允许smScriptOwner在smScriptTable中有多个条目。

            This value of this object may be used to derive the name
            (e.g. a file name) which is used by the Script MIB
            implementation to access the script in non-volatile
            storage. The details of this mapping are implementation
            specific. However, the mapping needs to ensure that scripts
            created by different owners with the same script name do not
            map to the same name in non-volatile storage."
       ::= { smScriptEntry 2 }
        
            This value of this object may be used to derive the name
            (e.g. a file name) which is used by the Script MIB
            implementation to access the script in non-volatile
            storage. The details of this mapping are implementation
            specific. However, the mapping needs to ensure that scripts
            created by different owners with the same script name do not
            map to the same name in non-volatile storage."
       ::= { smScriptEntry 2 }
        
   smScriptDescr OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "A description of the purpose of the script."
       ::= { smScriptEntry 3 }
        
   smScriptDescr OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "A description of the purpose of the script."
       ::= { smScriptEntry 3 }
        

smScriptLanguage OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object type identifies an entry in the smLangTable which is used to execute this script. The special value 0 may be used by hard-wired scripts that can not be modified and that are executed by internal functions.

smScriptLanguage对象类型语法整数32(0..2147483647)MAX-ACCESS read create STATUS current DESCRIPTION“此对象类型的值标识smLangTable中用于执行此脚本的条目。无法修改且由内部函数执行的硬连线脚本可以使用特殊值0。

            Note, the data type and the range of this object must be
            consistent with the definition of smLangIndex."
       ::= { smScriptEntry 4 }
        
            Note, the data type and the range of this object must be
            consistent with the definition of smLangIndex."
       ::= { smScriptEntry 4 }
        

smScriptSource OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-create STATUS current DESCRIPTION "This object either contains a reference to the script source or an empty string. A reference must be given in the form of a Uniform Resource Locator (URL) as defined in RFC 2396. The allowed character sets and the encoding rules defined in RFC 2396 section 2 apply.

smScriptSource对象类型语法DisplayString MAX-ACCESS read create STATUS current DESCRIPTION“此对象包含对脚本源的引用或空字符串。引用必须以统一资源定位器(URL)的形式提供如RFC 2396中定义。RFC 2396第2节中定义的允许字符集和编码规则适用。

When the smScriptAdminStatus object is set to `enabled', the Script MIB implementation will `pull' the script source from the URL contained in this object if the URL is not empty.

当smScriptAdminStatus对象设置为“enabled”时,如果URL不为空,则脚本MIB实现将从此对象中包含的URL“拉”脚本源。

An empty URL indicates that the script source is loaded from local storage. The script is read from the smCodeTable if the value of smScriptStorageType is volatile. Otherwise, the script is read from non-volatile storage.

空URL表示脚本源是从本地存储加载的。如果smScriptStorageType的值为volatile,则从smCodeTable读取脚本。否则,脚本将从非易失性存储器中读取。

Note: This document does not mandate implementation of any specific URL scheme. A attempt to load a script from a nonsupported URL scheme will cause the smScriptOperStatus to report an `unknownProtocol' error.

注:本文件不强制执行任何特定的URL方案。尝试从不支持的URL方案加载脚本将导致smScriptOperStatus报告“unknownProtocol”错误。

            Set requests to change this object are invalid if the
            value of smScriptOperStatus is `enabled', `editing',
            `retrieving' or `compiling' and will result in an
            inconsistentValue error."
       DEFVAL { ''H }
       ::= { smScriptEntry 5 }
   smScriptAdminStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2),
                       editing(3)
                   }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the desired status of
            the script. See the definition of smScriptOperStatus for
            a description of the values.
        
            Set requests to change this object are invalid if the
            value of smScriptOperStatus is `enabled', `editing',
            `retrieving' or `compiling' and will result in an
            inconsistentValue error."
       DEFVAL { ''H }
       ::= { smScriptEntry 5 }
   smScriptAdminStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2),
                       editing(3)
                   }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the desired status of
            the script. See the definition of smScriptOperStatus for
            a description of the values.
        
            When the smScriptAdminStatus object is set to `enabled' and
            the smScriptOperStatus is `disabled' or one of the error
            states, the Script MIB implementation will `pull' the script
            source from the URL contained in the smScriptSource object
            if the URL is not empty."
       DEFVAL { disabled }
       ::= { smScriptEntry 6 }
        
            When the smScriptAdminStatus object is set to `enabled' and
            the smScriptOperStatus is `disabled' or one of the error
            states, the Script MIB implementation will `pull' the script
            source from the URL contained in the smScriptSource object
            if the URL is not empty."
       DEFVAL { disabled }
       ::= { smScriptEntry 6 }
        

smScriptOperStatus OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2), editing(3), retrieving(4), compiling(5), noSuchScript(6), accessDenied(7), wrongLanguage(8), wrongVersion(9),

smScriptOperStatus对象类型语法整数{启用(1)、禁用(2)、编辑(3)、检索(4)、编译(5)、noSuchScript(6)、拒绝访问(7)、错误语言(8)、错误版本(9),

compilationFailed(10), noResourcesLeft(11), unknownProtocol(12), protocolFailure(13), genericError(14) } MAX-ACCESS read-only STATUS current DESCRIPTION "The actual status of the script in the runtime system. The value of this object is only meaningful when the value of the smScriptRowStatus object is `active'.

compilationFailed(10)、noResourcesLeft(11)、unknownProtocol(12)、protocolFailure(13)、GenericeError(14)}MAX-ACCESS只读状态当前描述“运行时系统中脚本的实际状态。只有当smScriptRowStatus对象的值为“active”时,此对象的值才有意义。

The smScriptOperStatus object may have the following values: - `enabled' indicates that the script is available and can be started by a launch table entry.

smScriptOperStatus对象可能具有以下值:-“enabled”表示脚本可用,并且可以通过启动表条目启动。

- `disabled' indicates that the script can not be used.

- `“已禁用”表示无法使用该脚本。

- `editing' indicates that the script can be modified in the smCodeTable.

- `“编辑”表示可以在smCodeTable中修改脚本。

- `retrieving' indicates that the script is currently being loaded from non-volatile storage or a remote system.

- `“检索”表示当前正在从非易失性存储或远程系统加载脚本。

- `compiling' indicates that the script is currently being compiled by the runtime system.

- `“正在编译”表示运行时系统当前正在编译脚本。

- `noSuchScript' indicates that the script does not exist at the smScriptSource.

- `noSuchScript'表示smScriptSource中不存在该脚本。

- `accessDenied' indicates that the script can not be loaded from the smScriptSource due to a lack of permissions.

- `accessDenied'表示由于缺乏权限,无法从smScriptSource加载脚本。

- `wrongLanguage' indicates that the script can not be loaded from the smScriptSource because of a language mismatch.

- `“错误语言”表示由于语言不匹配,无法从smScriptSource加载脚本。

- `wrongVersion' indicates that the script can not be loaded from the smScriptSource because of a language version mismatch.

- `“错误版本”表示由于语言版本不匹配,无法从smScriptSource加载脚本。

- `compilationFailed' indicates that the compilation failed.

- `compilationFailed'表示编译失败。

- `noResourcesLeft' indicates that the runtime system does not have enough resources to load the script.

- `noResourcesLeft'表示运行时系统没有足够的资源来加载脚本。

- `unknownProtocol' indicates that the script could not be loaded from the smScriptSource because the requested

- `unknownProtocol'表示无法从smScriptSource加载脚本,因为请求了

protocol is not supported.

协议不受支持。

- `protocolFailure' indicates that the script could not be loaded from the smScriptSource because of a protocol failure.

- `protocolFailure'表示由于协议故障,无法从smScriptSource加载脚本。

- `genericError' indicates that the script could not be loaded due to an error condition not listed above.

- `genericError'表示由于上面未列出的错误条件而无法加载脚本。

The `retrieving' and `compiling' states are transient states which will either lead to one of the error states or the `enabled' state. The `disabled' and `editing' states are administrative states which are only reached by explicit management operations.

“正在检索”和“正在编译”状态是瞬态状态,它们将导致一种错误状态或“已启用”状态。“禁用”和“编辑”状态是仅通过显式管理操作才能达到的管理状态。

            All launch table entries that refer to this script table
            entry shall have an smLaunchOperStatus value of `disabled'
            when the value of this object is not `enabled'."
       DEFVAL { disabled }
       ::= { smScriptEntry 7 }
        
            All launch table entries that refer to this script table
            entry shall have an smLaunchOperStatus value of `disabled'
            when the value of this object is not `enabled'."
       DEFVAL { disabled }
       ::= { smScriptEntry 7 }
        

smScriptStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines whether this row and the script controlled by this row are kept in volatile storage and lost upon reboot or if this row is backed up by non-volatile or permanent storage.

smScriptStorageType OBJECT-TYPE语法StorageType MAX-ACCESS read create STATUS current DESCRIPTION“此对象定义此行和此行控制的脚本是否保存在易失性存储器中,并在重新启动时丢失,或者此行是否由非易失性或永久性存储器备份。

The script controlled by this row is written into local non-volatile storage if the following condition becomes true:

如果以下条件变为真,则此行控制的脚本将写入本地非易失性存储器:

(a) the URL contained in the smScriptSource object is empty and (b) the smScriptStorageType is `nonVolatile' and (c) the smScriptOperStatus is `enabled'

(a) smScriptSource对象中包含的URL为空,(b)smScriptStorageType为“非易失性”,以及(c)SMScriptOperaStatus为“已启用”

Setting this object to `volatile' removes a script from non-volatile storage if the script controlled by this row has been in non-volatile storage before. Attempts to set this object to permanent will always fail with an inconsistentValue error.

如果此行控制的脚本以前在非易失性存储中,则将此对象设置为“volatile”会从非易失性存储中删除脚本。尝试将此对象设置为永久将始终失败,并出现值不一致错误。

The value of smScriptStorageType is only meaningful if the

smScriptStorageType的值只有在

value of the corresponding RowStatus object is `active'.

对应的RowStatus对象的值为“活动”。

            If smScriptStorageType has the value permanent(4), then all
            objects whose MAX-ACCESS value is read-create must be
            writable, with the exception of the smScriptStorageType and
            smScriptRowStatus objects, which shall be read-only."
       DEFVAL { volatile }
       ::= { smScriptEntry 8 }
        
            If smScriptStorageType has the value permanent(4), then all
            objects whose MAX-ACCESS value is read-create must be
            writable, with the exception of the smScriptStorageType and
            smScriptRowStatus objects, which shall be read-only."
       DEFVAL { volatile }
       ::= { smScriptEntry 8 }
        

smScriptRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "A control that allows entries to be added and removed from this table.

smScriptRowStatus对象类型语法RowStatus MAX-ACCESS read create STATUS current DESCRIPTION“允许在此表中添加和删除条目的控件。

Changing the smScriptRowStatus from `active' to `notInService' will remove the associated script from the runtime system. The value of smScriptOperStatus will be reset to `disabled'.

将smScriptRowStatus从'active'更改为'notInService'将从运行时系统中删除关联的脚本。smScriptOperStatus的值将重置为“已禁用”。

Deleting conceptual rows from this table includes the deletion of all resources associated with this row. This implies that a script stored in non-volatile storage is removed from non-volatile storage.

从该表中删除概念行包括删除与该行关联的所有资源。这意味着存储在非易失性存储器中的脚本将从非易失性存储器中删除。

An entry may not exist in the `active' state unless all required objects in the entry have appropriate values. Rows that are not complete or not in service are not known by the script runtime system.

除非条目中的所有必需对象都具有适当的值,否则条目可能不存在处于“活动”状态。脚本运行时系统不知道未完成或未在服务中的行。

Attempts to `destroy' a row or to set a row `notInService' while the script is executing will result in an inconsistentValue error.

在脚本执行时尝试“销毁”行或将行设置为“notInService”将导致值不一致错误。

            Attempts to `destroy' a row or to set a row `notInService'
            where the value of the smScriptStorageType object is
            `permanent' or `readOnly' will result in an
            inconsistentValue error."
       ::= { smScriptEntry 9 }
        
            Attempts to `destroy' a row or to set a row `notInService'
            where the value of the smScriptStorageType object is
            `permanent' or `readOnly' will result in an
            inconsistentValue error."
       ::= { smScriptEntry 9 }
        
   --
   -- Access to script code via SNMP
   --
   -- The smCodeTable allows script code to be read and modified
   -- via SNMP.
   --
        
   --
   -- Access to script code via SNMP
   --
   -- The smCodeTable allows script code to be read and modified
   -- via SNMP.
   --
        
   smCodeTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmCodeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains the script code for scripts that are
            written via SNMP write operations."
       ::= { smScriptObjects 2 }
        
   smCodeTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmCodeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains the script code for scripts that are
            written via SNMP write operations."
       ::= { smScriptObjects 2 }
        
   smCodeEntry OBJECT-TYPE
       SYNTAX      SmCodeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular fragment of a script."
       INDEX { smScriptOwner, smScriptName, smCodeIndex }
       ::= { smCodeTable 1 }
        
   smCodeEntry OBJECT-TYPE
       SYNTAX      SmCodeEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular fragment of a script."
       INDEX { smScriptOwner, smScriptName, smCodeIndex }
       ::= { smCodeTable 1 }
        
   SmCodeEntry ::= SEQUENCE {
       smCodeIndex         Unsigned32,
       smCodeText          OCTET STRING,
       smCodeRowStatus     RowStatus
   }
        
   SmCodeEntry ::= SEQUENCE {
       smCodeIndex         Unsigned32,
       smCodeText          OCTET STRING,
       smCodeRowStatus     RowStatus
   }
        
   smCodeIndex OBJECT-TYPE
       SYNTAX      Unsigned32 (1..4294967295)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The index value identifying this code fragment."
       ::= { smCodeEntry 1 }
        
   smCodeIndex OBJECT-TYPE
       SYNTAX      Unsigned32 (1..4294967295)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The index value identifying this code fragment."
       ::= { smCodeEntry 1 }
        
   smCodeText OBJECT-TYPE
       SYNTAX      OCTET STRING (SIZE (1..1024))
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The code that makes up a fragment of a script. The format
            of this code fragment depends on the script language which
            is identified by the associated smScriptLanguage object."
       ::= { smCodeEntry 2 }
        
   smCodeText OBJECT-TYPE
       SYNTAX      OCTET STRING (SIZE (1..1024))
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The code that makes up a fragment of a script. The format
            of this code fragment depends on the script language which
            is identified by the associated smScriptLanguage object."
       ::= { smCodeEntry 2 }
        

smCodeRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "A control that allows entries to be added and removed from

smCodeRowStatus对象类型语法RowStatus MAX-ACCESS read create STATUS current DESCRIPTION“允许从中添加和删除条目的控件

            this table."
       ::= { smCodeEntry 3 }
        
            this table."
       ::= { smCodeEntry 3 }
        
   --
   -- Script execution.
   --
   -- This group defines tables which allow script execution to be
   -- initiated, suspended, resumed, and terminated.  It also provides
   -- a mechanism for keeping a history of recent script executions
   -- and their results.
   --
        
   --
   -- Script execution.
   --
   -- This group defines tables which allow script execution to be
   -- initiated, suspended, resumed, and terminated.  It also provides
   -- a mechanism for keeping a history of recent script executions
   -- and their results.
   --
        
   smRunObjects OBJECT IDENTIFIER ::= { smObjects 4 }
        
   smRunObjects OBJECT IDENTIFIER ::= { smObjects 4 }
        
   smLaunchTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmLaunchEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists and describes scripts that are ready
            to be executed together with their parameters."
       ::= { smRunObjects 1 }
        
   smLaunchTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmLaunchEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists and describes scripts that are ready
            to be executed together with their parameters."
       ::= { smRunObjects 1 }
        
   smLaunchEntry OBJECT-TYPE
       SYNTAX      SmLaunchEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular executable script."
       INDEX { smLaunchOwner, smLaunchName }
       ::= { smLaunchTable 1 }
        
   smLaunchEntry OBJECT-TYPE
       SYNTAX      SmLaunchEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An entry describing a particular executable script."
       INDEX { smLaunchOwner, smLaunchName }
       ::= { smLaunchTable 1 }
        
   SmLaunchEntry ::= SEQUENCE {
       smLaunchOwner               SnmpAdminString,
       smLaunchName                SnmpAdminString,
       smLaunchScriptOwner         SnmpAdminString,
       smLaunchScriptName          SnmpAdminString,
       smLaunchArgument            OCTET STRING,
       smLaunchMaxRunning          Unsigned32,
       smLaunchMaxCompleted        Unsigned32,
       smLaunchLifeTime            TimeInterval,
       smLaunchExpireTime          TimeInterval,
       smLaunchStart               Integer32,
       smLaunchControl             INTEGER,
       smLaunchAdminStatus         INTEGER,
       smLaunchOperStatus          INTEGER,
       smLaunchRunIndexNext        Integer32,
       smLaunchStorageType         StorageType,
        
   SmLaunchEntry ::= SEQUENCE {
       smLaunchOwner               SnmpAdminString,
       smLaunchName                SnmpAdminString,
       smLaunchScriptOwner         SnmpAdminString,
       smLaunchScriptName          SnmpAdminString,
       smLaunchArgument            OCTET STRING,
       smLaunchMaxRunning          Unsigned32,
       smLaunchMaxCompleted        Unsigned32,
       smLaunchLifeTime            TimeInterval,
       smLaunchExpireTime          TimeInterval,
       smLaunchStart               Integer32,
       smLaunchControl             INTEGER,
       smLaunchAdminStatus         INTEGER,
       smLaunchOperStatus          INTEGER,
       smLaunchRunIndexNext        Integer32,
       smLaunchStorageType         StorageType,
        

smLaunchRowStatus RowStatus }

smLaunchRowStatus RowStatus}

smLaunchOwner OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..32)) MAX-ACCESS not-accessible STATUS current DESCRIPTION

smLaunchOwner对象类型语法SnmpAdminString(大小(0..32))MAX-ACCESS不可访问状态当前说明

           "The manager who owns this row in the smLaunchTable. Every
            instance of a running script started from a particular entry
            in the smLaunchTable (i.e. entries in the smRunTable) will be
            owned by the same smLaunchOwner used to index the entry in
            the smLaunchTable. This owner is not necessarily the same as
            the owner of the script itself (smLaunchScriptOwner)."
       ::= { smLaunchEntry 1 }
        
           "The manager who owns this row in the smLaunchTable. Every
            instance of a running script started from a particular entry
            in the smLaunchTable (i.e. entries in the smRunTable) will be
            owned by the same smLaunchOwner used to index the entry in
            the smLaunchTable. This owner is not necessarily the same as
            the owner of the script itself (smLaunchScriptOwner)."
       ::= { smLaunchEntry 1 }
        
   smLaunchName OBJECT-TYPE
       SYNTAX      SnmpAdminString (SIZE (1..32))
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally-unique, administratively assigned name for this
            launch table entry. This object allows an smLaunchOwner to
            have multiple entries in the smLaunchTable. The smLaunchName
            is an arbitrary name that must be different from any other
            smLaunchTable entries with the same smLaunchOwner but can be
            the same as other entries in the smLaunchTable with different
            smLaunchOwner values. Note that the value of smLaunchName
            is not related in any way to the name of the script being
            launched."
       ::= { smLaunchEntry 2 }
        
   smLaunchName OBJECT-TYPE
       SYNTAX      SnmpAdminString (SIZE (1..32))
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The locally-unique, administratively assigned name for this
            launch table entry. This object allows an smLaunchOwner to
            have multiple entries in the smLaunchTable. The smLaunchName
            is an arbitrary name that must be different from any other
            smLaunchTable entries with the same smLaunchOwner but can be
            the same as other entries in the smLaunchTable with different
            smLaunchOwner values. Note that the value of smLaunchName
            is not related in any way to the name of the script being
            launched."
       ::= { smLaunchEntry 2 }
        
   smLaunchScriptOwner OBJECT-TYPE
       SYNTAX      SnmpAdminString (SIZE (0..32))
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The value of this object in combination with the value of
            smLaunchScriptName identifies the script that can be
            launched from this smLaunchTable entry. Attempts to write
            this object will fail with an inconsistentValue error if
            the value of smLaunchOperStatus is `enabled'."
       ::= { smLaunchEntry 3 }
        
   smLaunchScriptOwner OBJECT-TYPE
       SYNTAX      SnmpAdminString (SIZE (0..32))
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The value of this object in combination with the value of
            smLaunchScriptName identifies the script that can be
            launched from this smLaunchTable entry. Attempts to write
            this object will fail with an inconsistentValue error if
            the value of smLaunchOperStatus is `enabled'."
       ::= { smLaunchEntry 3 }
        

smLaunchScriptName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..32)) MAX-ACCESS read-create

smLaunchScriptName对象类型语法SnmpAdminString(大小(0..32))MAX-ACCESS读取创建

       STATUS      current
       DESCRIPTION
           "The value of this object in combination with the value of
            the smLaunchScriptOwner identifies the script that can be
            launched from this smLaunchTable entry. Attempts to write
            this objects will fail with an inconsistentValue error if
            the value of smLaunchOperStatus is `enabled'."
       ::= { smLaunchEntry 4 }
        
       STATUS      current
       DESCRIPTION
           "The value of this object in combination with the value of
            the smLaunchScriptOwner identifies the script that can be
            launched from this smLaunchTable entry. Attempts to write
            this objects will fail with an inconsistentValue error if
            the value of smLaunchOperStatus is `enabled'."
       ::= { smLaunchEntry 4 }
        
   smLaunchArgument OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The argument supplied to the script. When a script is
            invoked, the value of this object is used to initialize
            the smRunArgument object."
       DEFVAL { ''H }
       ::= { smLaunchEntry 5 }
        
   smLaunchArgument OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The argument supplied to the script. When a script is
            invoked, the value of this object is used to initialize
            the smRunArgument object."
       DEFVAL { ''H }
       ::= { smLaunchEntry 5 }
        
   smLaunchMaxRunning OBJECT-TYPE
       SYNTAX      Unsigned32 (1..4294967295)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The maximum number of concurrently running scripts that may
            be invoked from this entry in the smLaunchTable. Lowering the
            current value of this object does not affect any scripts that
            are already executing."
       DEFVAL { 1 }
       ::= { smLaunchEntry 6 }
        
   smLaunchMaxRunning OBJECT-TYPE
       SYNTAX      Unsigned32 (1..4294967295)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The maximum number of concurrently running scripts that may
            be invoked from this entry in the smLaunchTable. Lowering the
            current value of this object does not affect any scripts that
            are already executing."
       DEFVAL { 1 }
       ::= { smLaunchEntry 6 }
        
   smLaunchMaxCompleted OBJECT-TYPE
       SYNTAX      Unsigned32 (1..4294967295)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The maximum number of finished scripts invoked from this
            entry in the smLaunchTable allowed to be retained in the
            smRunTable. Whenever the value of this object is changed
            and whenever a script terminates, entries in the smRunTable
            are deleted if necessary until the number of completed
            scripts is smaller than the value of this object. Scripts
            whose smRunEndTime value indicates the oldest completion
            time are deleted first."
       DEFVAL { 1 }
       ::= { smLaunchEntry 7 }
        
   smLaunchMaxCompleted OBJECT-TYPE
       SYNTAX      Unsigned32 (1..4294967295)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The maximum number of finished scripts invoked from this
            entry in the smLaunchTable allowed to be retained in the
            smRunTable. Whenever the value of this object is changed
            and whenever a script terminates, entries in the smRunTable
            are deleted if necessary until the number of completed
            scripts is smaller than the value of this object. Scripts
            whose smRunEndTime value indicates the oldest completion
            time are deleted first."
       DEFVAL { 1 }
       ::= { smLaunchEntry 7 }
        
   smLaunchLifeTime OBJECT-TYPE
       SYNTAX      TimeInterval
       UNITS       "centi-seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The default maximum amount of time a script launched
            from this entry may run. The value of this object is used
            to initialize the smRunLifeTime object when a script is
            launched. Changing the value of an smLaunchLifeTime
            instance does not affect scripts previously launched from
            this entry."
       DEFVAL { 360000 }
       ::= { smLaunchEntry 8 }
        
   smLaunchLifeTime OBJECT-TYPE
       SYNTAX      TimeInterval
       UNITS       "centi-seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The default maximum amount of time a script launched
            from this entry may run. The value of this object is used
            to initialize the smRunLifeTime object when a script is
            launched. Changing the value of an smLaunchLifeTime
            instance does not affect scripts previously launched from
            this entry."
       DEFVAL { 360000 }
       ::= { smLaunchEntry 8 }
        
   smLaunchExpireTime OBJECT-TYPE
       SYNTAX      TimeInterval
       UNITS       "centi-seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The default maximum amount of time information about a
            script launched from this entry is kept in the smRunTable
            after the script has completed execution.  The value of
            this object is used to initialize the smRunExpireTime
            object when a script is launched. Changing the value of an
            smLaunchExpireTime instance does not affect scripts
            previously launched from this entry."
       DEFVAL { 360000 }
       ::= { smLaunchEntry 9 }
        
   smLaunchExpireTime OBJECT-TYPE
       SYNTAX      TimeInterval
       UNITS       "centi-seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The default maximum amount of time information about a
            script launched from this entry is kept in the smRunTable
            after the script has completed execution.  The value of
            this object is used to initialize the smRunExpireTime
            object when a script is launched. Changing the value of an
            smLaunchExpireTime instance does not affect scripts
            previously launched from this entry."
       DEFVAL { 360000 }
       ::= { smLaunchEntry 9 }
        

smLaunchStart OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to start the execution of scripts. When retrieved, the value will be the value of smRunIndex for the last script that started execution by manipulating this object. The value will be zero if no script started execution yet.

smLaunchStart对象类型语法整数32(0..2147483647)MAX-ACCESS读取创建状态当前说明“此对象用于启动脚本的执行。检索时,该值将是通过操作此对象开始执行的最后一个脚本的smRunIndex值。如果尚未开始执行脚本,则该值将为零。

A script is started by setting this object to an unused smRunIndex value. A new row in the smRunTable will be created which is indexed by the value supplied by the set-request in addition to the value of smLaunchOwner and smLaunchName. An unused value can be obtained by reading the smLaunchRunIndexNext object.

通过将此对象设置为未使用的SMRUNIDEX值来启动脚本。将在smRunTable中创建一个新行,该新行除smLaunchOwner和smLaunchName的值外,还通过set请求提供的值进行索引。通过读取smLaunchRunIndexNext对象可以获得未使用的值。

Setting this object to the special value 0 will start the script with a self-generated smRunIndex value. The consequence is that the script invoker has no reliable way to determine the smRunIndex value for this script invocation and that the invoker has therefore no way to obtain the results from this script invocation. The special value 0 is however useful for scheduled script invocations.

将此对象设置为特殊值0将使用自行生成的smRunIndex值启动脚本。结果是,脚本调用程序没有可靠的方法来确定此脚本调用的smRunIndex值,因此调用程序无法从该脚本调用中获得结果。但是,特殊值0对于计划的脚本调用非常有用。

If this object is set, the following checks must be performed:

如果设置了此对象,则必须执行以下检查:

1) The value of the smLaunchOperStatus object in this entry of the smLaunchTable must be `enabled'. 2) The values of smLaunchScriptOwner and smLaunchScriptName of this row must identify an existing entry in the smScriptTable. 3) The value of smScriptOperStatus of this entry must be `enabled'. 4) The principal performing the set operation must have read access to the script. This must be checked by calling the isAccessAllowed abstract service interface defined in RFC 2271 on the row in the smScriptTable identified by smLaunchScriptOwner and smLaunchScriptName. The isAccessAllowed abstract service interface must be called on all columnar objects in the smScriptTable with a MAX-ACCESS value different than `not-accessible'. The test fails as soon as a call indicates that access is not allowed. 5) If the value provided by the set operation is not 0, a check must be made that the value is currently not in use. Otherwise, if the value provided by the set operation is 0, a suitable unused value must be generated. 6) The number of currently executing scripts invoked from this smLaunchTable entry must be less than smLaunchMaxRunning.

1) smLaunchTable的此项中的smLaunchOperStatus对象的值必须为“enabled”。2) 此行的smLaunchScriptOwner和smLaunchScriptName的值必须标识smScriptTable中的现有条目。3) 此条目的smScriptOperStatus值必须为“enabled”。4) 执行set操作的主体必须具有脚本的读取权限。必须通过在smLaunchScriptOwner和smLaunchScriptName标识的smScriptTable中的行上调用RFC 2271中定义的isAccessAllowed抽象服务接口来检查这一点。必须在smScriptTable中的所有列对象上调用isAccessAllowed抽象服务接口,其MAX-ACCESS值不同于“不可访问”。一旦呼叫指示不允许访问,测试就会失败。5) 如果设置操作提供的值不是0,则必须检查该值当前未被使用。否则,如果设置操作提供的值为0,则必须生成合适的未使用值。6) 从该smLaunchTable项调用的当前正在执行的脚本数必须小于smLaunchMaxRunning。

Attempts to start a script will fail with an inconsistentValue error if one of the checks described above fails.

如果上述检查之一失败,则尝试启动脚本将失败,并出现值不一致错误。

Otherwise, if all checks have been passed, a new entry in the smRunTable will be created indexed by smLaunchOwner, smLaunchName and the new value for smRunIndex. The value of smLaunchArgument will be copied into smRunArgument, the value of smLaunchLifeTime will be copied to smRunLifeTime, and the value of smLaunchExpireTime

否则,如果已通过所有检查,则smRunTable中的新条目将由smLaunchOwner、smLaunchName和smRunIndex的新值创建索引。smLaunchArgument的值将被复制到smRunArgument中,smLaunchLifeTime的值将被复制到smRunLifeTime中,smLaunchExpireTime的值将被复制到smRunLifeTime中

will be copied to smRunExpireTime.

将被复制到smRunExpireTime。

The smRunStartTime will be set to the current time and the smRunState will be set to `initializing' before the script execution is initiated in the appropriate runtime system.

在适当的运行时系统中启动脚本执行之前,smRunStartTime将设置为当前时间,smRunState将设置为“初始化”。

            Note, the data type and the range of this object must
            be consistent with the smRunIndex object. Since this
            object might be written from the scheduling MIB, the
            data type Integer32 rather than Unsigned32 is used."
       DEFVAL { 0 }
       ::= { smLaunchEntry 10 }
        
            Note, the data type and the range of this object must
            be consistent with the smRunIndex object. Since this
            object might be written from the scheduling MIB, the
            data type Integer32 rather than Unsigned32 is used."
       DEFVAL { 0 }
       ::= { smLaunchEntry 10 }
        
   smLaunchControl OBJECT-TYPE
       SYNTAX      INTEGER {
                       abort(1),
                       suspend(2),
                       resume(3),
                       nop(4)
                   }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object is used to request a state change for all
            running scripts in the smRunTable that were started from
            this row in the smLaunchTable.
        
   smLaunchControl OBJECT-TYPE
       SYNTAX      INTEGER {
                       abort(1),
                       suspend(2),
                       resume(3),
                       nop(4)
                   }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "This object is used to request a state change for all
            running scripts in the smRunTable that were started from
            this row in the smLaunchTable.
        
            Setting this object to abort(1), suspend(2) or resume(3)
            will set the smRunControl object of all applicable rows
            in the smRunTable to abort(1), suspend(2) or resume(3)
            respectively. The phrase `applicable rows' means the set of
            rows which were created from this entry in the smLaunchTable
            and whose value of smRunState allows the corresponding
            state change as described in the definition of the
            smRunControl object. Setting this object to nop(4) has no
            effect."
       DEFVAL { nop }
       ::= { smLaunchEntry 11 }
        
            Setting this object to abort(1), suspend(2) or resume(3)
            will set the smRunControl object of all applicable rows
            in the smRunTable to abort(1), suspend(2) or resume(3)
            respectively. The phrase `applicable rows' means the set of
            rows which were created from this entry in the smLaunchTable
            and whose value of smRunState allows the corresponding
            state change as described in the definition of the
            smRunControl object. Setting this object to nop(4) has no
            effect."
       DEFVAL { nop }
       ::= { smLaunchEntry 11 }
        
   smLaunchAdminStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2)
                   }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
        
   smLaunchAdminStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2)
                   }
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
        
           "The value of this object indicates the desired status of
            this launch table entry."
       DEFVAL { disabled }
       ::= { smLaunchEntry 12 }
        
           "The value of this object indicates the desired status of
            this launch table entry."
       DEFVAL { disabled }
       ::= { smLaunchEntry 12 }
        
   smLaunchOperStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the actual status of
            this launch table entry. An `enabled' launch table
            entry can be used to start scripts while a `disabled'
            launch table entry will refuse any attempts to start
            scripts. The value `enabled' requires that the
            smLaunchRowStatus object is active. The value
            `disabled' requires that there are no entries in the
            smRunTable associated with this smLaunchTable entry."
       DEFVAL { disabled }
       ::= { smLaunchEntry 13 }
        
   smLaunchOperStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                       enabled(1),
                       disabled(2)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the actual status of
            this launch table entry. An `enabled' launch table
            entry can be used to start scripts while a `disabled'
            launch table entry will refuse any attempts to start
            scripts. The value `enabled' requires that the
            smLaunchRowStatus object is active. The value
            `disabled' requires that there are no entries in the
            smRunTable associated with this smLaunchTable entry."
       DEFVAL { disabled }
       ::= { smLaunchEntry 13 }
        

smLaunchRunIndexNext OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "This variable is used for creating rows in the smRunTable. The value of this variable is a currently unused value for smRunIndex, which can be written into the smLaunchStart object associated with this row to launch a script.

SMLAUNCHRUNIDEXNEXT对象类型语法整数32(1..2147483647)MAX-ACCESS只读状态当前描述“此变量用于在smRunTable中创建行。此变量的值是SMRUNIDEX当前未使用的值,可写入与此行关联的smLaunchStart对象以启动脚本。

The value returned when reading this variable must be unique for the smLaunchOwner and smLauchName associated with this row. Subsequent attempts to read this variable must return different values.

读取此变量时返回的值对于与此行关联的smLaunchOwner和smLauchName必须是唯一的。后续读取此变量的尝试必须返回不同的值。

This variable will return the special value 0 if no new rows can be created.

如果无法创建新行,此变量将返回特殊值0。

            Note, the data type and the range of this object must be
            consistent with the definition of smRunIndex."
       ::= { smLaunchEntry 14 }
        
            Note, the data type and the range of this object must be
            consistent with the definition of smRunIndex."
       ::= { smLaunchEntry 14 }
        

smLaunchStorageType OBJECT-TYPE SYNTAX StorageType

smLaunchStorageType对象类型语法StorageType

MAX-ACCESS read-create STATUS current DESCRIPTION "This object defines if this row is kept in volatile storage and lost upon reboot or if this row is backed up by stable storage.

MAX-ACCESS read create STATUS current DESCRIPTION“此对象定义此行是否保存在易失性存储器中并在重新启动时丢失,或者此行是否由稳定存储器备份。

The value of smLaunchStorageType is only meaningful if the value of the corresponding RowStatus object is active.

smLaunchStorageType的值只有在对应的RowStatus对象的值处于活动状态时才有意义。

            If smLaunchStorageType has the value permanent(4), then all
            objects whose MAX-ACCESS value is read-create must be
            writable, with the exception of the smLaunchStorageType and
            smLaunchRowStatus objects, which shall be read-only."
       DEFVAL { volatile }
       ::= { smLaunchEntry 15 }
        
            If smLaunchStorageType has the value permanent(4), then all
            objects whose MAX-ACCESS value is read-create must be
            writable, with the exception of the smLaunchStorageType and
            smLaunchRowStatus objects, which shall be read-only."
       DEFVAL { volatile }
       ::= { smLaunchEntry 15 }
        

smLaunchRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "A control that allows entries to be added and removed from this table.

smLaunchRowStatus对象类型语法RowStatus MAX-ACCESS read create STATUS current DESCRIPTION“允许在此表中添加和删除条目的控件。

Attempts to `destroy' a row or to set a row `notInService' while scripts started from this launch table entry are running will result in an inconsistentValue error.

从该启动表项启动的脚本正在运行时,尝试“销毁”行或设置行“notInService”将导致值不一致错误。

            Attempts to `destroy' a row or to set a row `notInService'
            where the value of the smLaunchStorageType object is
            `permanent' or `readOnly' will result in an
            inconsistentValue error."
       ::= { smLaunchEntry 16 }
        
            Attempts to `destroy' a row or to set a row `notInService'
            where the value of the smLaunchStorageType object is
            `permanent' or `readOnly' will result in an
            inconsistentValue error."
       ::= { smLaunchEntry 16 }
        
   smRunTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmRunEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists and describes scripts that are currently
            running or have been running in the past."
       ::= { smRunObjects 2 }
        
   smRunTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmRunEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table lists and describes scripts that are currently
            running or have been running in the past."
       ::= { smRunObjects 2 }
        

smRunEntry OBJECT-TYPE SYNTAX SmRunEntry MAX-ACCESS not-accessible

smRunEntry对象类型语法smRunEntry MAX-ACCESS不可访问

       STATUS      current
       DESCRIPTION
           "An entry describing a particular running or finished
            script."
       INDEX { smLaunchOwner, smLaunchName, smRunIndex }
       ::= { smRunTable 1 }
        
       STATUS      current
       DESCRIPTION
           "An entry describing a particular running or finished
            script."
       INDEX { smLaunchOwner, smLaunchName, smRunIndex }
       ::= { smRunTable 1 }
        
   SmRunEntry ::= SEQUENCE {
       smRunIndex          Integer32,
       smRunArgument       OCTET STRING,
       smRunStartTime      DateAndTime,
       smRunEndTime        DateAndTime,
       smRunLifeTime       TimeInterval,
       smRunExpireTime     TimeInterval,
       smRunExitCode       INTEGER,
       smRunResult         OCTET STRING,
       smRunControl        INTEGER,
       smRunState          INTEGER,
       smRunError          SnmpAdminString
   }
        
   SmRunEntry ::= SEQUENCE {
       smRunIndex          Integer32,
       smRunArgument       OCTET STRING,
       smRunStartTime      DateAndTime,
       smRunEndTime        DateAndTime,
       smRunLifeTime       TimeInterval,
       smRunExpireTime     TimeInterval,
       smRunExitCode       INTEGER,
       smRunResult         OCTET STRING,
       smRunControl        INTEGER,
       smRunState          INTEGER,
       smRunError          SnmpAdminString
   }
        

smRunIndex OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The locally arbitrary, but unique identifier associated with this running or finished script. This value must be unique for all rows in the smRunTable with the same smLaunchOwner and smLaunchName.

smRunIndex对象类型语法整数32(1..2147483647)MAX-ACCESS不可访问状态当前描述“与此正在运行或已完成的脚本关联的本地任意但唯一的标识符。此值对于smRunTable中具有相同smLaunchOwner和smLaunchName的所有行都必须是唯一的。

            Note, the data type and the range of this object must be
            consistent with the definition of smLaunchRunIndexNext
            and smLaunchStart."
       ::= { smRunEntry 1 }
        
            Note, the data type and the range of this object must be
            consistent with the definition of smLaunchRunIndexNext
            and smLaunchStart."
       ::= { smRunEntry 1 }
        
   smRunArgument OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The argument supplied to the script when it started."
       DEFVAL { ''H }
       ::= { smRunEntry 2 }
        
   smRunArgument OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The argument supplied to the script when it started."
       DEFVAL { ''H }
       ::= { smRunEntry 2 }
        

smRunStartTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only

smRunStartTime对象类型语法DateAndTime MAX-ACCESS只读

       STATUS      current
       DESCRIPTION
           "The date and time when the execution started. The value
            '0000000000000000'H is returned if the script has not
            started yet."
       DEFVAL { '0000000000000000'H }
       ::= { smRunEntry 3 }
        
       STATUS      current
       DESCRIPTION
           "The date and time when the execution started. The value
            '0000000000000000'H is returned if the script has not
            started yet."
       DEFVAL { '0000000000000000'H }
       ::= { smRunEntry 3 }
        
   smRunEndTime OBJECT-TYPE
       SYNTAX      DateAndTime
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The date and time when the execution terminated. The value
            '0000000000000000'H is returned if the script has not
            terminated yet."
       DEFVAL { '0000000000000000'H }
       ::= { smRunEntry 4 }
        
   smRunEndTime OBJECT-TYPE
       SYNTAX      DateAndTime
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The date and time when the execution terminated. The value
            '0000000000000000'H is returned if the script has not
            terminated yet."
       DEFVAL { '0000000000000000'H }
       ::= { smRunEntry 4 }
        

smRunLifeTime OBJECT-TYPE SYNTAX TimeInterval UNITS "centi-seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies how long the script can execute. This object returns the remaining time that the script may run. The object is initialized with the value of the associated smLaunchLifeTime object and ticks backwards. The script is aborted immediately when the value reaches 0.

smRunLifeTime对象类型语法时间间隔单位“厘米秒”最大访问读写状态当前说明“此对象指定脚本可以执行的时间。此对象返回脚本可能运行的剩余时间。使用关联的smLaunchLifeTime对象的值初始化该对象,并向后勾选。当值达到0时,脚本将立即中止。

The value of this object may be set in order to increase or reduce the remaining time that the script may run. Setting this value to 0 will abort script execution immediately, and, if the value of smRunExpireTime is also 0, will remove this entry from the smRunTable once it has terminated.

可以设置此对象的值以增加或减少脚本可能运行的剩余时间。将此值设置为0将立即中止脚本执行,如果smRunExpireTime的值也为0,则将在终止后从smRunTable中删除此项。

The value of smRunLifeTime reflects the real-time execution time as seen by the outside world. The value of this object will always be 0 for a script that finished execution, that is smRunState has the value `terminated'.

SMRUNLifest的值反映了外界看到的实时执行时间。对于已完成执行的脚本,此对象的值始终为0,即smRunState的值为'terminated'。

            The value of smRunLifeTime does not change while a script
            is suspended, that is smRunState has the value `suspended'.
            Note, this does not affect set operations. It is legal to
            modify smRunLifeTime via set operations while a script is
            suspended."
       ::= { smRunEntry 5 }
        
            The value of smRunLifeTime does not change while a script
            is suspended, that is smRunState has the value `suspended'.
            Note, this does not affect set operations. It is legal to
            modify smRunLifeTime via set operations while a script is
            suspended."
       ::= { smRunEntry 5 }
        

smRunExpireTime OBJECT-TYPE SYNTAX TimeInterval UNITS "centi-seconds" MAX-ACCESS read-write STATUS current DESCRIPTION "This value specifies how long this row can exist in the smRunTable after the script has terminated. This object returns the remaining time that the row may exist before it is aged out. The object is initialized with the value of the associated smLaunchExpireTime object and ticks backwards. The entry in the smRunTable is destroyed when the value reaches 0 and the smRunState has the value `terminated'.

smRunExpireTime对象类型语法时间间隔单位“厘米秒”最大访问读写状态当前说明“此值指定脚本终止后,该行在smRunTable中可以存在多长时间。此对象返回行在过期之前可能存在的剩余时间。使用关联的smLaunchExpireTime对象的值初始化该对象,并向后勾选。当值达到0且smRunState的值为“terminated”时,smRunTable中的条目将被销毁。

            The value of this object may be set in order to increase or
            reduce the remaining time that the row may exist.  Setting
            the value to 0 will destroy this entry as soon as the
            smRunState has the value `terminated'."
       ::= { smRunEntry 6 }
        
            The value of this object may be set in order to increase or
            reduce the remaining time that the row may exist.  Setting
            the value to 0 will destroy this entry as soon as the
            smRunState has the value `terminated'."
       ::= { smRunEntry 6 }
        
   smRunExitCode OBJECT-TYPE
       SYNTAX      INTEGER {
                       noError(1),
                       halted(2),
                       lifeTimeExceeded(3),
                       noResourcesLeft(4),
                       languageError(5),
                       runtimeError(6),
                       invalidArgument(7),
                       securityViolation(8),
                       genericError(9)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the reason why a
            script finished execution. The smRunExitCode code may have
            one of the following values:
        
   smRunExitCode OBJECT-TYPE
       SYNTAX      INTEGER {
                       noError(1),
                       halted(2),
                       lifeTimeExceeded(3),
                       noResourcesLeft(4),
                       languageError(5),
                       runtimeError(6),
                       invalidArgument(7),
                       securityViolation(8),
                       genericError(9)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the reason why a
            script finished execution. The smRunExitCode code may have
            one of the following values:
        

- `noError', which indicates that the script completed successfully without errors;

- `noError',表示脚本成功完成,没有错误;

- `halted', which indicates that the script was halted by a request from an authorized manager;

- `“已暂停”,表示脚本因授权经理的请求而暂停;

- `lifeTimeExceeded', which indicates that the script exited because a time limit was exceeded;

- `LifetimeExtered',表示脚本退出是因为超过了时间限制;

- `noResourcesLeft', which indicates that the script exited because it ran out of resources (e.g. memory);

- `noResourcesLeft',表示脚本因资源(如内存)不足而退出;

- `languageError', which indicates that the script exited because of a language error (e.g. a syntax error in an interpreted language);

- `languageError',表示脚本由于语言错误(例如解释语言中的语法错误)而退出;

- `runtimeError', which indicates that the script exited due to a runtime error (e.g. a division by zero);

- `runtimeError',表示脚本由于运行时错误(例如被零除)而退出;

- `invalidArgument', which indicates that the script could not be run because of invalid script arguments;

- `invalidArgument',表示由于脚本参数无效而无法运行脚本;

- `securityViolation', which indicates that the script exited due to a security violation;

- `securityViolation',表示脚本由于安全冲突而退出;

- `genericError', which indicates that the script exited for an unspecified reason.

- `genericError',表示脚本因未指定的原因退出。

            If the script has not yet begun running, or is currently
            running, the value will be `noError'."
       DEFVAL { noError }
       ::= { smRunEntry 7 }
        
            If the script has not yet begun running, or is currently
            running, the value will be `noError'."
       DEFVAL { noError }
       ::= { smRunEntry 7 }
        
   smRunResult OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The result value produced by the running script. Note that
            the result may change while the script is executing."
       DEFVAL { ''H }
       ::= { smRunEntry 8 }
        
   smRunResult OBJECT-TYPE
       SYNTAX      OCTET STRING
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The result value produced by the running script. Note that
            the result may change while the script is executing."
       DEFVAL { ''H }
       ::= { smRunEntry 8 }
        
   smRunControl OBJECT-TYPE
       SYNTAX      INTEGER {
                       abort(1),
                       suspend(2),
                       resume(3),
                       nop(4)
                   }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the desired status of the
            script execution defined by this row.
        
   smRunControl OBJECT-TYPE
       SYNTAX      INTEGER {
                       abort(1),
                       suspend(2),
                       resume(3),
                       nop(4)
                   }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the desired status of the
            script execution defined by this row.
        

Setting this object to `abort' will abort execution if the

如果

value of smRunState is `initializing', `executing', `suspending', `suspended' or `resuming'. Setting this object to `abort' when the value of smRunState is `aborting' or `terminated' will result in an inconsistentValue error.

smRunState的值为“初始化”、“执行”、“暂停”、“暂停”或“恢复”。当smRunState的值为“中止”或“终止”时,将此对象设置为“中止”,将导致不一致的值错误。

Setting this object to `suspend' will suspend execution if the value of smRunState is `executing'. Setting this object to `suspend' will cause an inconsistentValue error if the value of smRunState is not `executing'.

如果smRunState的值为“正在执行”,则将此对象设置为“暂停”将暂停执行。如果smRunState的值不是“正在执行”,则将此对象设置为“挂起”将导致值不一致错误。

Setting this object to `resume' will resume execution if the value of smRunState is `suspending' or `suspended'. Setting this object to `resume' will cause an inconsistentValue error if the value of smRunState is not `suspending' or `suspended'.

如果smRunState的值为'suspending'或'suspended',则将此对象设置为'resume'将恢复执行。如果smRunState的值不是“挂起”或“挂起”,则将此对象设置为“resume”将导致值不一致错误。

            Setting this object to nop(4) has no effect."
       DEFVAL { nop }
       ::= { smRunEntry 9 }
        
            Setting this object to nop(4) has no effect."
       DEFVAL { nop }
       ::= { smRunEntry 9 }
        
   smRunState OBJECT-TYPE
       SYNTAX      INTEGER {
                       initializing(1),
                       executing(2),
                       suspending(3),
                       suspended(4),
                       resuming(5),
                       aborting(6),
                       terminated(7)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the script's execution
            status.  If the script has been invoked but has not yet
            begun execution, the value will be `initializing'. If the
            script is running, the value will be `executing'. A script
            which received a request to suspend execution but which
            did not actually suspend execution will be `suspending'.
            A script which has suspended execution will be `suspended'.
            A script which received a request to resume execution but
            which is not yet running is `resuming'. The resuming state
            will finally lead to the `executing' state. A script which
            received a request to abort execution but which is still
            running is `aborting'. A script which stopped execution
            is `terminated'."
       ::= { smRunEntry 10 }
        
   smRunState OBJECT-TYPE
       SYNTAX      INTEGER {
                       initializing(1),
                       executing(2),
                       suspending(3),
                       suspended(4),
                       resuming(5),
                       aborting(6),
                       terminated(7)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of this object indicates the script's execution
            status.  If the script has been invoked but has not yet
            begun execution, the value will be `initializing'. If the
            script is running, the value will be `executing'. A script
            which received a request to suspend execution but which
            did not actually suspend execution will be `suspending'.
            A script which has suspended execution will be `suspended'.
            A script which received a request to resume execution but
            which is not yet running is `resuming'. The resuming state
            will finally lead to the `executing' state. A script which
            received a request to abort execution but which is still
            running is `aborting'. A script which stopped execution
            is `terminated'."
       ::= { smRunEntry 10 }
        

smRunError OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "This contains a descriptive error message if the script terminates in an abnormally. An implementation must store a descriptive error message in this object if the script exits with the smRunExitCode `genericError'.

smRunError对象类型语法SNMPAdministring MAX-ACCESS只读状态当前描述“如果脚本以异常方式终止,则包含描述性错误消息。如果脚本以smRunExitCode`GenericeError'退出,则实现必须在此对象中存储描述性错误消息。”。

            The value of this object is the zero-length string as long
            as the smRunExitCode has the value `noError'"
       DEFVAL { ''H }
       ::= { smRunEntry 11 }
        
            The value of this object is the zero-length string as long
            as the smRunExitCode has the value `noError'"
       DEFVAL { ''H }
       ::= { smRunEntry 11 }
        
   --
   -- Notifications. The definition of smTraps makes notification
   -- registrations reversible (see STD 58, RFC 2578).
   --
        
   --
   -- Notifications. The definition of smTraps makes notification
   -- registrations reversible (see STD 58, RFC 2578).
   --
        
   smTraps OBJECT IDENTIFIER ::= { smNotifications 0 }
        
   smTraps OBJECT IDENTIFIER ::= { smNotifications 0 }
        
   smScriptAbort NOTIFICATION-TYPE
       OBJECTS     { smRunExitCode, smRunEndTime, smRunError }
       STATUS      current
       DESCRIPTION
           "This notification is generated whenever a running script
            terminates with an smRunExitCode unequal to `noError'."
       ::= { smTraps 1 }
        
   smScriptAbort NOTIFICATION-TYPE
       OBJECTS     { smRunExitCode, smRunEndTime, smRunError }
       STATUS      current
       DESCRIPTION
           "This notification is generated whenever a running script
            terminates with an smRunExitCode unequal to `noError'."
       ::= { smTraps 1 }
        

smScriptResult NOTIFICATION-TYPE OBJECTS { smRunResult } STATUS current DESCRIPTION "This notification can be used by scripts to notify other management applications about script results. It can be used to notify managers about a script result.

smScriptResult NOTIFICATION-TYPE对象{smRunResult}状态当前描述“脚本可使用此通知通知其他管理应用程序有关脚本结果。它可用于通知管理员有关脚本结果。

            This notification is not automatically generated by the
            script MIB implementation. It is the responsibility of
            the executing script to emit this notification where it
            is appropriate to do so."
       ::= { smTraps 2 }
        
            This notification is not automatically generated by the
            script MIB implementation. It is the responsibility of
            the executing script to emit this notification where it
            is appropriate to do so."
       ::= { smTraps 2 }
        
   -- conformance information
   smCompliances OBJECT IDENTIFIER ::= { smConformance 1 }
   smGroups      OBJECT IDENTIFIER ::= { smConformance 2 }
        
   -- conformance information
   smCompliances OBJECT IDENTIFIER ::= { smConformance 1 }
   smGroups      OBJECT IDENTIFIER ::= { smConformance 2 }
        

-- compliance statements

--合规声明

   smCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION
           "The compliance statement for SNMP entities which implement
            the script MIB."
       MODULE      -- this module
       MANDATORY-GROUPS {
               smLanguageGroup, smScriptGroup, smLaunchGroup, smRunGroup
       }
       GROUP   smCodeGroup
       DESCRIPTION
           "The smCodeGroup is mandatory only for those implementations
            that support the downloading of scripts via SNMP."
       OBJECT  smScriptSource
       MIN-ACCESS  read-only
       DESCRIPTION
           "The smScriptSource object is read-only for implementations
            that are not able to download script code from a URL."
       OBJECT smLaunchArgument
       DESCRIPTION
           "A compliant implementation has to support a minimum size
            for smLaunchArgument of 255 octets."
       OBJECT smRunArgument
       DESCRIPTION
           "A compliant implementation has to support a minimum size
            for smRunArgument of 255 octets."
       OBJECT smRunResult
       DESCRIPTION
           "A compliant implementation has to support a minimum size
            for smRunResult of 255 octets."
       OBJECT smRunState
       DESCRIPTION
           "A compliant implementation does not have to support script
            suspension and the smRunState `suspended'. Such an
            implementation will change into the `suspending' state
            when the smRunControl is set to `suspend' and remain in this
            state until smRunControl is set to `resume' or the script
            terminates."
       ::= { smCompliances 1 }
        
   smCompliance MODULE-COMPLIANCE
       STATUS      current
       DESCRIPTION
           "The compliance statement for SNMP entities which implement
            the script MIB."
       MODULE      -- this module
       MANDATORY-GROUPS {
               smLanguageGroup, smScriptGroup, smLaunchGroup, smRunGroup
       }
       GROUP   smCodeGroup
       DESCRIPTION
           "The smCodeGroup is mandatory only for those implementations
            that support the downloading of scripts via SNMP."
       OBJECT  smScriptSource
       MIN-ACCESS  read-only
       DESCRIPTION
           "The smScriptSource object is read-only for implementations
            that are not able to download script code from a URL."
       OBJECT smLaunchArgument
       DESCRIPTION
           "A compliant implementation has to support a minimum size
            for smLaunchArgument of 255 octets."
       OBJECT smRunArgument
       DESCRIPTION
           "A compliant implementation has to support a minimum size
            for smRunArgument of 255 octets."
       OBJECT smRunResult
       DESCRIPTION
           "A compliant implementation has to support a minimum size
            for smRunResult of 255 octets."
       OBJECT smRunState
       DESCRIPTION
           "A compliant implementation does not have to support script
            suspension and the smRunState `suspended'. Such an
            implementation will change into the `suspending' state
            when the smRunControl is set to `suspend' and remain in this
            state until smRunControl is set to `resume' or the script
            terminates."
       ::= { smCompliances 1 }
        

smLanguageGroup OBJECT-GROUP OBJECTS { smLangLanguage, smLangVersion, smLangVendor, smLangRevision,

smLanguageGroup对象组对象{smLangLanguage,smLangVersion,smLangVendor,smLangRevision,

           smLangDescr,
           smExtsnExtension,
           smExtsnVersion,
           smExtsnVendor,
           smExtsnRevision,
           smExtsnDescr
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about the
            capabilities of the scripting engine."
       ::= { smGroups 1 }
        
           smLangDescr,
           smExtsnExtension,
           smExtsnVersion,
           smExtsnVendor,
           smExtsnRevision,
           smExtsnDescr
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about the
            capabilities of the scripting engine."
       ::= { smGroups 1 }
        
   smScriptGroup OBJECT-GROUP
       OBJECTS {
           smScriptDescr,
           smScriptLanguage,
           smScriptSource,
           smScriptAdminStatus,
           smScriptOperStatus,
           smScriptStorageType,
           smScriptRowStatus
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            installed scripts."
       ::= { smGroups 2 }
        
   smScriptGroup OBJECT-GROUP
       OBJECTS {
           smScriptDescr,
           smScriptLanguage,
           smScriptSource,
           smScriptAdminStatus,
           smScriptOperStatus,
           smScriptStorageType,
           smScriptRowStatus
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about
            installed scripts."
       ::= { smGroups 2 }
        
   smCodeGroup OBJECT-GROUP
       OBJECTS {
           smCodeText,
           smCodeRowStatus
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects used to download or modify scripts
            by using SNMP set requests."
       ::= { smGroups 3 }
        
   smCodeGroup OBJECT-GROUP
       OBJECTS {
           smCodeText,
           smCodeRowStatus
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects used to download or modify scripts
            by using SNMP set requests."
       ::= { smGroups 3 }
        

smLaunchGroup OBJECT-GROUP OBJECTS { smLaunchScriptOwner, smLaunchScriptName, smLaunchArgument, smLaunchMaxRunning, smLaunchMaxCompleted, smLaunchLifeTime,

smLaunchGroup对象组对象{smLaunchScriptOwner,smLaunchScriptName,smLaunchArgument,smLaunchMaxRunning,smLaunchMaxCompleted,smLaunchLifeTime,

           smLaunchExpireTime,
           smLaunchStart,
           smLaunchControl,
           smLaunchAdminStatus,
           smLaunchOperStatus,
           smLaunchRunIndexNext,
           smLaunchStorageType,
           smLaunchRowStatus
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about scripts
            that can be launched."
       ::= { smGroups 4 }
        
           smLaunchExpireTime,
           smLaunchStart,
           smLaunchControl,
           smLaunchAdminStatus,
           smLaunchOperStatus,
           smLaunchRunIndexNext,
           smLaunchStorageType,
           smLaunchRowStatus
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about scripts
            that can be launched."
       ::= { smGroups 4 }
        
   smRunGroup OBJECT-GROUP
       OBJECTS {
           smRunArgument,
           smRunStartTime,
           smRunEndTime,
           smRunLifeTime,
           smRunExpireTime,
           smRunExitCode,
           smRunResult,
           smRunState,
           smRunControl,
           smRunError
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about running
            scripts."
       ::= { smGroups 5 }
        
   smRunGroup OBJECT-GROUP
       OBJECTS {
           smRunArgument,
           smRunStartTime,
           smRunEndTime,
           smRunLifeTime,
           smRunExpireTime,
           smRunExitCode,
           smRunResult,
           smRunState,
           smRunControl,
           smRunError
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing information about running
            scripts."
       ::= { smGroups 5 }
        
   smNotificationsGroup NOTIFICATION-GROUP
       NOTIFICATIONS {
           smScriptAbort,
           smScriptResult
       }
       STATUS      current
       DESCRIPTION
           "The notifications emitted by the script MIB."
       ::= { smGroups 6 }
        
   smNotificationsGroup NOTIFICATION-GROUP
       NOTIFICATIONS {
           smScriptAbort,
           smScriptResult
       }
       STATUS      current
       DESCRIPTION
           "The notifications emitted by the script MIB."
       ::= { smGroups 6 }
        

END

终止

7. Usage Examples
7. 用法示例

This section presents some examples that explain how a manager can use the Script MIB defined in this memo. The purpose of these examples is to explain the steps that are normally used to delegate management scripts.

本节提供了一些示例,说明经理如何使用此备忘录中定义的脚本MIB。这些示例的目的是解释通常用于委托管理脚本的步骤。

7.1. Pushing a script via SNMP
7.1. 通过SNMP推送脚本

This example explains the steps performed by a manager to push a script into a distributed manager.

本例解释了管理器将脚本推入分布式管理器所执行的步骤。

1. The manager first checks the smLanguageTable and the smExtensionTable in order to select the appropriate script or language.

1. 管理器首先检查smLanguageTable和smExtensionTable,以选择适当的脚本或语言。

2. The manager creates a row in the smScriptTable by issuing an SNMP set-request. The smScriptRowStatus object is set to `createAndWait' and the smScriptSource object is set to an empty string. The smScriptLanguage object is set to the language in which the script was written. The smScriptStorageType object is set to `volatile' to indicate that the script will be loaded via the smCodeTable. The smScriptOwner is set to a string which identifies the principal who owns the new row. The smScriptName defines the administratively assigned unique name for the script.

2. 管理器通过发出SNMP设置请求在smScriptTable中创建一行。smScriptRowStatus对象设置为“createAndWait”,smScriptSource对象设置为空字符串。smScriptLanguage对象设置为编写脚本时使用的语言。smScriptStorageType对象设置为“volatile”,表示将通过smCodeTable加载脚本。smScriptOwner设置为一个字符串,用于标识拥有新行的主体。smScriptName为脚本定义管理分配的唯一名称。

3. The manager sets the smScriptRowStatus object to `active' and the smScriptAdminStatus object to `editing'.

3. 管理器将smScriptRowStatus对象设置为“活动”,将smScriptAdminStatus对象设置为“编辑”。

4. The manager pushes the script to the distributed manager by issuing a couple of SNMP set-requests to fill the smCodeTable.

4. 管理器通过发出两个SNMP集请求来填充smCodeTable,从而将脚本推送到分布式管理器。

5. Once the whole script has been transferred, the manager sends a set-request to set the smScriptAdminStatus object to `enabled'. The Script MIB implementation now makes the script accessible to the runtime system. This might include the compilation of the script if the language requires a compilation step.

5. 传输整个脚本后,管理器将发送一个set请求,以将smScriptAdminStatus对象设置为“enabled”。脚本MIB实现现在使运行时系统可以访问脚本。如果语言需要编译步骤,这可能包括脚本的编译。

6. The manager polls the smScriptOperStatus object until the value is either `enabled' or one of the error status codes. The script can only be used if the value of smScriptOperStatus is `enabled'.

6. 管理器轮询smScriptOperStatus对象,直到该值为“已启用”或某个错误状态代码。仅当smScriptOperStatus的值为“enabled”时,才能使用该脚本。

7. If the manager wants to store the script in local non-volatile storage, it should send a set-request which changes the smScriptStorageType object to `nonVolatile'.

7. 如果管理器希望将脚本存储在本地非易失性存储器中,则应发送一个set请求,将smScriptStorageType对象更改为“非易失性”。

7.2. Pulling a script from a URL
7.2. 从URL中提取脚本

This example explains the steps performed by a manager to cause a distributed manager to pull a script from a URL.

本例解释了管理器执行的步骤,以使分布式管理器从URL中提取脚本。

1. The manager first checks the smLanguageTable and the smExtensionTable in order to select the appropriate script or language.

1. 管理器首先检查smLanguageTable和smExtensionTable,以选择适当的脚本或语言。

2. The manager creates a row in the smScriptTable by issuing an SNMP set-request. The smScriptRowStatus object is set to `createAndWait' and the smScriptSource object is set to the URL which points to the script source. The smScriptLanguage object is set to the language in which the script was written. The smScriptOwner is set to a string which identifies the principal who owns the new row. The smScriptName defines the administratively assigned unique name for the script.

2. 管理器通过发出SNMP设置请求在smScriptTable中创建一行。smScriptRowStatus对象设置为“createAndWait”,smScriptSource对象设置为指向脚本源的URL。smScriptLanguage对象设置为编写脚本时使用的语言。smScriptOwner设置为一个字符串,用于标识拥有新行的主体。smScriptName为脚本定义管理分配的唯一名称。

3. The manager sets the smScriptRowStatus object to `active'.

3. 管理器将smScriptRowStatus对象设置为“活动”。

4. The manager sends a set-request to set the smScriptAdminStatus object to `enabled'. The Script MIB implementation now makes the script accessible to the runtime system. This causes a retrieval operation to pull the script from the URL stored in smScriptSource. This retrieval operation might be followed by a compile operation if the language requires a compilation step.

4. 管理器发送一个set请求,将smScriptAdminStatus对象设置为“enabled”。脚本MIB实现现在使运行时系统可以访问脚本。这会导致检索操作从存储在smScriptSource中的URL中提取脚本。如果语言需要编译步骤,则此检索操作之后可能会执行编译操作。

5. The manager polls the smScriptOperStatus object until the value is either `enabled' or one of the error status codes. The script can only be used if the value of smScriptOperStatus is `enabled'.

5. 管理器轮询smScriptOperStatus对象,直到该值为“已启用”或某个错误状态代码。仅当smScriptOperStatus的值为“enabled”时,才能使用该脚本。

6. If the manager wants to store the script in local non-volatile storage, it should send a set-request which changes the smScriptStorageType object to `nonVolatile'.

6. 如果管理器希望将脚本存储在本地非易失性存储器中,则应发送一个set请求,将smScriptStorageType对象更改为“非易失性”。

7.3. Modifying an existing script
7.3. 修改现有脚本

This section explains how a manager can modify a script by sending SNMP set-requests.

本节介绍管理器如何通过发送SNMP集请求来修改脚本。

1. First, the script is de-activated by setting the smScriptAdminStatus to `disabled'.

1. 首先,通过将smScriptAdminStatus设置为“disabled”来取消激活脚本。

2. The manager polls the smScriptOperStatus object until the value is `disabled'.

2. 管理器轮询smScriptOperStatus对象,直到该值为“已禁用”。

3. The manager sets smScriptSource to an empty string and smScriptAdminStatus to `editing'. This makes the script source available in the smCodeTable.

3. 管理器将smScriptSource设置为空字符串,将smScriptAdminStatus设置为“编辑”。这将使脚本源在smCodeTable中可用。

4. The manager polls the smScriptOperStatus object until the value is `editing'.

4. 管理器轮询smScriptOperStatus对象,直到该值为“正在编辑”。

5. The manager sends SNMP set-requests to modify the script in the smCodeTable.

5. 管理器发送SNMP设置请求,以修改smCodeTable中的脚本。

6. The manager sends a set-request to set the smScriptAdminStatus object to `enabled'. The Script MIB implementation now makes the script accessible to the runtime system. This might include the compilation of the script if the language requires a compilation step.

6. 管理器发送一个set请求,将smScriptAdminStatus对象设置为“enabled”。脚本MIB实现现在使运行时系统可以访问脚本。如果语言需要编译步骤,这可能包括脚本的编译。

7. The manager polls the smScriptOperStatus object until the value is either `enabled' or one of the error status codes. The script can only be used if the value of smScriptOperStatus is `enabled'.

7. 管理器轮询smScriptOperStatus对象,直到该值为“已启用”或某个错误状态代码。仅当smScriptOperStatus的值为“enabled”时,才能使用该脚本。

7.4. Removing an existing script
7.4. 删除现有脚本

This section explains how a manager can remove a script from a distributed manager.

本节介绍管理器如何从分布式管理器中删除脚本。

1. First, the manager sets the smScriptAdminStatus to `disabled'. This will ensure that no new scripts can be started while running scripts finish their execution.

1. 首先,管理器将smScriptAdminStatus设置为“已禁用”。这将确保在运行脚本并完成其执行时不能启动新脚本。

2. The manager polls the smScriptOperStatus object until the value is `disabled'.

2. 管理器轮询smScriptOperStatus对象,直到该值为“已禁用”。

3. The manager sends an SNMP set-request to change the smScriptRowStatus object to `destroy'. This will remove the row and all associated resources from the Script MIB implementation.

3. 管理器发送SNMP设置请求,将smScriptRowStatus对象更改为“销毁”。这将从脚本MIB实现中删除行和所有相关资源。

7.5. Creating a launch button
7.5. 创建启动按钮

This section explains how a manager can create a launch button for starting a script.

本节介绍管理器如何创建用于启动脚本的启动按钮。

1. The manager, who is identified by an smLaunchOwner value, first chooses a name for the new row in the smLaunchTable. The manager sends an SNMP set-request to set the smLaunchRowStatus object for this smLaunchOwner and smLaunchName to `createAndWait'.

1. 由smLaunchOwner值标识的管理器首先为smLaunchTable中的新行选择一个名称。管理器发送SNMP设置请求,以将此smLaunchOwner和smLaunchName的smLaunchRowStatus对象设置为“createAndWait”。

2. The manager fills the new smLaunchTable row with all required parameters. The smLaunchScriptOwner and smLaunchScriptName values point to the script that should be started from this launch button.

2. 管理器使用所有必需的参数填充新的smLaunchTable行。smLaunchScriptOwner和smLaunchScriptName值指向应从该启动按钮启动的脚本。

3. The manager sends a set-request to change smLaunchAdminStatus to `enabled' once the new smLaunchTable row is complete.

3. 新smLaunchTable行完成后,管理器将发送一个set请求,将smLaunchAdminStatus更改为“已启用”。

4. The manager polls the smLaunchOperStatus object until the value is `enabled'.

4. 管理器轮询SMLaunchOperaStatus对象,直到该值为“已启用”。

7.6. Launching a script
7.6. 启动脚本

This section explains the suggested way to launch a script from a given launch button.

本节介绍从给定启动按钮启动脚本的建议方法。

1. The manager first retrieves the value of smLaunchRunIndexNext from the launch button selected to start the script.

1. 管理器首先从启动脚本所选的启动按钮中检索smLaunchRunIndexNext的值。

2. The manager sends an SNMP set-request to set the smLaunchStart object to the value obtained in step 1. This will launch the script if all necessary pre-conditions are satisfied (see the definition of smLaunchStart for more details). The manager can also provide the smLaunchArgument in the same set-request that is used to start the script. Upon successful start, a new row will be created in the smRunTable indexed by smLaunchOwner, smLaunchName and the value written to smLaunchStart.

2. 管理器发送SNMP设置请求,将smLaunchStart对象设置为步骤1中获得的值。如果满足所有必要的先决条件,这将启动脚本(有关更多详细信息,请参阅smLaunchStart的定义)。管理器还可以在用于启动脚本的同一集合请求中提供smLaunchArgument。成功启动后,将在smRunTable中创建一个新行,由smLaunchOwner、smLaunchName和写入smLaunchStart的值编制索引。

Note, the first step is not required. A manager can also try to guess an unused value for smRunIndex if he wants to start script in a single transaction. A manager can also use the special value 0 if he does not care about the results produced by the script.

注意,第一步不是必需的。如果经理希望在单个事务中启动脚本,他还可以尝试猜测SMRUNIDEX的未使用值。如果经理不关心脚本生成的结果,他也可以使用特殊值0。

7.7. Terminating a script
7.7. 终止脚本

This section explains two ways to terminate a running script. The first approach is as follows:

本节介绍终止正在运行的脚本的两种方法。第一种方法如下:

1. The manager sets the smRunControl object of the running script or the smLaunchControl object of the launch button used to start the running script to `abort'. Setting smLaunchControl will abort all running scripts started from the launch button while smRunControl will only abort the running script associated with the smRunControl instance.

1. 管理器将运行脚本的smRunControl对象或用于启动运行脚本的启动按钮的smLaunchControl对象设置为“中止”。设置smLaunchControl将中止从启动按钮启动的所有正在运行的脚本,而smRunControl将仅中止与smRunControl实例关联的正在运行的脚本。

The second way to terminate a script is to set the smRunLifeTime to zero which causes the runtime system to terminate the script with a `lifeTimeExceeded' exit code:

终止脚本的第二种方法是将smRunLifeTime设置为零,这会导致运行时系统使用“LifetimeExcepted”退出代码终止脚本:

1. The manager changes the value of smRunLifeTime to 0. This causes the Script MIB implementation to abort the script because the remaining life time has expired.

1. 管理器将smRunLifeTime的值更改为0。这会导致脚本MIB实现中止脚本,因为剩余的生存时间已过期。

Note, changing the smRunLifeTime value can also be used to increase the permitted lifetime of a running script. For example, a manager can choose to set smRunLifeTime to a small fixed time interval and increase the value periodically. This strategy has the nice effect that scripts terminate automatically if the manager loses contact with the Script MIB engine.

注意,更改smRunLifeTime值也可用于增加运行脚本的允许生存期。例如,管理器可以选择将smRunLifeTime设置为一个小的固定时间间隔,并定期增加该值。此策略的良好效果是,如果管理器与脚本MIB引擎失去联系,脚本将自动终止。

7.8. Removing a launch button
7.8. 卸下启动按钮

This section explains how a manager can remove a launch button from a distributed manager.

本节介绍管理器如何从分布式管理器中删除启动按钮。

1. First, the manager sets the smLaunchAdminStatus to `disabled'. This will ensure that no new scripts can be started from this launch button while running script will finish their execution.

1. 首先,管理器将smLaunchAdminStatus设置为“已禁用”。这将确保在运行脚本将完成其执行时,不能从此启动按钮启动新脚本。

2. The manager polls the smLaunchOperStatus object until the value is `disabled'.

2. 管理器轮询smLaunchOperStatus对象,直到该值为“禁用”。

3. The manager sends an SNMP set-request to change the smLaunchRowStatus object to `destroy'. This will remove the row and all associated resources from the Script MIB implementation.

3. 管理器发送SNMP设置请求,将smLaunchRowStatus对象更改为“销毁”。这将从脚本MIB实现中删除行和所有相关资源。

8. VACM Configuration Examples
8. VACM配置示例

This section shows how the view-based access control model defined in RFC 2275 [15] can be configured to control access to the script MIB.

本节说明如何配置RFC 2275[15]中定义的基于视图的访问控制模型,以控制对脚本MIB的访问。

8.1. Sandbox for guests
8.1. 客人沙箱

The first example demonstrates how to configure VACM to give the members of the VACM group "guest" limited access to the script MIB. The MIB views defined below give the members of the "guest" group a sandbox where they can install and start their own scripts, but not access any other scripts maintained by the Script MIB implementation.

第一个示例演示了如何配置VACM,使VACM组“来宾”的成员能够有限地访问脚本MIB。下面定义的MIB视图为“来宾”组的成员提供了一个沙箱,他们可以在其中安装和启动自己的脚本,但不能访问脚本MIB实现维护的任何其他脚本。

vacmAccessReadView."guest"."".usm.authNoPriv = "guestReadView" vacmAccessWriteView."guest"."".usm.authNoPriv = "guestWriteView"

vacmAccessReadView。“来宾”。.usm.authNoPriv=“guestReadView”vacmAccessWriteView。“来宾”。.usm.authNoPriv=“guestWriteView”

The guestReadView grants read access to the smLangTable, the smExtsnTable and to all the table entries owned by "guest":

guestReadView授予对smLangTable、smExtsnTable和“来宾”拥有的所有表项的读取权限:

      guestReadView:
          smLangTable                       (included)
          smExtsnTable                      (included)
          smScriptObjects.*.*.*."guest"     (included)
          smRunObjects.*.*.*."guest"        (included)
        
      guestReadView:
          smLangTable                       (included)
          smExtsnTable                      (included)
          smScriptObjects.*.*.*."guest"     (included)
          smRunObjects.*.*.*."guest"        (included)
        

The guestWriteView grants write access to all the table entries owned by "guest":

guestWriteView授予对“guest”拥有的所有表项的写访问权:

      guestWriteView:
          smScriptObjects.*.*.*."guest"     (included)
          smRunObjects.*.*.*."guest"        (included)
        
      guestWriteView:
          smScriptObjects.*.*.*."guest"     (included)
          smRunObjects.*.*.*."guest"        (included)
        
8.2. Sharing scripts
8.2. 共享脚本

This example demonstrates how VACM can be used to share a repository of scripts between the members of the "senior" and the members of the "junior" VACM group:

此示例演示如何使用VACM在“高级”和“初级”VACM组的成员之间共享脚本存储库:

vacmAccessReadView."junior"."".usm.authNoPriv = "juniorReadView" vacmAccessWriteView."junior"."".usm.authNoPriv = "juniorWriteView"

vacmAccessReadView。“junior”。.usm.authNoPriv=“juniorReadView”vacmAccessWriteView。“junior”。.usm.authNoPriv=“juniorWriteView”

      juniorReadView:
          smLangTable                       (included)
          smExtsnTable                      (included)
          smScriptObjects.*.*.*."junior"    (included)
          smRunObjects.*.*.*."junior"       (included)
          smScriptObjects.*.*.*."utils"     (included)
        
      juniorReadView:
          smLangTable                       (included)
          smExtsnTable                      (included)
          smScriptObjects.*.*.*."junior"    (included)
          smRunObjects.*.*.*."junior"       (included)
          smScriptObjects.*.*.*."utils"     (included)
        
      juniorWriteView:
          smScriptObjects.*.*.*."junior"    (included)
          smRunObjects.*.*.*."junior"       (included)
        
      juniorWriteView:
          smScriptObjects.*.*.*."junior"    (included)
          smRunObjects.*.*.*."junior"       (included)
        

The definitions above allow the members of the "junior" VACM group to start the scripts owned by "utils" in addition to the script the members of the "junior" VACM group installed themself. This is accomplished by giving the members of "junior" read access to scripts in "utils". This allows members of "junior" to create entries in the smLauchTable which refer to scripts in "utils", and to launch those scripts using these entries in the smLaunchTable.

上述定义允许“junior”VACM组的成员启动“utils”拥有的脚本,以及“junior”VACM组的成员自行安装的脚本。这是通过向“junior”成员提供对“utils”中脚本的读取权限来实现的。这允许“junior”的成员在smLauchTable中创建引用“utils”中脚本的条目,并使用smLaunchTable中的这些条目启动这些脚本。

vacmAccessReadView."senior"."".usm.authNoPriv = "seniorReadView" vacmAccessWriteView."senior"."".usm.authNoPriv = "seniorWriteView"

vacmAccessReadView。“高级”。.usm.authNoPriv=“seniorReadView”vacmAccessWriteView。“高级”。.usm.authNoPriv=“seniorWriteView”

      seniorReadView:
          smLangTable                       (included)
          smExtsnTable                      (included)
          smScriptObjects.*.*.*."senior"    (included)
          smRunObjects.*.*.*."senior"       (included)
          smScriptObjects.*.*.*."utils"     (included)
        
      seniorReadView:
          smLangTable                       (included)
          smExtsnTable                      (included)
          smScriptObjects.*.*.*."senior"    (included)
          smRunObjects.*.*.*."senior"       (included)
          smScriptObjects.*.*.*."utils"     (included)
        
      seniorWriteView:
          smScriptObjects.*.*.*."senior"    (included)
          smRunObjects.*.*.*."senior"       (included)
          smScriptObjects.*.*.*."utils"     (included)
        
      seniorWriteView:
          smScriptObjects.*.*.*."senior"    (included)
          smRunObjects.*.*.*."senior"       (included)
          smScriptObjects.*.*.*."utils"     (included)
        

The definitions for the members of the "senior" VACM group allow to start the scripts owned by "utils" in addition to the script the members of the "senior" VACM group installed themself. The third write access rule in the seniorWriteView also grants the permission to install scripts owned by "utils". The members of the "senior" VACM group therefore have the permissions to install and modify scripts that can be called by the members of the "junior" VACM group.

“高级”VACM组成员的定义允许启动“UTIL”拥有的脚本,以及“高级”VACM组成员自行安装的脚本。seniorWriteView中的第三条写访问规则还授予安装“utils”拥有的脚本的权限。因此,“高级”VACM组的成员有权安装和修改“初级”VACM组的成员可以调用的脚本。

8.3. Emergency scripts
8.3. 应急脚本

This example demonstrates how VACM can be used to allow the members of the "junior" VACM group to launch scripts that are executed with the permissions associated with the "emergency" owner. This works by adding the following rules to the juniorReadView and the juniorWriteView:

此示例演示如何使用VACM来允许“初级”VACM组的成员启动脚本,这些脚本使用与“紧急”所有者关联的权限执行。通过将以下规则添加到juniorReadView和juniorWriteView,可以实现此目的:

      juniorReadView:
          smScriptObjects.*.*.*."emergency" (included)
          smRunObjects.*.*.*."emergency"    (included)
        
      juniorReadView:
          smScriptObjects.*.*.*."emergency" (included)
          smRunObjects.*.*.*."emergency"    (included)
        

juniorWriteView smLaunchStart."emergency" (included) smLaunchArgument."emergency" (included)

JUnitorWriteView smLaunchStart.“紧急”(包括)smLaunchArgument.“紧急”(包括)

The rules added to the juniorReadView grant read access to the scripts, the launch buttons and the results owned by "emergency". The rules added to the juniorWriteView grant write permissions to the smLaunchStart and smLaunchArgument variables ownded by "emergency". Members of the "junior" VACM group can therefore start scripts that will execute under the owner "emergency".

添加到juniorReadView的规则授予对脚本、启动按钮和“紧急”所拥有的结果的读取权限。添加到JUnitorWriteView的规则向“emergency”所拥有的smLaunchStart和smLaunchArgument变量授予写入权限。因此,“初级”VACM组的成员可以启动将在所有者“紧急”状态下执行的脚本。

      seniorReadView:
          smScriptObjects.*.*.*."emergency" (included)
          smRunObjects.*.*.*."emergency"    (included)
        
      seniorReadView:
          smScriptObjects.*.*.*."emergency" (included)
          smRunObjects.*.*.*."emergency"    (included)
        
      seniorWriteView:
          smScriptObjects.*.*.*."emergency" (included)
          smRunObjects.*.*.*."emergency"    (included)
        
      seniorWriteView:
          smScriptObjects.*.*.*."emergency" (included)
          smRunObjects.*.*.*."emergency"    (included)
        

The rules added to the seniorReadView and the seniorWriteView will give the members of the "senior" VACM group the rights to install emergency scripts and to configure appropriate launch buttons.

添加到seniorReadView和seniorWriteView的规则将授予“高级”VACM组成员安装紧急脚本和配置适当启动按钮的权限。

9. IANA Considerations
9. IANA考虑

The Internet Assigned Numbers Authority (IANA) is responsible for maintaining a MIB module which provides OID registrations for well-known languages. The IANA language registry is intented to reduce interoperability problems by providing a single list of well-known languages. However, it is of course still possible to register languages in private OID spaces. Registering languages in private spaces is especially attractive if a language is used for experimentation or if a language is only used in environments where the distribution of MIB modules with the language registration does not cause any maintenance problems.

互联网分配号码管理局(IANA)负责维护MIB模块,该模块为知名语言提供OID注册。IANA语言注册中心旨在通过提供一个已知语言列表来减少互操作性问题。然而,在私有OID空间中注册语言当然是可能的。如果一种语言用于实验,或者一种语言仅在使用语言注册的MIB模块分发不会导致任何维护问题的环境中使用,则在私人空间中注册语言尤其有吸引力。

Any additions or changes to the list of languages registered via IANA require Designated Expert Review as defined in the IANA guidelines [20]. The Designated Expert will be selected by the IESG Area Director for the IETF Operations and Management Area.

对通过IANA注册的语言列表的任何添加或更改都需要IANA指南[20]中定义的指定专家审查。IESG区域总监将为IETF运营和管理区域选择指定专家。

10. Security Considerations
10. 安全考虑

This MIB provides the ability to distribute applications written in an arbitrary language to remote systems in a network. The security features of the languages available in a particular implementation should be taken into consideration when deploying an implementation of this MIB.

此MIB提供将以任意语言编写的应用程序分发到网络中的远程系统的能力。部署此MIB的实现时,应考虑特定实现中可用语言的安全特性。

To facilitate the provisioning of access control by a security administrator using the View-Based Access Control Model (VACM) defined in RFC 2275 [15] for tables in which multiple users may need to independently create or modify entries, the initial index is used as an "owner index". Such an initial index has a syntax of SnmpAdminString, and can thus be trivially mapped to a securityName or groupName as defined in VACM, in accordance with a security policy.

为了方便安全管理员使用RFC 2275[15]中定义的基于视图的访问控制模型(VACM)为多个用户可能需要独立创建或修改条目的表提供访问控制,初始索引用作“所有者索引”。这样的初始索引具有snmpadmin语法,因此可以根据安全策略简单地映射到VACM中定义的securityName或groupName。

All entries in related tables belonging to a particular user will have the same value for this initial index. For a given user's entries in a particular table, the object identifiers for the information in these entries will have the same subidentifiers (except for the "column" subidentifier) up to the end of the encoded owner index. To configure VACM to permit access to this portion of the table, one would create vacmViewTreeFamilyTable entries with the value of vacmViewTreeFamilySubtree including the owner index portion, and vacmViewTreeFamilyMask "wildcarding" the column subidentifier. More elaborate configurations are possible.

相关表中属于特定用户的所有条目对此初始索引具有相同的值。对于特定表中的给定用户项,这些项中信息的对象标识符在编码的所有者索引结束之前将具有相同的子标识符(除了“列”子标识符)。要将VACM配置为允许访问表的这一部分,可以创建vacmViewTreeFamilyTable条目,其值为vacmViewTreeFamilySubtree,包括所有者索引部分,以及VACMVIEWTREEFAMILYMAK“通配符”列子标识符。更复杂的配置是可能的。

The VACM access control mechanism described above provides control over SNMP access to Script MIB objects. There are a number of other access control issues that are outside of the scope of this MIB. For example, access control on URLs, especially those that use the file scheme, must be realized by the underlying operating system. A mapping of the owner index value to a local operating system security user identity should be used by an implementation of this MIB to control access to operating system resources when resolving URLs or executing scripts.

上述VACM访问控制机制提供对脚本MIB对象的SNMP访问的控制。还有许多其他访问控制问题不在此MIB范围内。例如,对URL的访问控制,特别是那些使用文件方案的URL,必须由底层操作系统实现。此MIB的实现应使用所有者索引值到本地操作系统安全用户标识的映射来控制解析URL或执行脚本时对操作系统资源的访问。

11. Intellectual Property
11. 知识产权

The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何努力来确定任何此类权利。有关IETF在标准跟踪和标准相关文件中权利的程序信息,请参见BCP-11。可从IETF秘书处获得可供发布的权利声明副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果。

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或其他可能涉及实施本标准所需技术的专有权利。请将信息发送给IETF执行董事。

12. Acknowledgments
12. 致谢

This document was produced by the IETF Distributed Management (DISMAN) working group.

本文件由IETF分布式管理(DISMAN)工作组编制。

13. References
13. 工具书类

[1] Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2271, January 1998.

[1] Harrington,D.,Presohn,R.和B.Wijnen,“描述SNMP管理框架的体系结构”,RFC 2271,1998年1月。

[2] Rose, M. and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", STD 16, RFC 1155, May 1990.

[2] Rose,M.和K.McCloghrie,“基于TCP/IP的互联网管理信息的结构和识别”,STD 16,RFC 1155,1990年5月。

[3] Rose, M. and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC 1212, March 1991.

[3] Rose,M.和K.McCloghrie,“简明MIB定义”,STD 16,RFC 1212,1991年3月。

[4] Rose, M., "A Convention for Defining Traps for use with the SNMP", RFC 1215, March 1991.

[4] Rose,M.“定义用于SNMP的陷阱的约定”,RFC1215,1991年3月。

[5] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

[5] McCloghrie,K.,Perkins,D.,Schoenwaeld,J.,Case,J.,Rose,M.和S.Waldbusser,“管理信息的结构版本2(SMIv2)”,STD 58,RFC 2578,1999年4月。

[6] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.

[6] McCloghrie,K.,Perkins,D.,Schoenwaeld,J.,Case,J.,Rose,M.和S.Waldbusser,“SMIv2的文本约定”,STD 58,RFC 2579,1999年4月。

[7] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.

[7] McCloghrie,K.,Perkins,D.,Schoenwaeld,J.,Case,J.,Rose,M.和S.Waldbusser,“SMIv2的一致性声明”,STD 58,RFC 25801999年4月。

[8] Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, May 1990.

[8] Case,J.,Fedor,M.,Schoffstall,M.和J.Davin,“简单网络管理协议”,STD 15,RFC 1157,1990年5月。

[9] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996.

[9] Case,J.,McCloghrie,K.,Rose,M.和S.Waldbusser,“基于社区的SNMPv2简介”,RFC 19011996年1月。

[10] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996.

[10] Case,J.,McCloghrie,K.,Rose,M.和S.Waldbusser,“简单网络管理协议(SNMPv2)版本2的传输映射”,RFC 1906,1996年1月。

[11] Case, J., Harrington D., Presuhn R. and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)", RFC 2272, January 1998.

[11] Case,J.,Harrington D.,Presuhn R.和B.Wijnen,“简单网络管理协议(SNMP)的消息处理和调度”,RFC 22721998年1月。

[12] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2274, January 1998.

[12] Blumenthal,U.和B.Wijnen,“简单网络管理协议(SNMPv3)第3版的基于用户的安全模型(USM)”,RFC 22741998年1月。

[13] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996.

[13] Case,J.,McCloghrie,K.,Rose,M.和S.Waldbusser,“简单网络管理协议(SNMPv2)版本2的协议操作”,RFC 1905,1996年1月。

[14] Levi, D., Meyer, P. and B. Stewart, "SNMPv3 Applications", RFC 2273, January 1998.

[14] Levi,D.,Meyer,P.和B.Stewart,“SNMPv3应用”,RFC 22731998年1月。

[15] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", RFC 2275, January 1998.

[15] Wijnen,B.,Presuhn,R.和K.McCloghrie,“用于简单网络管理协议(SNMP)的基于视图的访问控制模型(VACM)”,RFC 22751998年1月。

[16] Hovey, R. and S. Bradner, "The Organizations Involved in the IETF Standards Process", BCP 11, RFC 2028, October 1996.

[16] Hovey,R.和S.Bradner,“参与IETF标准过程的组织”,BCP 11,RFC 2028,1996年10月。

[17] Berners-Lee, T., Fielding, R. and L. Masinter, " Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396, August 1998.

[17] Berners Lee,T.,Fielding,R.和L.Masinter,“统一资源标识符(URI):通用语法”,RFC 2396,1998年8月。

[18] Postel, J. and J. Reynolds, "File Transfer Protocol", STD 9, RFC 959, October 1985.

[18] Postel,J.和J.Reynolds,“文件传输协议”,标准9,RFC 959,1985年10月。

[19] Fielding, R., Gettys, J., Mogul, J., Frystyk, H. and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2068, January 1997.

[19] 菲尔丁,R.,盖蒂斯,J.,莫卧儿,J.,弗莱斯蒂克,H.和T.伯纳斯李,“超文本传输协议——HTTP/1.1”,RFC 2068,1997年1月。

[20] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.

[20] Narten,T.和H.Alvestrand,“在RFCs中编写IANA注意事项部分的指南”,BCP 26,RFC 2434,1998年10月。

[21] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[21] Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

14. Editors' Addresses
14. 编辑地址

David B. Levi Nortel Networks 4401 Great America Parkway Santa Clara, CA 95052-8185 U.S.A.

David B.Levi Nortel Networks 4401美国加利福尼亚州圣克拉拉大美洲大道95052-8185号。

   Phone: +1 423 686 0432
   EMail: dlevi@nortelnetworks.com
        
   Phone: +1 423 686 0432
   EMail: dlevi@nortelnetworks.com
        

Juergen Schoenwaelder TU Braunschweig Bueltenweg 74/75 38106 Braunschweig Germany

德国布埃尔滕韦格布伦瑞克大学74/75 38106

   Phone: +49 531 391-3683
   EMail: schoenw@ibr.cs.tu-bs.de
        
   Phone: +49 531 391-3683
   EMail: schoenw@ibr.cs.tu-bs.de
        
16. Full Copyright Statement
16. 完整版权声明

Copyright (C) The Internet Society (1999). All Rights Reserved.

版权所有(C)互联网协会(1999年)。版权所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。