2012-11-07 152 views
1

我想使用獨立的wsadmin來執行後期部署腳本。它應該刪除配置文件(/ profile/temp/profile/myCacheFolder)上的所有緩存。我的問題是,是否可以用wsadmin做到這一點?如果是這樣如何?我能以某種方式使用AdminConfig.deleteDocument或類似的東西嗎?wsadmin + jython刪除文件夾

謝謝

回答

0

隨着AntAgent的MBean,您可以上傳Ant腳本,然後調用它的遠程節點上:

http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/mbeanDocs/AntAgent.html

from java.lang import String 
import jarray 

fileContent = '<project name="cleanup" default="cleanup"><target name="cleanup"><delete dir="${user.install.root}/temp" /><delete dir="${user.install.root}/wstemp" /></target></project>' 
antAgent = AdminControl.makeObjectName(AdminControl.queryNames('WebSphere:*,type=AntAgent,process=dmgr')) 

str = String(fileContent) 
bytes = str.getBytes() 

AdminControl.invoke_jmx(antAgent, 'putScript', [String('cleanup.xml'),bytes], jarray.array(['java.lang.String', '[B'], String)) 

AdminControl.invoke_jmx(antAgent, 'invokeAnt', [jarray.array([], String), String('cleanup.xml'), String('cleanup')], jarray.array(['[Ljava.lang.String;', 'java.lang.String', 'java.lang.String'], String)) 

fileContent變量你Ant腳本,你可能需要調整它多一點,特別是在Windows上,以處理被阻止的文件/目錄。

0

wsadmin.sh可以使用Jython啓動,Python是Java。

所以,你可以使用Python缺省類: import os os.rmdir('/a/b/c')

另外,如果你的系統是Unix: import os os.sys('rm -r /a/b/c') or os.system('rm -r /a/b/c')

上述命令將刪除/ A/B目錄 'C'。 使用os.remove('filename')刪除文件。