wsadmin Scripting 工具
wsadmin 工具會執行 Script。 您可以利用 wsadmin 工具來管理應用程式伺服器,以及配置、應用程式部署和伺服器執行時期作業。
在分散式平台中,您可以從 WebSphere® Application Server 執行 wsadmin 指令,在 z/OS 作業系統中,您可以利用分散式指令來管理 WebSphere Application Server。
不同的使用者權限使用特定的設定檔。
不同的使用者權限使用個別安裝架構。
- 同一位使用者必須在單一設定檔中執行所有指令。
- 確定特定設定檔的所有使用者都屬於相同的群組。 此外,請確定群組的每一位使用者都有相同設定檔中其他成員所建立之檔案的讀取和寫入權限。

- 在 wsadmin 互動式 Shell 中,您必須在單行中輸入各個 wsadmin 指令。 也就是說,連續輸入指令,指令不要分割成多行。 不支援將長的 wsadmin 指令分成許多行。 試圖在 wsadmin 互動式 Shell 中執行分行的 wsadmin 指令,會導致語法錯誤。
- 當剖析字串來避免任何使用者錯誤時,wsadmin 工具會移除任何在前端及尾端的空格,其中包括 \n、\r、\t、\f 和空格。 比方說,可能有人會意外按下空格鍵或 Tab 鍵,在指令字串中加入空格。 這個空格可能會使指令或 Script 失敗。 如果指令需要包括空格,請利用清單語法來取代字串語法,或用 [](方括弧)括住包含空格的字串。
請針對 wsadmin Scripting 用戶端來使用下列指令行呼叫語法:
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
wsadmin [-h(help)]
![[z/OS]](../images/ngzos.gif)
wsadmin.sh [-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 工具來儲存配置變更」的相關資訊。
- -Dwsadmin.script.libraries=dir1;dir2;...
- 指定使用套件的 Jython Script 的搜尋路徑。 dir1 和 dir2 代表包含 Jython 套件的程式庫的目錄搜尋路徑。
- -f
- 指定要執行的 Script。
-f 選項後面必須接著檔名。
在指令行中,只能有一個 -f 選項。
您可以利用 -f 選項來執行包含巢狀 Jython Script 的 Script。 在下列範例中,test2 Script 匯入 test1 Script:#test1.py def listServer(): print AdminConfig.list("Server")
#test2.py import test1 test1.listServer()
如果要執行呼叫端 Script,請從 app_server_root/bin 目錄執行下列指令:wsadmin -lang jython -f test2.py
執行 Script 之後,系統會傳回下列指令輸出範例:server1(cells/myCell/nodes/myNode/servers/myServer|server.xml#Server_1183122130078)
- -javaoption
- 指定有效的 Java 標準或非標準選項。
在指令行中,可以有多個 -javaoption 選項。
wsadmin -javaoption java_option -javaoption java_option
wsadmin.sh -javaoption java_option -javaoption java_option
如果要縮短指令長度,您可以依照下列方式來輸入指令:
wsadmin -javaoption "java_option java_option"
wsadmin.sh -javaoption "java_option java_option"
轉移: 您無法使用縮短的指令 wsadmin -javaoption "java_option java_option"。 您必須使用較長的 wsadmin.sh -javaoption java_option -javaoption java_option 格式。 第 8 版產品與舊版不同,在 Windows 作業系統中,它不支援在單一 -javaoption 選項中,同時使用多個 Java 選項。
在 Windows 作業系統中,如果選項包含等號 (=) 或分號 (;),您必須用雙引號 (") 來括住選項;例如:
Windows 作業系統會將指令行引數中的等號 (=) 或分號 (;) 視為空格。 wsadmin 工具要求用雙引號括住含空格的引數。wsadmin -javaoption "-Da.b.c=3"
適用於轉換使用者: 如果是 WebSphere Application Server 8.5 版,wsadmin.bat 中的 %javaoption% 和 wsadmin.sh 中的 $javaOption 是在 JAVA_EXE 引數的尾端。 這可讓您置換 Java 系統內容,例如 CLIENTSOAP 和 CLIENTSAS 內容。trns
- -lang
- 指定 Script 檔、指令或互動式 Shell 的語言。
可能的語言包括:Jacl 和 Jython。
這些語言選項以 jacl 和 jython 來表示。
這個選項會置換基於 Script 檔名、設定檔 Script 檔名或 com.ibm.ws.scripting.defaultLang 內容的語言判斷。 -lang 引數沒有預設值。 如果 -lang 引數指定的語言與 -f script_file_name 引數中所判斷的語言不符,wsadmin 工具會根據 Script 檔名來決定語言。
如果您沒有指定 -lang 引數,但指定了 -f script_file_name 引數,wsadmin 工具會根據目標 Script 檔名來判斷語言。 如果您沒有指定 -lang 引數和 -f 引數,但指定了 -profile profile_script_name 引數,wsadmin 工具會根據設定檔 Script 檔名來判斷語言。 如果指令行或內容未提供 Script 語言,且 wsadmin 工具無法判斷,就會產生錯誤訊息。
- -p
- 指定內容檔。-p 選項後面必須接著檔名。
-p 後面列出的檔案代表 Scripting 程序所讀取的 Java 內容檔。 系統會先載入三個層次的預設內容檔,然後才是指令行所指定的內容檔:
- 第一層次是安裝預設內容檔 wsadmin.properties,它在產品 properties 目錄中。
- 第二層次是使用者預設內容檔 wsadmin.properties,它在您的起始目錄中。
- 第三層次是環境變數 WSADMIN_PROPERTIES 所參照的內容檔。
在指令行中,可以有多個 -p 選項。 這些選項是依照您提供它們的順序來進行呼叫。
您也可以搭配這個選項來使用 com.ibm.ws.scripting.noechoParamNo 自訂內容。 請利用這個自訂內容來指定您不想顯示在追蹤檔或標準輸出中的 Script 參數。 如果要啟用這個自訂內容,請建立一個文字檔,例如 noecho.prop。 在這個文字檔中,請指定 wsadmin 指令內包含您不想顯示在追蹤檔或標準輸出中之機密資料(如密碼)的位置,這個文字檔可以包含單一號碼,或用逗點區隔的多個參數號碼。 比方說,文字檔可能包含下列資訊:
當您在 wsadmin 指令中參照這個文字檔時,第三及第五個參數值不會顯示在追蹤檔或標準輸出中。 如果要使用這個自訂內容,請執行 wsadmin 指令,設定 -p 選項來傳遞文字檔。 例如:com.ibm.ws.scripting.noechoParamNo=3,5
使用 Jacl:wsadmin -f script_file script_arguments -p text_file
使用 Jython:wsadmin -lang jython -f script_file script_arguments -p text_file
例如:
wsadmin -f text.py server1 dbuser dbpassword user1 userpassword -p noecho.prop
wsadmin -f c:/text.py server1 dbuser dbpassword user1 userpassword -p c:/noecho.prop
wsadmin.sh -f text.py server1 dbuser dbpassword user1 userpassword -p noecho.prop
dbpassword 和 userpassword 是不會顯示在追蹤檔或標準輸出中的第三及第五個參數。
- -profile
- 指定設定檔 Script。
設定檔 Script 會在其他指令或 Script 之前執行。 如果您指定 -c,執行設定檔 Script 之後,才會呼叫這個指令。 如果您指定 -f,執行設定檔 Script 之後,才會執行這個 Script。 在互動模式中,您可以利用設定檔 Script 來執行您想要的任何標準起始設定。 您可以在指令行上指定多個 -profile 選項,它們會依照您的指定順序來接受呼叫。
- -profileName
- 指定從中執行 wsadmin 工具的設定檔。
如果適用下列原因之一,請指定這個選項:
- 您從 app_server_root/bin 目錄執行 wsadmin 工具,且沒有預設設定檔,或您想要在預設設定檔以外的設定檔中執行。
- 您目前在設定檔 bin 目錄中,但想要從另一個設定檔來執行 wsadmin 工具。
重要: 執行於 z/OS 作業系統的 WebSphere Application Server 不支援使用者建立的設定檔;只會使用預設設定檔。
- -?
- 提供語法說明。
- -help
- 提供語法說明。
- -conntype
- 指定要用的連線類型。
這個引數包含一個決定類型的字串(如 SOAP),以及這個連線類型專用的選項。 可能的類型包括:SOAP、RMI、JSR160RMI、IPC 和 NONE。 每一個連線類型都可以指定連線的其他相關屬性。
如果是 SOAP 連線類型,您可以指定下列屬性:表 1. -conntype SOAP 連線類型屬性說明. 請利用這個屬性來指定 SOAP 連線類型。 屬性 說明 [-host host_name] 指定連線的主機名稱。 預設值是本端主機。 [-port port_number] 指定連線的埠號。 [-user userid] 指定用來建立連線的使用者 ID。 [-password password] 指定用來建立連線的密碼。 如果是 RMI 連線類型,您可以指定下列屬性:表 2. -conntype RMI 連線類型屬性說明. 請利用這個屬性來指定 RMI 連線類型。 屬性 說明 [-host host_name] 指定連線的主機名稱。 預設值是本端主機。 [-port port_number] 指定連線的埠號。 [-user userid] 指定用來建立連線的使用者 ID。 [-password password] 指定用來建立連線的密碼。 如果是 JSR160RMI 連線類型,您可以指定下列屬性:表 3. -conntype JSR160RMI 連線類型屬性說明. 請利用這個屬性來指定 JSR160RMI 連線類型。 屬性 說明 [-host host_name] 指定連線的主機名稱。 [-port port_number] 指定連線的埠號。 [-user userid] 指定用來建立連線的使用者 ID。 [-password password] 指定用來建立連線的密碼。 如果是 IPC 連線類型,您可以指定下列屬性:表 4. -conntype IPC 連線類型屬性說明. 請利用這個屬性來指定 IPC 連線類型。 屬性 說明 [-ipchost host_name] 指定連線的主機名稱。 這個屬性會置換 wsadmin.properties 內容檔中,指定給 com.ibm.ws.scripting.ipchost 內容的主機名稱。 [-port port_number] 指定連線的埠號。 [-user userid] 指定用來建立連線的使用者 ID。 [-password password] 指定用來建立連線的密碼。 請利用 -conntype NONE 選項以在本端模式下執行。 結果是 Scripting 用戶端不會連接到執行中的伺服器。 應用程式伺服器不需要在執行中,您就可以管理伺服器配置,應用程式的安裝和解除安裝。
已淘汰的特性: 您最終應該從「遠端方法呼叫 (RMI)」連接器切換至 JSR160RMI 連接器,因為對 RMI 連接器的支援已經淘汰。depfeat
- -wsadmin_classpath
- 請利用這個選項,將其他類別提供給您的 Scripting 程序。
請搭配類別路徑字串來使用下列選項:
/MyDir/Myjar.jar;/yourdir/yourdir.jar
/home/MyDir/Myjar.jar;/yourdir/yourdir.jar
c:/MyDir/Myjar.jar;d:/yourdir/yourdir.jar
之後,類別路徑會新增到 Scripting 程序的類別載入器中。
您也可以在 wsadmin 工具所用的內容檔中指定這個選項。 內容是 com.ibm.ws.scripting.classpath。 如果您在指令行指定 -wsadmin_classpath,這個內容的值會置換內容檔所指定的任何值。 類別路徑內容和指令行選項不會連結起來。
- -host
- 指定 wsadmin 試圖連接的主機名稱。 在每個設定檔的 properties 目錄中,都有預設的 wsadmin.properties 檔,如果未指定這個選項,它會提供 localhost 作為主機內容的值。
- -password
- 如果伺服器啟用安全的話,指定連接器用來連接伺服器的密碼。
小心: 在 UNIX 系統上,使用 -password 選項可能會導致安全漏洞,因為密碼資訊會顯示在系統狀態程式中。 比方說,當您使用 ps 指令時,這個資訊就有可能曝光,另一位使用者可能會呼叫這個指令來顯示所有執行中的程序。 如果安全漏洞很重要,請勿使用這個選項。 如果要避免漏洞,您可以執行下列動作:
- 在 SOAP 連接器的 soap.client.props 檔中,在 JSR160RMI 連接器或「遠端方法呼叫 (RMI)」連接器的 sas.client.props 檔中,或在「跨處理程序通訊 (IPC)」連接器的 ipc.client.props 檔中,指定使用者和密碼資訊。 soap.client.props、sas.client.props 和 ipc.client.props 檔在應用程式伺服器設定檔的 properties 目錄中。
- 等待 wsadmin 工具提示使用者輸入登入資訊,而不是在內容檔中提供登入資訊。
- -user or -username
- 如果伺服器啟用安全的話,指定連接器用來連接伺服器的使用者名稱。
- -port
- 指定連接器所用的埠。 在每個應用程式伺服器設定檔的 properties 目錄中,都有預設的 wsadmin.properties 檔,它會提供一個用來連接本端伺服器的埠內容值。
- -jobid
- 指定一個工作 ID 字串,以便在每次呼叫 wsadmin 工具時,加以追蹤來進行審核。 工作 ID 字串 (jobID=xxxx) 會顯示在 wsadmin 日誌檔的開頭。
- -tracefile
- 指定日誌輸出所導向的日誌檔和位置的名稱。 這個選項會置換 wsadmin.properties 檔中的 com.ibm.ws.scripting.traceFile 內容。
- -appendtrace
- 決定追蹤是附加於現有日誌檔的結尾,或加以置換。
請在每一次呼叫 wsadmin 時,指定 true,將追蹤附加到日誌檔的結尾,或指定 false 來置換日誌檔。
預設值為 false。
下列範例會指定工作 ID 選項、日誌位置,且會將追蹤附加於日誌檔。
wsadmin -jobid wsadmin_test_1 -tracefile /temp/wsadmin_test_1.log -appendtrace true
wsadmin -jobid wsadmin_test_1 -tracefile c:/temp/wsadmin_test_1.log -appendtrace true
wsadmin.sh -jobid wsadmin_test_1 -tracefile /temp/wsadmin_test_1.log -appendtrace true
在下列語法範例中,mymachine 是 wsadmin.properties 檔中 com.ibm.ws.scripting.port 內容所指定的主機名稱:
- 通往本端主機的 SOAP 連線
- 使用 wsadmin.properties 檔中所定義的選項。
- 通往 mymachine 主機的 SOAP 連線
- 當使用 Jacl 時,請輸入下列範例程式碼:
wsadmin -f test1.jacl -profile setup.jacl -conntype SOAP -port mymachine_soap_portnumber -host mymachine
wsadmin.sh -f test1.jacl -profile setup.jacl -conntype SOAP -port mymachine_soap_portnumber -host mymachine
使用 Jython:
wsadmin -lang jython -f test1.py -profile setup.py -conntype SOAP -port mymachine_soap_portnumber -host mymachine
wsadmin.sh -lang jython -f test1.py -profile setup.py -conntype SOAP -port mymachine_soap_portnumber -host mymachine
- 變更起始 Java 資料堆大小和 Java 資料堆大小上限
使用 Jacl:
wsadmin -javaoption -Xms128m -javaoption -Xmx256m -f test.jacl
一起指定多個 Java 選項,或分別指定:
或wsadmin -javaoption "-Xms128m -Xmx256m" -f test.jacl
wsadmin -javaoption -Xms128m -javaoption -Xmx256m -f test.jacl
wsadmin.sh -javaoption "-Xms128m -Xmx256m" -f test.jacl
使用 Jython:
wsadmin -lang jython -javaoption -Xms128m -javaoption -Xmx256m -f test.py
一起指定多個 Java 選項,或分別指定:
或wsadmin -lang jython -javaoption "-Xms128m -Xmx256m" -f test.py
wsadmin -lang jython -javaoption -Xms128m -javaoption -Xmx256m -f test.py
wsadmin.sh -lang jython -javaoption "-Xms128m -Xmx256m" -f test.py
- 變更系統內容值
- 使用 Jacl:
wsadmin -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true"
wsadmin.sh -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true"
使用 Jython:
wsadmin -lang jython -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true"
wsadmin.sh -lang jython -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true"
用雙引號 ("") 括住 Java 系統內容。
用雙引號 ("") 括住多個 Java 選項;例如:
wsadmin -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true -Dcom.ibm.websphere.management.application.enableDistribution=true"
- JSR160RMI 安全連線
- 使用 Jacl:
wsadmin -conntype JSR160RMI -port JSR160rmiportnumber -user userid -password password
wsadmin.sh -conntype JSR160RMI -port JSR160rmiportnumber -user userid -password password
使用 Jython:
wsadmin -lang jython -conntype JSR160RMI -port JSR160portnumber -user userid -password password
wsadmin.sh -lang jython -conntype JSR160 -port JSR160rmiportnumber -user userid -password password
在管理主控台中,連線的 rmiportnumber 元素會顯示為 BOOTSTRAP_ADDRESS。
小心: 在 UNIX 系統上,使用 -password 選項可能會導致安全漏洞,因為 ps 指令之類的系統狀態程式可以見到密碼資訊,另一位使用者可能會呼叫這個指令來顯示所有執行中的程序。 如果安全漏洞很重要,請勿使用這個選項。 如果要避免漏洞,您可以執行下列動作:- 在 SOAP 連接器的 soap.client.props 檔中,在 JSR160RMI 連接器或「遠端方法呼叫 (RMI)」連接器的 sas.client.props 檔中,或在「跨處理程序通訊 (IPC)」連接器的 ipc.client.props 檔中,指定使用者和密碼資訊。 soap.client.props、sas.client.props 和 ipc.client.props 檔在應用程式伺服器設定檔的 properties 目錄中。
- 等待 wsadmin 工具提示使用者輸入登入資訊,而不是在內容檔中提供登入資訊。
- RMI 安全連線
- 使用 Jacl:
wsadmin -conntype RMI -port rmiportnumber -user userid -password password
wsadmin.sh -conntype RMI -port rmiportnumber -user userid -password password
使用 Jython:
wsadmin -lang jython -conntype RMI -port rmiportnumber -user userid -password password
wsadmin.sh -lang jython -conntype RMI -port rmiportnumber -user userid -password password
在管理主控台中,連線的 rmiportnumber 元素會顯示為 BOOTSTRAP_ADDRESS。
小心: 在 UNIX 系統上,使用 -password 選項可能會導致安全漏洞,因為 ps 指令之類的系統狀態程式可以見到密碼資訊,另一位使用者可能會呼叫這個指令來顯示所有執行中的程序。 如果安全漏洞很重要,請勿使用這個選項。 如果要避免漏洞,您可以執行下列動作:- 在 SOAP 連接器的 soap.client.props 檔中,在 JSR160RMI 連接器或「遠端方法呼叫 (RMI)」連接器的 sas.client.props 檔中,或在「跨處理程序通訊 (IPC)」連接器的 ipc.client.props 檔中,指定使用者和密碼資訊。 soap.client.props、sas.client.props 和 ipc.client.props 檔在應用程式伺服器設定檔的 properties 目錄中。
- 等待 wsadmin 工具提示使用者輸入登入資訊,而不是在內容檔中提供登入資訊。
- 執行單一指令的本端作業模式
- 使用 Jacl:
wsadmin -conntype NONE -c "$AdminApp uninstall app"
orwsadmin.sh -conntype NONE -c "\$AdminApp uninstall app"
wsadmin.sh -conntype NONE -c '$AdminApp uninstall app'
使用 Jython:
wsadmin -lang jython -conntype NONE -c "AdminApp.uninstall('app')"
orwsadmin.sh -lang jython -conntype NONE -c "\AdminApp.uninstall('app')"
wsadmin.sh -lang jython -conntype NONE -c 'AdminApp.uninstall('app')'