我直接在我的脚本中使用 fabric.api.local。例如,

织物测试.py

from fabric.api import local

local('echo hello world')
local('ls')

如果我在没有任何 io 重定向的情况下执行它,一切都很好
$ python fabric_test.py
[localhost] local: echo hello world
hello world
[localhost] local: ls
fabric_test.py  test.log

如果我执行它并将输出重定向到一个文件,输出的顺序就会困惑。
为什么?当我在某些 cronjob 中使用 fabric 并将输出发送到日志文件时,这个问题真的很烦人。
$ python fabric_test.py > test.log
$ cat test.log
hello world
fabric_test.py
test.log
[localhost] local: echo hello world
[localhost] local: ls

最佳答案

这是因为,fabric 本质上将您指定的任务作为单独的子进程执行。因此,子进程的输出不是结构文件的输出。这不是一个新问题,已经在 before 中进行了讨论,请查看解决方法。

关于python - 将 Fabric 输出重定向到文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26544240/

10-15 14:51