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 用戶端來使用下列指令行呼叫語法:
wsadmin [-h(help)]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_optionwsadmin.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格式。 與舊版不同,在 Windows 作業系統上,第 8 版產品不支援在一個-javaoption選項中一起使用多個 Java 選項。在 Windows 作業系統上,如果選項包含等號 (
=) 或分號 (;) ,則必須以雙引號 (") 括住選項; 例如:
Windows 作業系統會將指令行引數中的等號 (wsadmin -javaoption "-Da.b.c=3"=) 或分號 (;) 視為空格。 wsadmin 工具要求用雙引號括住含空格的引數。對於轉移使用者: 對於 WebSphere Application Server 8.5版, wsadmin.bat 中的 %javaoption% 和 wsadmin.sh 中的 $javaOption 位於 JAVA_EXE 引數的結尾。 這可讓您置換 Java 系統內容,例如 CLIENTSOAP 和 CLIENTSAS 內容。 - -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.propwsadmin -f c:/text.py server1 dbuser dbpassword user1 userpassword -p c:/noecho.propwsadmin.sh -f text.py server1 dbuser dbpassword user1 userpassword -p noecho.propdbpassword和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. 對於每一種連線類型,您可以指定連線的其他屬性。
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 程序。
請搭配類別路徑字串來使用下列選項:
/MyDir/Myjar.jar;/yourdir/yourdir.jar/home/MyDir/Myjar.jar;/yourdir/yourdir.jarc:/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 選項、日誌位置,且會將追蹤附加於日誌檔。
wsadmin -jobid wsadmin_test_1 -tracefile /temp/wsadmin_test_1.log -appendtrace truewsadmin -jobid wsadmin_test_1 -tracefile c:/temp/wsadmin_test_1.log -appendtrace truewsadmin.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 時,請輸入下列範例程式碼: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
wsadmin -javaoption "-Xms128m -Xmx256m" -f test.jacl或wsadmin -javaoption -Xms128m -javaoption -Xmx256m -f test.jaclwsadmin.sh -javaoption "-Xms128m -Xmx256m" -f test.jacl
使用 Jython:
wsadmin -lang jython -javaoption -Xms128m -javaoption -Xmx256m -f test.py
wsadmin -lang jython -javaoption "-Xms128m -Xmx256m" -f test.py或wsadmin -lang jython -javaoption -Xms128m -javaoption -Xmx256m -f test.pywsadmin.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。
- 在 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。
- 在 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"
wsadmin.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')"
wsadmin.sh -lang jython -conntype NONE -c "\AdminApp.uninstall('app')"或wsadmin.sh -lang jython -conntype NONE -c 'AdminApp.uninstall('app')'