1

我想使用独立的 wsadmin 执行部署后脚本。它应该删除配置文件(/profile/temp /profile/myCacheFolder)上的所有缓存。我的问题是,是否可以使用 wsadmin 执行此操作?如果有怎么办?我可以以某种方式使用 AdminConfig.deleteDocument 或类似的东西吗?

谢谢你

4

2 回答 2

0

使用AntAgentMBean,您可以上传 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 上以处理被阻止的文件/目录。

于 2012-11-08T06:50:27.940 回答
0

wsadmin.sh 可以使用 Jython 启动,Jython 是带有 Java 的 Python。

所以你可以使用 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') 删除文件。

于 2016-03-04T03:22:59.383 回答