wsadmin Scripting 工具

wsadmin 工具會執行 Script。 您可以利用 wsadmin 工具來管理應用程式伺服器,以及配置、應用程式部署和伺服器執行時期作業。

[z/OS]您可以在分散式平台上從 WebSphere® Application Server 執行 wsadmin 指令,並在 z/OS 作業系統上使用該分散式指令來管理 WebSphere Application Server

重要事項: 從特定設定檔執行指令的所有使用者都必須有權修改由使用相同設定檔的其他使用者所建立的檔案。 否則,在日誌檔中,您可能會看到一則許可權遭拒的錯誤。 如果要避免這個問題,請考量下列原則之一:
  • [AIX Solaris HP-UX Linux Windows][IBM i]使用特定設定檔來取得特定使用者權限。
  • [z/OS]不同的使用者權限使用個別安裝架構。
  • 同一位使用者必須在單一設定檔中執行所有指令。
  • 確定特定設定檔的所有使用者都屬於相同的群組。 此外,請確定群組的每一位使用者都有相同設定檔中其他成員所建立之檔案的讀取和寫入權限。
wsadmin 工具的選項不區分大小寫。 如果您指定空字串來取代指令選項,wsadmin 工具會顯示一般說明資訊。
避免麻煩:
  • 在 wsadmin 互動式 Shell 中,您必須在單行中輸入各個 wsadmin 指令。 也就是說,連續輸入指令,指令不要分割成多行。 不支援將長的 wsadmin 指令分成許多行。 試圖在 wsadmin 互動式 Shell 中執行分行的 wsadmin 指令,會導致語法錯誤。
  • wsadmin 工具會在剖析字串時移除任何前導及尾端空格,包括 \n\r\t\f 及空格,以避免任何使用者錯誤。 例如,有人可能會意外地按空格鍵或 Tab 鍵,並在指令字串中新增額外的空間。 此額外空間可能會導致指令或 Script 失敗。 如果您需要在指令中包含額外空格,請使用清單語法而非字串語法,或將包含額外空格的字串含括在 [ ] (方括弧) 內。

請針對 wsadmin Scripting 用戶端來使用下列指令行呼叫語法:

[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin [-h(help)]
[z/OS]
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 的搜尋路徑。 dir1dir2 代表包含 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 選項。
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -javaoption java_option -javaoption java_option
[z/OS]
wsadmin.sh -javaoption java_option -javaoption java_option

如果要縮短指令長度,您可以依照下列方式來輸入指令:

[Linux][AIX][HP-UX][IBM i][Solaris]
wsadmin -javaoption "java_option java_option"
[z/OS]
wsadmin.sh -javaoption "java_option java_option"
[Windows]對於轉移使用者: 您無法使用 wsadmin -javaoption "java_option java_option" 縮短指令。 您必須使用較長的 wsadmin.sh -javaoption java_option -javaoption java_option 格式。 與舊版不同,在 Windows 作業系統上,第 8 版產品不支援在一個 -javaoption 選項中一起使用多個 Java 選項。
[Windows]在 Windows 作業系統上,如果選項包含等號 (=) 或分號 (;) ,則必須以雙引號 (") 括住選項; 例如:
wsadmin -javaoption "-Da.b.c=3"
Windows 作業系統會將指令行引數中的等號 (=) 或分號 (;) 視為空格。 wsadmin 工具要求用雙引號括住含空格的引數。
對於轉移使用者: 對於 WebSphere Application Server 8.5版, wsadmin.bat 中的 %javaoption%wsadmin.sh 中的 $javaOption 位於 JAVA_EXE 引數的結尾。 這可讓您置換 Java 系統內容,例如 CLIENTSOAP 和 CLIENTSAS 內容。
-lang
指定 Script 檔、指令或互動式 Shell 的語言。 可能的語言包括:Jacl 和 Jython。 這些語言選項以 jacljython 來表示。

這個選項會置換基於 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 指令內包含您不想顯示在追蹤檔或標準輸出中之機密資料(如密碼)的位置, 這個文字檔可以包含單一號碼,或用逗點區隔的多個參數號碼。 比方說,文字檔可能包含下列資訊:
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
[z/OS]
wsadmin.sh -f text.py server1 dbuser dbpassword user1 userpassword -p noecho.prop

dbpassworduserpassword 是不會顯示在追蹤檔或標準輸出中的第三及第五個參數。

-profile
指定設定檔 Script。

設定檔 Script 會在其他指令或 Script 之前執行。 如果您指定-c,然後在呼叫此指令之前執行設定檔 Script。 如果您指定-f,則會先執行設定檔 Script ,然後再執行 Script。 在互動模式中,您可以利用設定檔 Script 來執行您想要的任何標準起始設定。 您可以在指令行上指定多個 -profile 選項,它們會依照您的指定順序來接受呼叫。

-profileName
指定從中執行 wsadmin 工具的設定檔。 如果適用下列原因之一,請指定這個選項:
  • 您從 app_server_root/bin 目錄執行 wsadmin 工具,且沒有預設設定檔,或您想要在預設設定檔以外的設定檔中執行。
  • 您目前在設定檔 bin 目錄中,但想要從另一個設定檔來執行 wsadmin 工具。
    [z/OS]重要事項: 在 z/OS 作業系統上執行的WebSphere Application Server 不支援使用者建立的設定檔; 只會使用預設設定檔。
-?
提供語法說明。
-help
提供語法說明。
-conntype
指定要用的連線類型。

這個引數包含一個決定類型的字串(如 SOAP),以及這個連線類型專用的選項。 可能的類型包括:SOAP,RMI,JSR160RMI,IPCNONE. 對於每一種連線類型,您可以指定連線的其他屬性。

for theSOAP連線類型,您可以指定下列屬性:
表 1. -conntype SOAP 連線類型屬性說明 請利用這個屬性來指定 SOAP 連線類型。
屬性 說明
[-host host_name] 指定連線的主機名稱。 預設值是本端主機。
[-port port_number] 指定連線的埠號。
[-user userid] 指定用來建立連線的使用者 ID。
[-password password] 指定用來建立連線的密碼。
for theRMI連線類型,您可以指定下列屬性:
表 2. -conntype RMI 連線類型屬性說明 請利用這個屬性來指定 RMI 連線類型。
屬性 說明
[-host host_name] 指定連線的主機名稱。 預設值是本端主機。
[-port port_number] 指定連線的埠號。
[-user userid] 指定用來建立連線的使用者 ID。
[-password password] 指定用來建立連線的密碼。
已淘汰特性: 將 RMI 連接器轉換成 JSR160RMI 連接器,因為 RMI 連接器支援已淘汰。
for theJSR160RMI連線類型,您可以指定下列屬性:
表 3. -conntype JSR160RMI 連線類型屬性說明 請利用這個屬性來指定 JSR160RMI 連線類型。
屬性 說明
[-host host_name] 指定連線的主機名稱。
[-port port_number] 指定連線的埠號。
[-user userid] 指定用來建立連線的使用者 ID。
[-password password] 指定用來建立連線的密碼。
for theIPC連線類型,您可以指定下列屬性:
表 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 連接器支援已淘汰。
-wsadmin_classpath
請利用這個選項,將其他類別提供給您的 Scripting 程序。

請搭配類別路徑字串來使用下列選項:

[Linux][AIX][z/OS][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

之後,類別路徑會新增到 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
決定追蹤是附加於現有日誌檔的結尾,或加以置換。 指定true將追蹤附加至日誌檔結尾,或指定false以置換每一個 wsadmin 呼叫的日誌檔。 預設值為false.

下列範例會指定工作 ID 選項、日誌位置,且會將追蹤附加於日誌檔。

[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
[z/OS]
wsadmin.sh -jobid wsadmin_test_1 -tracefile /temp/wsadmin_test_1.log -appendtrace true

在下列語法範例中,mymachine 是 wsadmin.properties 檔中 com.ibm.ws.scripting.port 內容所指定的主機名稱:

通往本端主機的 SOAP 連線

使用中定義的選項wsadmin.propertiesFILE。

通往 mymachine 主機的 SOAP 連線

當使用 Jacl 時,請輸入下列範例程式碼:
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -f test1.jacl -profile setup.jacl -conntype SOAP 
-port mymachine_soap_portnumber -host mymachine
[z/OS]
wsadmin.sh -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
[z/OS]
wsadmin.sh -lang jython -f  test1.py -profile setup.py -conntype 
SOAP -port mymachine_soap_portnumber -host mymachine

變更起始 Java 資料堆大小和 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
[z/OS]
wsadmin.sh -javaoption "-Xms128m -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
[z/OS]
wsadmin.sh -lang jython -javaoption "-Xms128m -Xmx256m" -f test.py

變更系統內容值

使用 Jacl:
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -javaoption "-Dcom.ibm.websphere.management.application.client.jspReloadEnabled=true" 
[z/OS]
wsadmin.sh -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" 
[z/OS]
wsadmin.sh -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
[z/OS]
wsadmin.sh -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
[z/OS]
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:
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -conntype RMI -port  rmiportnumber -user userid 
-password password
[z/OS]
wsadmin.sh -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
[z/OS]
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:
[AIX Solaris HP-UX Linux Windows][IBM i]
wsadmin -conntype NONE -c "$AdminApp uninstall app"
[z/OS]
wsadmin.sh -conntype NONE -c "\$AdminApp uninstall app"
wsadmin.sh -conntype NONE -c '$AdminApp uninstall app'

使用 Jython:

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