使用拓扑导入和导出实用程序,可以向使用 XML 标记的 ASCII 文件导入或从中导出拓扑数据库。使用导入实用程序,可以从文件读取数据并更新拓扑数据库和拓扑代理对象的数据。导出实用程序的功能与此相反。
本章包括以下主题:
定期将拓扑数据转储为备份。
在不同的拓扑服务器间传输数据。
当拓扑数据损坏时从备份恢复数据 。
将数据转换为另一种文件格式,并将其加载到第三方管理平台中的另一个管理系统上。
可以通过 Sun Management Center 控制台主窗口或 CLI 访问这些功能。必须指定要导入或导出的完整拓扑数据和域。此工具支持多种数据处理方法,包括覆盖和附加。
导入和导出实用程序支持域级操作。导出时,可以指定一个域或整个拓扑分层结构。
可通过导入实用程序恢复备份数据。
可将任意域中的对象导入到一个域中。
可通过导出实用程序备份现有数据。
可以在增量模式下导出数据。
仅当当前拓扑分层结构包含数据时,才可以从主控制台窗口导出拓扑信息。
拓扑导入和导出实用程序通过客户机 API 与 Sun Management Center 服务器通信。导入和导出 ASCII 文件驻留在控制台系统中,并通过客户机 API 为服务器提供信息。服务器随后再将信息发送到与拓扑数据库交互操作的拓扑代理。下图显示了支持这些实用程序的软件结构。
导出有两种模式:附加和覆盖。在覆盖模式下,转储的数据将替换现有文件的内容。在附加模式下,转储的数据将添加到文件末尾。
导入有两种模式,用于处理转储文件中包含的域信息。第一种模式忽略域信息,所有对象都在指定域或主域中创建。第二种模式同时导入域信息和所有其它对象。在此情况下,可创建新域。所有非域对象都在相应的域中创建。
您可以从主控制台窗口或 CLI 启动拓扑导出实用程序,如导入和导出 CLI 界面所述。
从主控制台窗口的“工具”菜单中选择“导出拓扑”。
将显示“导出拓扑”对话框。
从“导出域名”列表中选择域。
该列表显示了由拓扑代理管理的所有域。可以选择一个域进行导出。要导出多个域,可以重复前面的操作以附加模式导出另一个域。
键入要导出的文件名称,或使用“浏览”按钮选择现有文件。
要导出文件,您必须具有写入或创建文件的权限。否则,将显示一条错误信息,操作将退出。
确定是向现有文件中附加数据还是覆盖其中的数据。
附加模式将数据附加到文件的末尾,覆盖模式将覆盖文件。在导出中使用附加模式时,系统将对文件执行更严格的检查。现有文件必须为有效的导入/导出数据文件。有效的数据文件是格式正确的 XML 文件,其中包含正确的导入和导出文件文档类型说明 (DTD)。
从“有效天数”菜单中选择数据有效的天数。
您可以选择以下值:
7 天
15 天
30 天
90 天
缺省情况下,拓扑导出数据的有效期没有限制。
(可选的)提供关于该导出功能的注释。
单击“确定”,将数据导出到指定的文件并关闭“导出拓扑”窗口。
您可以从主控制台窗口或 CLI 启动拓扑导入实用程序,如导入和导出 CLI 界面所述。
从主控制台的“工具”菜单中选择“导入拓扑”。
将显示“导入拓扑”窗口。
键入包含要导入的拓扑数据的文件的完整路径名。
也可以使用“浏览”按钮查找文件。
确定是导入拓扑中的所有数据还是仅导入组和实体。
遵循 – 导入组和域信息。组和实体是在文件包含的域中创建的。
忽略 – 忽略域信息且只向用户指定的目标域导入组和实体。
从“名称”列表中选择要导入数据的域。
缺省情况下,所有数据都被导入主域。
只有在上一步中选择了“忽略”选项时,才可以在拓扑分层结构中指定导入数据的位置。
单击“确定”导入数据,并关闭“导入拓扑”窗口。
导入实用程序将更新拓扑数据库。因此,在导入数据前会出现一个警告对话框以确认操作。
警告对话框还将提供输入文件的生成时间和创建者信息,以帮助用户确保使用了正确的文件。
要执行的几项附加检查包括:
导出数据文件包括有关文件有效时间的信息。如果试图导入已过期的文件,将收到错误信息,导入操作将停止。
导入实用程序检查文件是否存在以及此文件是否可读取。如果这些检查失败,将收到错误信息,操作将停止。
要使导入实用程序能够对导入文件进行分析,文件格式必须正确。如果文件格式不正确,导入实用程序将生成错误信息。
如果实体存在于当前的拓扑分层结构中,则将出现一个警告对话框,询问是否应替换该实体。选择以下选项之一:
使用新值替换冲突数据。
替换所有冲突数据。当再次出现数据冲突时,将不显示此对话框,且旧值将被替换。
不更新冲突数据。
当再次出现数据冲突时,将不显示此对话框。所有冲突都被忽略并保持不变。
停止导入操作。
可以使用下列命令从 CLI 界面调用导入和导出实用程序:
# /opt/SUNWsymon/sbin/es-cli > login Host: servername Login: username Password: password Login successful! > export parameter > import parameter |
有关正确命令参数的信息,请参见Import 命令参数和Export 命令参数。
import 命令用于从文件中检索先前导出的指定域的拓扑数据。
import 命令使用下列参数:
domain 参数的值是要导入其拓扑的域的名称。如果未指定域,则导入所有域。
domainmode 参数的值确定是否从导入的拓扑中创建新域。如果值为 follow,则系统将组和域拓扑导入到当前拓扑中并创建新域。如果值为 ignore,则系统仅将组和实体导入到指定的目标域。
filename 参数的值是从中检索拓扑信息的文件的名称。
nodemode 参数的值确定导入的拓扑是否替换现有拓扑。如果 nodemode 参数的值为 replace,则使用导入值替换冲突数据。如果 nodemode 的参数值为 ignore,则不更新冲突数据。
对于一个参数,在命令行中指定的参数值将覆盖参数文件中的参数值。例如,如果在命令行中指定了 mode=ignore,而在参数文件中指定了 mode=follow,则将会使用 mode=ignore。
在下面的示例中,从 /home/examples/snapshot 文件中导入先前导出的拓扑。根据需要创建新域,并使用导入的拓扑替换冲突数据。
> import filename=/home/examples/snapshot domainmode=follow \ nodemode=replace |
导入实用程序将在操作完成前或出现数据冲突时提示用户回答以下问题:
要确认的警告信息 – 下列信息要求您确认导入操作。
The data being used is exported by <user name> on <mm/dd/yyyy>. The import operation will modify your topology database, are you sure you want to do this? [Yes/No] |
输入 y(表示“是”),或输入 n(表示“否”)。
本节介绍执行 import 命令可能显示的结果信息。
import: Results 1/1
State=Success
Message=The topology data is successfully imported.
原因:成功。
描述:操作完全成功。
文件名: No such file.
原因:文件不存在。
描述:指定的文件不存在。命令行可使用两个文件:提供导入数据源的数据文件和提供参数列表的参数文件。
import: Cannot open filename.
原因:许可权被拒绝。
描述:无法打开文件进行读取。
import: File format is not supported.
原因:格式错误。
描述:源文件不是一个有效的用于导出数据的数据库文件。
import: File out-of-date (xx days).
原因:数据已过期。
描述:您使用的数据已过期。
import: 验证失败。
原因:验证失败。
描述:当前用户没有在拓扑分层结构中创建对象的权限。
import: Wrong parameter file.
原因:参数文件错误。
描述:参数文件应是名称 = 值对的列表。如果格式不正确,应用程序将产生错误信息并停止。
import: illegal parameter - <para>.
Use -h option to get usage.
原因:非法参数。
描述:向导入操作传递了非法的参数。使用 import -h 查看可用选项和可用参数。
export 命令将一个域或所有域的拓扑数据保存到文件中。
export 命令使用下列参数:
comment 参数的值是要包括在文件中的注释。
domain 参数的值是要导出其拓扑的域的名称。如果未指定域,将导出所有域。
filename 参数的值是要将拓扑信息导出到的文件的名称。
mode 参数的值确定如何将拓扑信息合并到文件中。如果值为 append,则将数据附加到文件内容中。如果值为 overwrite,则用新数据替换以前的文件内容。
validity 参数的值是数据有效的天数。下列值是 validity 参数的合法值:
Unlimited
7
15
30
90
在下面的示例中,Default Domain 被保存到名为 snapshot 的文件中。snapshot 的原始内容将被新数据覆盖。新数据的有效期被假定为无限长。注释指定了该数据用于系统测试组。
> export filename=/home/examples/snapshot \ domain="Default Domain" mode=overwrite validity=Unlimited \ comment="System Test Group" |
下表显示了执行 export 命令可能会显示的结果信息。
Export: Results 1/1
State=Success
Message=The topology data is successfully exported.
原因:成功。
描述:操作完全成功。
export: Cannot open file.
原因:文件不存在。
描述:参数文件不存在。
文件名: 许可权被拒绝。
原因:文件错误。
描述:无法创建或打开文件以写入数据。
export: File format not supported.
原因:格式错误。
描述:将导出数据附加到无效的导出数据文件时,将出现该错误。
export: The domain <domainname > does not exist
原因:对象错误。
描述:要导出的域不存在。
export: Wrong parameter file.
原因:参数文件错误。
描述:参数文件应该是包含名称 = 值对的列表。如果文件格式不正确,应用程序将通知您并停止操作。
export: The current user is different from the last one.
原因:用户冲突。
描述:当试图将数据覆盖或附加到其他人创建的现有数据文件中时,将出现该错误。不能修改或覆盖其他用户创建的导出文件。
export: Data is out-of-date.
原因:数据已过期。
描述:正在使用的导出文件已过期。此信息只在以附加模式导出数据时出现。
export: illegal parameter - <para>.
Please use -h option to get usage.
原因:非法参数。
描述:向导出操作传递了非法参数。
下表标识导入和导出实用程序处理的拓扑数据。
每个域、组和主机的相关记录信息。
域和组的相关修饰信息。修饰信息只包含版式和背景索引,而不包括背景内容。例如,背景信息只包含 GIF 文件名,不包括 GIF 文件。
关系信息说明拓扑分层结构、实体背景和版式。
导入/导出文件用于说明导入/导出数据。可以使用文本编辑器对其进行编辑。该文件包括拓扑分层结构中每个实体的相关信息。由于附加导出模式可以在文件中附加更多的对象信息,因此文件格式很容易扩展和分析。导出文件保存为 XML 格式。
文件分成四部分:
指示信息
DTD (文档类型说明)
标题信息
数据块
指示信息用于标识文件是 XML 格式的文件。该信息通常按如下方式显示:
<? XML version = 1.0 ?> |
DTD 信息定义了文档的结构。导出文件的 DTD 类似于下面的示例。
<!ELEMENT ENTITY (ENTITY* ADORNMENT*)> /* Entity element describes a entity. If it is a group, it may contain groups and adornment. */ <!ATTLIST ENTITY /* Entity attributes */ desc CDATA full_desc CDATA hostname CDATA ip CDATA netmask CDATA architecture CDATA family CDATA polling_type CDATA url CDATA x_coord CDATA y_coord CDATA topology_type CDATA event_dest CDATA trap_dest CDATA target_host CDATA target_ip CDATA read_info CDATA write_info CDATA> <!ELEMENT ADORNMENT> <!ATTLIST ADORNMENT x_coord CDATA y_coord CDATA type CDATA configuration CDATA> ]> |
头信息用于记录一般信息,例如:
用户
数据
版本
平台
产品
数据块包含拓扑分层结构和实体。
下面的图例说明了 My New 域的拓扑。
该示例显示了 My New 域的拓扑导出文件。
<?xml version="1.0" encoding="UTF-8"?> <DOCUMENT> <HEAD> <USER>jkang</USER> <DATE>1/7/1999</DATE> <VALIDITY>7 days</VALIDITY> <PRODUCT>Sun Management Center</PRODUCT> <VERSION>3.6</VERSION> <COMMENTS>This is an example.</COMMENTS> </HEAD> <DOMAIN name="my new"> <ENTITY arch="SunOS 5.8" config="" desc="wizard" entityId="e-1" family="sun4u-Sun-Ultra-2" fulldesc="wizard" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" type="" writeInfo="" xCoord="23" yCoord="39" /> <ENTITY arch="SunOS 5.8" config="" desc="atom" entityId="e-2" family="sun4u-Sun-Ultra-2" fulldesc="" hostname="u30-1" ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.113:161/sym//base/mibman/modules" type="" writeInfo="" xCoord="75" yCoord="39" /> <ENTITY arch="" config="" desc="campus" entityId="e-3" family="campus-view" fulldesc="" hostname="" ipAddr="" isPoll="true" isSoftGroupLink="false" netMask="" pollType="aview" readInfo="espublic" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:164/mod/topology+view-101" type="" writeInfo="" xCoord="27" yCoord="111"> <ENTITY arch="" config="" desc="building" entityId="e-1" family="building-view" fulldesc="" hostname="" ipAddr="" isPoll="true" isSoftGroupLink="false" netMask="" pollType="aview" readInfo="espublic" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:164/mod/topology+view-102" type="" writeInfo="" xCoord="" yCoord=""> <ENTITY arch="SunOS 5.8" config="" desc="Wizard" entityId="e-1" family="sun4u-Sun-Ultra-2" fulldesc="" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" type="" writeInfo="" xCoord="" yCoord="" /> <ENTITY arch="SunOS 5.8" config="" desc="aaa" entityId="e-2" family="sun4u-Sun-Ultra-2" fulldesc="" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" type="" writeInfo="" xCoord="" yCoord="" /> <ENTITY arch="SunOS 5.8" config="" desc="atom" entityId="e-3" family="sun4u-Sun-Ultra-2" fulldesc="" hostname="u30-1" ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" pollType="ahost" readInfo="" targetHost="" targetIp="" targetUrl="snmp://129.158.168.113:161/sym//base/mibman/modules" type="" writeInfo="" xCoord="" yCoord="" /> </ENTITY> </ENTITY> <ENTITY arch="" config="" desc="129.158.0.0" entityId="e-4" family="network-view" fulldesc="129.158.0.0" hostname="129.158.0.0" ipAddr="129.158.0.0 isPoll="true" isSoftGroupLink="false" netMask="255.255.255.0" pollType="aview" readInfo="espublic" targetHost="129.158.0.0" targetIp="129.158.0.0" targetUrl="snmp://129.158.168.63:164/mod/topology+view-103" type="" writeInfo="" xCoord="38" yCoord="181"> <ENTITY arch="" config="" desc="129.158.168.0" entityId="e-1" family="subnetwork-view" fulldesc="129.158.168.0" hostname="129.158.168.0" ipAddr="129.158.168.0" isPoll="true" isSoftGroupLink="false" netMask="255.255.255.0" pollType="aview" readInfo="espublic" targetHost="129.158.168.0" targetIp="129.158.168.0" targetUrl="snmp://129.158.168.63:164/mod/topology+view-104" type="" writeInfo="" xCoord="" yCoord=""> <ENTITY arch="SunOS 5.8" config="" desc="wizard" entityId="e-1" family="sun4u-Sun-Ultra-2" fulldesc="SUNW,Ultra-2" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" pollType="ahost" readInfo="public" targetHost="" targetIp="" targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" type="" writeInfo="" xCoord="" yCoord="" /> </ENTITY> </ENTITY> <ENTITY arch="" config="" desc="myworkstation" entityId="e-5" family="nonagent-sun4u-Sun-Ultra30" fulldesc="" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="" pollType="snmp" readInfo="public" targetHost="" targetIp="" targetUrl="snmp://wizard:1100/oid//1.3.6.1.2.1.1.7.0" type="" writeInfo="private" xCoord="52" yCoord="253" /> <ENTITY arch="SunOS 5.8" config="" desc="System Group" entityId="e-6" family="base-agent" fulldesc="MIB tree branch" hostname="wizard" ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" netMask="255.255.255.255" pollType="amod" readInfo="" targetHost="wizard" targetIp="129.158.168.63" targetUrl="snmp://129.158.168.63:1100/mod/mib2-simple/system" type="" writeInfo="" xCoord="52" yCoord="329" /> <ADORNMENT Config="bus" Id="adorn-7" Type="layout" XCoord="0" YCoord="0" /> </DOMAIN> </DOCUMENT>