本Blog所有内容不得随意转载,版权属于作者所有。如需转载请与作者联系( [email protected] )。
未经许可的转载,本人保留一切法律权益。
一直以来,发现有某些人完全不尊重我的劳动成果,随意转载,提醒一下那些人小心哪天惹上官司。
there are two types of tasks: the operational task and the configurational task.
wsadmin 支持两种脚本语言: jacl(Java Command Language , deprecated) & Jython 。 WAS6.1 提供了工具转换 Jacl 脚本为 Jython ,工具名为: Jacl2Jython 。这个工具能转换 95-98% 的内容,但是开发人员必须手动的检查所有的转换。
wsadmin.bat(or wsadmin.sh) 在每个应用服务器的 profile , DM ,被管理的节点实例的 bin 目录下,所以当你启动 wsadmin 的时候,必须注意选择正确的位置。
要想得到 wsadmin 语法相关的帮助,可以输入 wsadmin.bat -? ,以下是帮助的详细内容:
----------------------------------------------------------------------
WASX7001I: wsadmin 是用于 WebSphere 脚本编制的可执行文件。
语法:
wsadmin
[ -h(elp) ]
[ -?]
[ -c <command> ]
[ -p <properties_file_name>]
[ -profile <profile_script_name>]
[ -f <script_file_name>]
[ -javaoption java_option]
[ -lang language]
[ -wsadmin_classpath classpath]
[ -profileName profile]
[ -conntype
SOAP
[-host host_name]
[-port port_number]
[-user userid]
[-password password] |
RMI
[-host host_name]
[-port port_number]
[-user userid]
[-password password] |
NONE
]
[ -jobid <jobid_string>]
[ -tracefile <trace_file>]
[ -appendtrace <true/false>]
[ script parameters ]
其中 “ command ”是要传递给脚本处理程序的命令;
“ properties_file_name ”是要使用的 java 属性文件;
“ profile_script_name ”是在主命令或文件前要执行的脚本文件;
“ script_file_name ”是要传递给脚本处理程序的命令;
“ java_option ”是要传递给 Java 程序的 java 标准或非标准选项;
“ language ”是要用于解释脚本的语言;受支持的值为“ jacl ”和“ jython ”。
“ classpath ”是附加到内置路径中的类路径;
“ -conntype ”指定要使用的连接类型;
缺省参数是“ SOAP ”
conntype 为“ NONE ”意味着没有建立服务器连接
且某些操作会以本地方式执行;
“ host_name ”是用于 SOAP 或 RMI 连接的端口;
缺省值是本地主机;
“ port_number ”是用于 SOAP 或 RMI 连接的端口;
“ userid ”是服务器以安全方式运行时
所需的用户标识;
“ password ”是服务器以安全方式运行时
所需的密码;
“ script parameters ”是命令行上的任何其他内容。它们
在 argv 变量中传递给脚本;参数的数目
可在 argc 变量中获得。
“ jobid_string ”是要用来审计 wsadmin 的每个调用的
作业标识字符串;
“ trace_file ”是 wsadmin 跟踪输出定向至的
日志文件名和位置;
如果未指定命令或脚本,将创建一个解释器 shell
以供交互使用。要离开交互式脚本编制会话,
使用“ quit ”或“ exit ”命令。
可以在单个命令行上指定几个命令、属性文件和
概要文件。它们是按照其指定的顺序处理和执行的。
----------------------------------------------------------------------
配置 wsadmin 有三种方式:
1 ,使用 Profile 或系统默认的属性文件:
<profile_home>/properties/wsadmin.properties
or
<was_home>/properties/wsadmin.properties
2 ,使用自定义的环境变量去替换原来的配置文件的位置,环境变量为: WSADMIN_PROPERTIES, 可以 Copy 默认的属性文件到你指定的位置,然后修改它。
3 ,在执行 wsadmin 命令时使用 -p 参数来设置属性文件的位置
Wsadmin 属性列表
Property |
Value |
com. ibm.ws.scr ipting.con nectionTyp e |
SOAP, RMI or NONE |
com. ibm.script ing.port |
TCPport of targetsystem |
com. ibm.script ing.host |
Host name oftarget system |
com. ibm.ws.scr ipting.def aultLang |
Jython or Jacl |
com. ibm.ws.scr ipting.ech oparams |
Determineswhether parametersor argumentsare outputto STDOUTorto the wsadmintrace file |
com. ibm.ws.scr ipting.tra ceFile |
File for trace information |
com. ibm.ws.scr ipting.val i dationOutput |
Location ofvalidation reports |
com. ibm.ws.scr ipting.tra ceString |
= com.ibm.*=all=enabled |
com. ibm.ws.scr ipting.app endTrace |
Appends tothe end ofthe existing log file |
com. ibm.ws.scr ipting.pro files |
List ofprofiles to be run before running user commands, scripts,oran interactive shell |
com. ibm.ws.scr ipting.emi tWarningFo rC usto mSecurityP olicy |
ControlswhethermessageWASX7207W is emitted when custom permissions are found |
com. ibm.ws.scr ipting.tem pdir |
Store temporary fileswhen installing applications |
com. ibm.ws.scr ipting.val idationLev el |
Levelof validation to use when configurationchangesaremadefromthe scripting interface |
com. ibm.ws.scr ipting.cro ssDocument Va lida tionEnable d |
Determineswhether thevalidation mechanismexamines other documents whenchangesaremadetoonedocument |
com. ibm.ws.scr ipting.cla sspath |
List ofpathsto search for classes and resources |
Wsadmin 的调用有三种不同的方式:
使用单行命令方式 (-c)
wsadmin –c AdminControl.getNode()
使用交互方式
wsadmin
运行脚本文件,使用 -f 参数
wsadmin –f myScript.py
使用 -profile 参数,表示要执行的一些预先执行的脚本。
使用 -p 可以定义属性文件的位置。
Wsadmin 管理的对象包括:
AdminControl :用于操作控制。通过 MBean 来进行通讯,包含查询在在的运行中的对象和其属性,并在这些对象上调用操作。另外,支持关于连接服务的查询,客户端跟踪的方便命令,重新连接至服务器,启动和停止服务器。
AdminConfig :管理存储在仓库中的配置信息。通过 WAS 的配置服务组件来查询和更改配置。可以使用它来查询存在的配置对象,创建配置对象,修改存在的对象和移除配置对象。在分布式的环境中,此命令仅仅能用于连接到 DM ,不能连接到 Node Agent 或管理某一 Application Server ,因为这些服务器的进程配置仅仅是保存在 DM 上的一个 Copy( 副本 ) 。
AdminApp :能更新应用的元数据,映射虚拟主机到 Web 模块,映射已安装的模块至服务器。对一个应用程序进行更改,比如为应用程序指定一个共享库,设置会话管理的配置属性。
AdminTask :用于访问面向任务的管理命令。这些命令用于访问配置命令和运行时对象管理命令。当脚本客户端运行时,可以自动发现管理命令。可用的管理命令以用于安装 WAS 的版本。
Help :
print Help.AdminControl()
运行环境: AdminConfig , AdminTask , AdminApp 对象都是处理配置功能。可以在连接或不连接至服务器的环境下运行,但 AdminControl 需要连接到服务器才能运行,因为他是通过调用正在运行的 JMX MBean 来执行的。
AdminControl.queryNames(*)
查询当前运行在 MBean Server 上的所有 MBean 的对象名。
如果客户端隶属于一个单独的 Server ,这个列表中仅包含运行在这个 Server 上的 MBean 。
如果客户端隶属于一个 Node Agent ,这个列表包含运行在此节点上所有 Server 的 MBean 。
如果客户端隶属于一个 DM ,这个列表中则包含运行在这个 DM 上的所有 Node Agent ,所有 Server 的 MBean 。
一个列出所有 MBean 对象的脚本:
会得到如下形式的内容:
你可以通过关键字来缩小查找范围,如:
wsadmin>AdminControl.queryNames('WebSphere:type=Server,node=starNode01,*')
另外,也可以通过 completeObjectName 命令来获得其完整的对象名。如:
wsadmin>AdminControl. completeObjectName ('WebSphere:type=Server,node=starNode01,*')
但这个命令如果遇到多个匹配项的时候会提示并只会返回第一项。
可以通过如下方法得到一个对象的属性:
wsadmin>serv=AdminControl. completeObjectName ('WebSphere:type=Server,*')
wsadmin>print Help.attributes(serv)
得到如下结果:
每一个属性都有可读写性,RO代表只读,RW代表可读可写。
我们可以通过 AdminControl 的 getAttribute 和 setAttribute 方法来对这些属性进行操作,如:
AdminControl.getAttribute(serv,'pid')
同时, operations 命令也可以为我们列出某一 MBean 支持的操作,如下:
print Help.operations(serv)
MBean 支持的操作可以用 invoke 命令来进行调用,如:
print AdminControl.invoke(serv,'getVersionsForAllProducts')
另外,有一个图形化的工具 MBI ( MBeanInspector )可以查看和调用 MBean 的这些属性。目前 IBM 的网站上提供的版本是为 WAS5.x 的版本开发的,但是在 WAS6.x 中也可以使用。 MBI 并不是与 profile 相关的,可以使用 WAS 安装目录 profile 下的 sas.proerties 文件替换到 WAS 根目录下面的 sas.properties 文件,以此来允许安全的连接。其网址为:
http://www.alphaworks.ibm.com/tech/mbeaninspector
AdminConfig and AdminTask Objects are used to managed configuration information.
AdminConfig 通过 WAS 的配置服务查询和更新配置。所有通过 AdminConfig 的命令的 modifications 都被存储到临时的工作空间,直到调用 save 命令。
注意:使用 AdminConfig 配置 WAS ,需要对 WAS 的 XML 配置文档和配置目录内容有很好的理解。
Types 命令
WAS 的配置在一组 XML 文档中由 types 和 attribute names 组成。在 wsadmin 中,每一个元素类型被作为一个具有唯一配置 ID 的配置对象管理。所有可用的配置对象都可以用 types 命令列出。命令为: AdminConfig.types()
同时,也可以用 AdminConfig 的 attributes 命令来列出某一对象的属性,如:
wsadmin>print AdminConfig.attributes('WorkManagerInfo')
一个对象可以包含另一个对象,因此,父子关系在配置中也存在。可以通过 parents 命令来获得其父对象,如: wsadmin>AdminConfig.parents('ApplicationServer')
getid 命令返回一个配置对象的配置名。配置对象被命名为对象及其配置 ID 的组合。
list 命令返回给定类型的一个对象列表。例如,可以将 DataSource 对象列出。如:
wsadmin>AdminConfig.list('DataSource')
defaults 命令显示一个对象的属性的默认值列表。如:
wsadmin>print AdminConfig.defaults('DynamicCache')
配置对象的 input 和 output 属性
AdminConfig 的 attributes 命令是 wsadmin 在线帮助的一部分。
使用 AdminConfig 和 AdminControl 需要一些 JMX 框架和 WebSphere XML 配置结构的一些知识。为了执行一系列的脚本管理任务,而又没有底层架构的知识, AdminTask 对象将给你一些引导。
AdminTask 对象的命令更像是一个向导,提供一步一步的向导去执行管理操作。同时,也可以交互式的调用,会提示给用户一些需要的参数,或者是像批次调用一样,所有的输入作为调用的一部分。
AdminTask 对象提供很多命令来执行简单或复杂的管理任务,为了某一特定的任务找到一个命令,这些命令被按照逻辑进行了分组。
用如下命令可以列出所有的分组:
wsadmin>print AdminTask.help('-commandGroups')
会得出所有的分组。然后,可以对其中的某一组命令进行查询,如:
wsadmin>print AdminTask.help('AdminReports')
可得出如下结果:
此时,可进一步查询某一命令的用法,如下:
wsadmin>print AdminTask.help('reportConfiguredPorts')
调用其中某一命令的方法为:
wsadmin>print AdminTask.reportConfiguredPorts()
此命令可得到如下结果:
根据前面所说,我们可以使用交互式的方式来调用,如下:
wsadmin>print AdminTask.reportConfiguredPorts('-interactive')
会出现如下提示:
此时,我们输入节点名,如:starNode01
再输入F或直接回车,表示参数输入完成,即可得到starNode01所有的端口报表,由于我的实验环境中只有一个节点,所以结果跟上面的命令相同。