【问题标题】:wsadmin + jython delete folderwsadmin + jython 删除文件夹
【发布时间】:2012-11-07 09:34:29
【问题描述】:

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

谢谢

【问题讨论】:

    标签: deployment websphere jython wsadmin


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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') 删除文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-24
        • 2019-05-12
        • 2017-01-06
        • 1970-01-01
        • 1970-01-01
        • 2015-07-07
        相关资源
        最近更新 更多