wsadmin 脚本编制工具

wsadmin 工具运行脚本。 可以使用 wsadmin 工具来管理应用程序服务器以及配置、应用程序部署和服务器运行时操作。

重要信息: 从特定概要文件运行命令的所有用户都必须有权修改由使用同一概要文件的其他用户创建的文件。 否则,日志文件中会出现许可权拒绝错误。 为避免此问题,请考虑使用下列其中一个策略:
  • [AIX Solaris HP-UX Linux Windows][IBM i]将特定概要文件用于不同的用户权限。
  • 同一用户必须在一个概要文件中运行所有命令。
  • 确保特定概要文件的所有用户都属于同一组。 此外,请确保组的每个用户都对同一概要文件中由其他成员创建的文件具有读写权限。
wsadmin 工具的选项不区分大小写。 如果您指定空字符串来代替命令选项,那么 wsadmin 工具将显示一般帮助信息。
避免麻烦:
  • 必须在 wsadmin 交互式 shell 中的一行上输入 wsadmin 命令。 即,连续输入该命令,而不要将其拆分成多行。 不支持将较长的 wsadmin 命令拆分成多行。 尝试在 wsadmin 交互式 shell 中运行拆分成多行的 wsadmin 命令将导致语法错误。
  • wsadmin 工具在解析字符串时除去任何前导空格和尾部空格,包括 \n\r\t\f 空格,以避免发生任何用户错误。 例如,有人可能会意外地点击空格键或 Tab 键,并向命令字符串添加额外的空间。 此额外空间可能导致命令或脚本失败。 如果需要在命令中包含额外空间,请使用列表语法而不是字符串语法,或者将包含额外空间的字符串括在 [ ] (方括号) 中。

对 wsadmin 脚本客户机使用以下命令行调用语法:

[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin [-h(help)]
[-?] 

[-c command] 

[-p properties_file_name] 

[-profile profile_script_name] 

[-profileName profile_name]

[-f script_file_name] 

[-javaoption java_option]

[-lang language] 

[-wsadmin_classpath classpath]

[-conntype SOAP [-host host_name] [-port port_number] [-user userid] [-password password]

[-conntype RMI [-host host_name] [-port port_number] [-user userid] [-password password]

[-conntype JSR160RMI [-host host_name] [-port port_number] [-user userid] [-password password]

[-conntype IPC [-ipchost host_name] [-port port_number] [-user userid] [-password password]

[-jobid jobid_string] 

[-tracefile trace_file]

[-appendtrace true/false]

[script parameters] 

元素script parameters表示除先前列示的自变量以外的任何自变量。 argc 变量包含参数的数目,argv 变量以参数编码的顺序包含这些参数的列表。

选项

-c
指定运行单条命令。 -c 选项后面必须有命令。 该命令行上可以有多个 -c 选项。 它们按您指定的顺序运行。

如果使用 -c 选项调用 wsadmin 工具,那么会自动保存对配置所作的任何更改。 如果您进行了配置更改,但未使用 -c 选项,那么必须使用 AdminConfig 对象的 save 命令来保存这些更改。 请参阅“使用 wsadmin 工具保存配置更改”,以了解更多信息。

-f
指定要运行的脚本。 -f 选项后面必须有文件名。

该命令行上只能有一个 -f 选项。

可使用 -f 选项以运行包含嵌套 Jython 脚本的脚本。 在以下示例中,test2 脚本导入 test1 脚本:
#test1.py

def   listServer():
       print AdminConfig.list("Server")
#test2.py

import test1
test1.listServer()
要运行调用者脚本,请从 app_server_root/bin 目录运行以下命令:
wsadmin -lang jython -f  test2.py
在脚本运行之后,系统会返回以下样本命令输出:
server1(cells/myCell/nodes/myNode/servers/myServer|server.xml#Server_1183122130078)
-javaoption
指定有效的 Java 标准或非标准选项。 该命令行上可以有多个 -javaoption 选项。
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -javaoption java_option -javaoption java_option

要缩短命令的长度,请按以下方式输入命令:

[Linux][AIX][HP-UX][IBM i][Solaris]
wsadmin -javaoption "java_option java_option"
[Windows]对于过渡期用户: 您无法使用缩短的 wsadmin -javaoption "java_option java_option" 命令。 必须使用较长的 wsadmin.sh -javaoption java_option -javaoption java_option 格式。 与先前版本不同, V 8 产品在 Windows 操作系统上不支持在一个 -javaoption 选项中同时使用多个 Java 选项。
[Windows]在 Windows 操作系统上,如果选项包含等号 (= = ) ;或分号 (; ),则必须用双引号 ("") 包裹该选项;例如:
wsadmin -javaoption "-Da.b.c=3"
Windows 操作系统将命令行参数中的等号 (=) 或分号 (;) 视为空格。 wsadmin 工具要求用双引号将具有空格的参数引起来。
对于转换用户: 对于 WebSphere Application Server Version 8.5, wsadmin.bat 中的 %javaoption%wsadmin.sh 中的 $javaOption 位于 JAVA_EXE 参数的末尾。 这允许您覆盖 Java 系统属性,例如,CLIENTSOAP 和 CLIENTSAS 属性。
-javaoption -Dwsadmin.script. libr aries=目录1; 目录2;...
指定使用程序包的 Jython 脚本的搜索路径。 dir1dir2 表示包含 Jython 程序包的库的目录搜索路径。
在 Windows 系统上,请用双引号 (") 包裹该选项的值,例如:
wsadmin -javaoption "-Dwsadmin.script.libraries=dir1;dir2;..."
-lang
指定脚本文件、命令或交互式 shell 的语言。 可能的语言包括:Jacl 和 Jython。 这些语言选项将表示为 jacljython

此选项覆盖基于脚本文件名、概要文件脚本文件名或 com.ibm.ws.scripting.defaultLang 属性的语言确定。 -lang 参数没有缺省值。 如果 -lang 自变量中指定的语言与 -f script_file_name 自变量所确定的语言不匹配,那么 wsadmin 工具将根据脚本文件名确定语言。

如果您未指定 -lang 参数,但指定了 -f script_file_name 参数,那么 wsadmin 工具根据目标脚本文件名确定语言。 如果您未指定 -lang 参数和 -f 参数,那么当指定了 -profile profile_script_name 参数时,wsadmin 工具根据概要文件脚本文件名确定语言。 如果此命令行或属性不提供脚本语言,且 wsadmin 工具无法确定它,那么会生成错误消息。

-p
指定属性文件。 -p 选项后面必须有文件名。
列在 -p 之后的文件表示脚本编制进程读取的 Java 属性文件。 在装入您在命令行上指定的属性文件之前,将装入三个级别的缺省属性文件:
  • 第一个级别是安装缺省值 wsadmin.properties,它在产品属性目录中。
  • 第二个级别是用户缺省值 wsadmin.properties,它在您的主目录中。
  • 第三个级别是环境变量要使用的属性文件WSADMIN_PROPERTIES引用。

该命令行上可以有多个 -p 选项。 这些选项按您提供它们的顺序调用。

还可以将 com.ibm.ws.scripting.noechoParamNo 定制属性与此选项配合使用。 使用此定制属性来指定您不希望在跟踪文件或标准输出中显示的脚本参数。 要启用此定制属性,请创建文本文件(例如 noecho.prop)。 在此文本文件中,指定 wsadmin 命令中包含的您不希望在跟踪文件或标准输出中显示的敏感数据(例如密码)的位置。 该文本文件可以包含单个编号或由逗号分隔的多个参数编号。 例如,该文本文件可包含下列信息:
com.ibm.ws.scripting.noechoParamNo=3,5
在 wsadmin 命令中引用此文本文件时,第三个和第五个参数值不会显示在跟踪文件或标准输出中。 要使用定制属性,运行 wsadmin 命令并通过 -p 选项传递该文本文件。 例如:
使用 Jacl:
wsadmin -f script_file script_arguments -p text_file
使用 Jython:
wsadmin -lang jython -f script_file script_arguments -p text_file

例如:

[Linux][AIX][HP-UX][IBM i][Solaris]
wsadmin -f text.py server1 dbuser dbpassword user1 userpassword -p noecho.prop
[Windows]
wsadmin -f c:/text.py server1 dbuser dbpassword user1 userpassword -p c:/noecho.prop

dbpassworduserpassword 是第三个和第五个参数,它们不会显示在跟踪文件或标准输出中。

-profile
指定概要文件脚本。

概要文件脚本可在其他命令或脚本之前运行。 如果指定-c,然后概要文件脚本在调用此命令之前运行。 如果指定-f,然后概要文件脚本在运行脚本之前运行。 在交互方式下,您可以使用此概要文件脚本来执行您需要的任何标准初始化。 您可以在命令行上指定多个 -profile 选项,将按您指定这些选项的顺序调用这些选项。

-profileName
指定 wsadmin 工具从中运行的概要文件。 如果以下某个原因适用则指定此选项:
  • app_server_root/bin 目录运行 wsadmin 工具,并且您没有缺省概要文件,或者要在缺省概要文件以外的概要文件中运行。
  • 您当前在概要文件 bin 目录中,但要从不同的概要文件运行 wsadmin 工具。
-?
提供语法帮助。
-help
提供语法帮助。
-conntype
指定要使用的连接类型。

此参数包含确定类型的字符串,例如,SOAP 和特定于此连接类型的选项。 可能的类型包括:SOAP,RMI,JSR160RMI,IPCNONE。对于每种连接类型,可以指定有关连接的其他属性。

for theSOAP连接类型,您可以指定以下属性:
表 1。 -conntype SOAP 连接类型属性描述 使用此属性来指定 SOAP 连接类型。
属性 描述
[-主机 host_name] 指定连接的主机名。 缺省值为本地主机。
[-端口 端口号 ] 指定连接的端口号。
[-用户 userid] 指定要用于建立连接的用户标识。
[-密码 密码 ] 指定要用于建立连接的密码。
for theRMI连接类型,您可以指定以下属性:
表 2。 -conntype RMI 连接类型属性描述 使用此属性来指定 RMI 连接类型。
属性 描述
[-主机 host_name] 指定连接的主机名。 缺省值为本地主机。
[-端口 端口号 ] 指定连接的端口号。
[-用户 userid] 指定要用于建立连接的用户标识。
[-密码 密码 ] 指定要用于建立连接的密码。
不推荐使用的功能部件: 将 RMI 连接器转换为 JSR160RMI 连接器,因为不推荐使用对 RMI 连接器的支持。
for theJSR160RMI连接类型,您可以指定以下属性:
表 3。 -conntype JSR160RMI 连接类型属性描述 使用此属性来指定 JSR160RMI 连接类型。
属性 描述
[-主机 host_name] 指定连接的主机名。
[-端口 端口号 ] 指定连接的端口号。
[-用户 userid] 指定要用于建立连接的用户标识。
[-密码 密码 ] 指定要用于建立连接的密码。
for theIPC连接类型,您可以指定以下属性:
表 4。 -conntype IPC 连接类型属性描述 使用此属性来指定 IPC 连接类型。
属性 描述
[-ipchost 主机名 ] 指定连接的主机名。 此属性会覆盖 wsadmin.properties 属性文件中对 com.ibm.ws.scripting.ipchost 属性指定的主机名。
[-端口 端口号 ] 指定连接的端口号。
[-用户 userid] 指定要用于建立连接的用户标识。
[-密码 密码 ] 指定要用于建立连接的密码。

使用-conntype NONE选项以本地方式运行。 结果是脚本编制客户机未连接到运行的服务器。 您可以在不需要运行应用程序服务器的情况下管理服务器配置、应用程序的安装和卸载。

不推荐使用的功能: 您最终应该从远程方法调用 (RMI) 连接器切换到 JSR160RMI 连接器,因为不推荐使用对 RMI 连接器的支持。
-wsadmin_classpath
使用此选项使其他类可用于您的脚本编制进程。

将以下选项与类路径字符串配合使用:

[Linux][AIX][HP-UX][Solaris]
/MyDir/Myjar.jar;/yourdir/yourdir.jar
[IBM i]
/home/MyDir/Myjar.jar;/yourdir/yourdir.jar
[Windows]
c:/MyDir/Myjar.jar;d:/yourdir/yourdir.jar

于是,这个类路径被添加到脚本编制进程的类装入器。

您还可以在 wsadmin 工具使用的属性文件中指定此选项。 属性是 com.ibm.ws.scripting.classpath。 如果您在命令行上指定 -wsadmin_classpath,那么此属性的值会覆盖在属性文件中指定的任何值。 不并置类路径属性和命令行选项。

-host
指定 wsadmin 尝试连接至的主机名。 位于每个概要文件的属性目录中的缺省 wsadmin.properties 文件提供localhost作为主机属性的值 (如果未指定此选项)。
-password
如果在服务器中启用了安全性,那么指定要由连接器用来连接到服务器的密码。
注意: 在 UNIX 系统上,使用-password 选项可能会导致安全漏洞,因为密码信息显示在系统状态程序中。 例如,当您使用 ps 命令时,可能会暴露此信息,其他用户可以调用该命令来显示所有正在运行的进程。 如果考虑到安全漏洞问题,请不要使用此选项。 为了避免漏洞,可以执行下列操作:
  • 在 soap.client.props 文件中为 SOAP 连接器、在 sas.client.props 文件中为 JSR160RMI 连接器或远程方法调用 (RMI) 连接器或者在 ipc.client.props 文件中为进程间通信 (IPC) 连接器指定用户和密码信息。 soap.client.props、sas.client.props 和 ipc.client.props 文件位于应用程序服务器概要文件的属性目录中。
  • 等待 wsadmin 工具提示用户提供登录信息而非提供属性文件内的登录信息。
-user or -username
如果在服务器中启用了安全性,那么指定要由连接器用来连接到服务器的用户名。
-port
指定要由连接器使用的端口。 位于每个应用程序服务器概要文件的属性目录中的缺省 wsadmin.properties 文件提供端口属性中的值来连接到本地服务器。
-jobid
指定作业标识字符串,以便您可以跟踪 wsadmin 工具的每次调用以进行审计。 作业标识字符串 (jobID=xxxx) 显示在 wsadmin 日志文件的开始处。
-tracefile
指定日志文件的名称和日志输出的位置。 此选项覆盖 wsadmin.properties 文件中 com.ibm.ws.scripting.traceFile 属性。
-appendtrace
确定跟踪结果是追加至现有日志文件的末尾还是覆盖现有日志文件。 指定true将跟踪附加到日志文件的末尾或指定false以覆盖每个 wsadmin 调用的日志文件。 缺省值为false.

以下示例指定作业标识选项、日志位置并将跟踪结果追加至日志文件。

[Linux][AIX][HP-UX][IBM i][Solaris]
wsadmin -jobid wsadmin_test_1 -tracefile /temp/wsadmin_test_1.log -appendtrace true
[Windows]
wsadmin -jobid wsadmin_test_1 -tracefile c:/temp/wsadmin_test_1.log -appendtrace true

在以下语法示例中,mymachine 是 wsadmin.properties 文件中由 com.ibm.ws.scripting.port 属性指定的主机名:

SOAP 连接到本地主机

使用在以下选项中定义的选项:wsadmin.properties中。

SOAP 连接到 mymachine 主机

使用 Jacl,输入以下示例代码:
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -f test1.jacl -profile setup.jacl -conntype SOAP 
-port mymachine_soap_portnumber -host mymachine

使用 Jython:

[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -lang jython -f  test1.py -profile setup.py -conntype 
SOAP -port mymachine_soap_portnumber -host mymachine

更改 Java 堆大小的初始值和最大值

使用 Jacl:

[Windows]
wsadmin -javaoption -Xms128m -javaoption -Xmx256m -f test.jacl
[Linux][AIX][HP-UX][IBM i][Solaris]同时或分别指定多个 Java 选项:
wsadmin -javaoption "-Xms128m -Xmx256m" -f test.jacl
wsadmin -javaoption -Xms128m -javaoption -Xmx256m -f test.jacl

使用 Jython:

[Windows]
wsadmin -lang jython -javaoption -Xms128m -javaoption -Xmx256m -f test.py
[Linux][AIX][HP-UX][IBM i][Solaris]同时或分别指定多个 Java 选项:
wsadmin -lang jython -javaoption "-Xms128m -Xmx256m" -f test.py
wsadmin -lang jython -javaoption -Xms128m -javaoption -Xmx256m -f test.py

更改系统属性值

使用 Jacl:
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true" 

使用 Jython:

[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -lang jython -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true" 

[Windows]用双引号 ("") 将此 Java 系统属性引起来。

用双引号 ("") 将多个 Java 选项引起来;例如:

wsadmin -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true
  -Dcom.ibm.websphere.management.application.enableDistribution=true" 

具有安全性的 JSR160RMI 连接

使用 Jacl:
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -conntype JSR160RMI -port  JSR160rmiportnumber -user userid 
-password password

使用 Jython:

[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -lang jython -conntype JSR160RMI -port  JSR160portnumber -user userid 
-password password

连接的元素 rmiportnumber 在管理控制台中显示为 BOOTSTRAP_ADDRESS。

注意: 在 UNIX 系统上,使用-password 选项可能会导致安全漏洞,因为密码信息对系统状态程序 (例如, ps 命令) 可视,另一个用户可以调用该命令来显示所有正在运行的进程。 如果考虑到安全漏洞问题,请不要使用此选项。 为了避免漏洞,可以执行下列操作:
  • 在 soap.client.props 文件中为 SOAP 连接器、在 sas.client.props 文件中为 JSR160RMI 连接器或远程方法调用 (RMI) 连接器或者在 ipc.client.props 文件中为进程间通信 (IPC) 连接器指定用户和密码信息。 soap.client.props、sas.client.props 和 ipc.client.props 文件位于应用程序服务器概要文件的属性目录中。
  • 等待 wsadmin 工具提示用户提供登录信息而非提供属性文件内的登录信息。

具有安全性的 RMI 连接

使用 Jacl:
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -conntype RMI -port  rmiportnumber -user userid 
-password password

使用 Jython:

[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -lang jython -conntype RMI -port  rmiportnumber -user userid 
-password password

连接的元素 rmiportnumber 在管理控制台中显示为 BOOTSTRAP_ADDRESS。

注意: 在 UNIX 系统上,使用-password 选项可能会导致安全漏洞,因为密码信息对系统状态程序 (例如, ps 命令) 可视,另一个用户可以调用该命令来显示所有正在运行的进程。 如果考虑到安全漏洞问题,请不要使用此选项。 为了避免漏洞,可以执行下列操作:
  • 在 soap.client.props 文件中为 SOAP 连接器、在 sas.client.props 文件中为 JSR160RMI 连接器或远程方法调用 (RMI) 连接器或者在 ipc.client.props 文件中为进程间通信 (IPC) 连接器指定用户和密码信息。 soap.client.props、sas.client.props 和 ipc.client.props 文件位于应用程序服务器概要文件的属性目录中。
  • 等待 wsadmin 工具提示用户提供登录信息而非提供属性文件内的登录信息。

执行单个命令的本地操作方式

使用 Jacl:
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -conntype NONE -c "$AdminApp uninstall app"

使用 Jython:

[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -lang jython -conntype NONE -c "AdminApp.uninstall('app')"