1

在 python 脚本中有一个带有这样参数的命令

ThreadDump('true', '位置', 服务器名)

上面的命令是一个 wlst 命令,它为该服务器获取线程转储,并将转储文件重定向到该位置以及该位置中的该文件。

但是 ThreadDump() 是在从 1 到 6 的 for 循环中,因此线程转储必须发生 5 次,并且每次转储信息都必须附加到文件中。

使用 >& 选项将 python 文件的整个输出尝试到另一个文件,但问题是有一个 CRON 作业正在运行,并且原始转储信息正在被新信息重写。

所以,只需要重定向并附加上面的命令

ThreadDump('true', 'location', 'servername') 到文件 >> /dir/newdir/file

或 ThreadDump('true', 'location', 'servername') 到文件 >& /dir/newdir/file

4

2 回答 2

1

如果您可以使用文件中的 threaddump 重定向脚本的输出,并且唯一的问题是运行此脚本的 cron 作业,请尝试编辑 crontab 以在其中添加 >>(2>&1 用于将 stderr 重定向到 stdout):

*/15 * * * * /path/to/shell/script.sh >> /www/logs/script.log 2>&1
于 2013-04-16T18:05:25.990 回答
0

使用原始代码示例会更容易理解,但我认为也许你可以做类似的事情

import os
import fileinput

for i, whatever in enumerate(list_of_threads_or_something):
     ThreadDump('true', 'location' + str(i), servername)
     # do whatever else you need to do

locations = ['location'+str(i) for i in range(6)]
with fileinput.input(locations) as f, open('location', 'w') as fout:
    for line in f:
        fout.write(line)

for loc in locations:
    os.remove(loc)

'location'根据需要更改

于 2013-04-16T18:49:35.073 回答