我试图执行这个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/"
完全相同。
为什么会有这么大的差异?
答案 0 :(得分:0)
我不确定为什么这个命令花了这么长时间。你考虑过使用Salt的python api吗? https://docs.saltstack.com/en/latest/ref/clients/index.html#python-api