用织物读取日志

时间:2013-06-14 07:09:15

标签: python linux shell ssh fabric

我正在尝试使用我的结构脚本用 tail -f 读取日志:

@task
def log(service):
    sudo("tail -n 50 -f " + service)

使用 -f 选项,您必须通过 Ctrl-C 手动终止尾部。它与Fabric版本无法正常工作( fab log:), Ctrl-C 不会终止远程命令:

<remote-host>$ ps aux | grep tail
root     27314  0.0  0.0  33380  1744 ?        Ss   10:49   0:00 sudo -S -p sudo password: /bin/bash -l -c tail -n 50 -f /var/log/karma/gunicorn_gevent_error.log
root     27315  0.0  0.0   5592   584 ?        S    10:49   0:00 tail -n 50 -f /var/log/karma/gunicorn_gevent_error.log
... <they stack> ...
mezhenin 27337  0.0  0.0   7788   864 pts/8    R+   10:49   0:00 grep tail

上述事情的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

我找到了解决此问题的正确方法。我需要使用env.remote_interrupt = True

env.remote_interrupt = True
env.LOG = '<path to log>'

@task
def log():
    assert(env.remote_interrupt == True)
    with settings(warn_only=True):
        sudo("tail -n 50 -f " + env.LOG)