花了很长时间使用python执行saltstack命令

时间:2015-10-29 03:34:07

标签: python multithreading python-2.7 salt-stack

我试图执行这个saltstack命令 cmd = "/usr/local/bin/salt -L 'target' cp.get_dir salt://allapps/V001 /u02/tomcat-8.0.24/8080/webapps/" output = os.popen(cmd).readlines()使用python。 我已经并行启动了8个线程来运行此命令,但每个线程花费大约5分钟才能完成。 但我在终端或python控制台中独立运行此命令,只需要2-3秒即可完成。 首先我认为这是因为readlines()消耗了大量内存,但是当我删除readlines()只是为了运行带有os.popen()的shell命令时,它还需要花费5分钟。 我不知道为什么运行这个命令需要这么多时间,对此有什么解决方案吗? Thx家伙

我发现执行除output = os.popen("/usr/local/bin/salt -L 'target' cp.get_dir salt://allapps/V001 /u02/tomcat-8.0.24/8080/webapps/")以外的output = os.popen(cmd)消耗约5秒。 变量cmd"/usr/local/bin/salt -L 'target' cp.get_dir salt://allapps/V001 /u02/tomcat-8.0.24/8080/webapps/"完全相同。 为什么会有这么大的差异?

1 个答案:

答案 0 :(得分:0)

我不确定为什么这个命令花了这么长时间。你考虑过使用Salt的python api吗? https://docs.saltstack.com/en/latest/ref/clients/index.html#python-api