本Blog所有內容不得隨意轉載,版權屬于作者所有。如需轉載請與作者聯系(
fastzch@163.com
)。
未經許可的轉載,本人保留一切法律權益。
一直以來,發(fā)現有某些人完全不尊重我的勞動成果,隨意轉載,提醒一下那些人小心哪天惹上官司。
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%
的內容,但是開發(fā)人員必須手動的檢查所有的轉換。
wsadmin.bat(or wsadmin.sh) 在每個應用服務器的 profile , DM ,被管理的節(jié)點實例的 bin 目錄下,所以當你啟動 wsadmin 的時候,必須注意選擇正確的位置。
要想得到 wsadmin 語法相關的幫助,可以輸入 wsadmin.bat -? ,以下是幫助的詳細內容:
----------------------------------------------------------------------
WASX7001I: wsadmin 是用于 WebSphere 腳本編制的可執(zhí)行文件。
語法:
??????? [ -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 ”是在主命令或文件前要執(zhí)行的腳本文件;
??????? “ script_file_name ”是要傳遞給腳本處理程序的命令;
??????? “ java_option ”是要傳遞給 Java 程序的 java 標準或非標準選項;
??????? “ language ”是要用于解釋腳本的語言;受支持的值為“ jacl ”和“ jython ”。
??????? “ classpath ”是附加到內置路徑中的類路徑;
??????? “ -conntype ”指定要使用的連接類型;
??????????????? 缺省參數是“ SOAP ”
??????????????? conntype 為“ NONE ”意味著沒有建立服務器連接
??????????????? 且某些操作會以本地方式執(zhí)行;
??????? “ host_name ”是用于 SOAP 或 RMI 連接的端口;
??????????????? 缺省值是本地主機;
??? ???? “ port_number ”是用于 SOAP 或 RMI 連接的端口;
??????? “ userid ”是服務器以安全方式運行時
??????????????? 所需的用戶標識;
??????? “ password ”是服務器以安全方式運行時
??????????????? 所需的密碼;
??????? “ script parameters ”是命令行上的任何其他內容。它們
??????????????? 在 argv 變量中傳遞給腳本;參數的數目
??????????????? 可在 argc 變量中獲得。
??????? “ jobid_string ”是要用來審計 wsadmin 的每個調用的
??????????????? 作業(yè)標識字符串;
??????? “ trace_file ”是 wsadmin 跟蹤輸出定向至的
??????????????? 日志文件名和位置;
如果未指定命令或腳本,將創(chuàng)建一個解釋器 shell
以供交互使用。要離開交互式腳本編制會話,
使用“ quit ”或“ exit ”命令。
可以在單個命令行上指定幾個命令、屬性文件和
概要文件。它們是按照其指定的順序處理和執(zhí)行的。
----------------------------------------------------------------------
配置 wsadmin 有三種方式:
1 ,使用 Profile 或系統(tǒng)默認的屬性文件:
?????? <profile_home>/properties/wsadmin.properties
?????? or
?????? <was_home>/properties/wsadmin.properties
2 ,使用自定義的環(huán)境變量去替換原來的配置文件的位置,環(huán)境變量為: WSADMIN_PROPERTIES, 可以 Copy 默認的屬性文件到你指定的位置,然后修改它。
3 ,在執(zhí)行 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 參數,表示要執(zhí)行的一些預先執(zhí)行的腳本。
使用 -p 可以定義屬性文件的位置。
Wsadmin 管理的對象包括:
AdminControl :用于操作控制。通過 MBean 來進行通訊,包含查詢在在的運行中的對象和其屬性,并在這些對象上調用操作。另外,支持關于連接服務的查詢,客戶端跟蹤的方便命令,重新連接至服務器,啟動和停止服務器。
AdminConfig :管理存儲在倉庫中的配置信息。通過 WAS 的配置服務組件來查詢和更改配置。可以使用它來查詢存在的配置對象,創(chuàng)建配置對象,修改存在的對象和移除配置對象。在分布式的環(huán)境中,此命令僅僅能用于連接到 DM ,不能連接到 Node Agent 或管理某一 Application Server ,因為這些服務器的進程配置僅僅是保存在 DM 上的一個 Copy( 副本 ) 。
AdminApp :能更新應用的元數據,映射虛擬主機到 Web 模塊,映射已安裝的模塊至服務器。對一個應用程序進行更改,比如為應用程序指定一個共享庫,設置會話管理的配置屬性。
AdminTask :用于訪問面向任務的管理命令。這些命令用于訪問配置命令和運行時對象管理命令。當腳本客戶端運行時,可以自動發(fā)現管理命令。可用的管理命令以用于安裝 WAS 的版本。
Help :
?????? print Help.AdminControl()
運行環(huán)境:
AdminConfig
,
AdminTask
,
AdminApp
對象都是處理配置功能。可以在連接或不連接至服務器的環(huán)境下運行,但
AdminControl
需要連接到服務器才能運行,因為他是通過調用正在運行的
JMX MBean
來執(zhí)行的。
AdminControl.queryNames(*)
查詢當前運行在 MBean Server 上的所有 MBean 的對象名。
如果客戶端隸屬于一個單獨的 Server ,這個列表中僅包含運行在這個 Server 上的 MBean 。
如果客戶端隸屬于一個 Node Agent ,這個列表包含運行在此節(jié)點上所有 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 的版本開發(fā)的,但是在 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 配置結構的一些知識。為了執(zhí)行一系列的腳本管理任務,而又沒有底層架構的知識, AdminTask 對象將給你一些引導。
AdminTask 對象的命令更像是一個向導,提供一步一步的向導去執(zhí)行管理操作。同時,也可以交互式的調用,會提示給用戶一些需要的參數,或者是像批次調用一樣,所有的輸入作為調用的一部分。
AdminTask 對象提供很多命令來執(zhí)行簡單或復雜的管理任務,為了某一特定的任務找到一個命令,這些命令被按照邏輯進行了分組。
用如下命令可以列出所有的分組:
wsadmin>print AdminTask.help('-commandGroups')
會得出所有的分組。然后,可以對其中的某一組命令進行查詢,如:
wsadmin>print AdminTask.help('AdminReports')
可得出如下結果:






此時,可進一步查詢某一命令的用法,如下:
wsadmin>print AdminTask.help('reportConfiguredPorts')
調用其中某一命令的方法為:
wsadmin>print AdminTask.reportConfiguredPorts()
此命令可得到如下結果:



















根據前面所說,我們可以使用交互式的方式來調用,如下:
wsadmin>print AdminTask.reportConfiguredPorts('-interactive')
會出現如下提示:



此時,我們輸入節(jié)點名,如:starNode01





再輸入F或直接回車,表示參數輸入完成,即可得到starNode01所有的端口報表,由于我的實驗環(huán)境中只有一個節(jié)點,所以結果跟上面的命令相同。