我正在尝试使用我的结构脚本用 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
上述事情的正确方法是什么?
答案 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)