例如,我们运行大约 50 台服务器。
假设我想查看其中是否有任何一个即将填满分区。我可以创建一个df -h
在每个分区上运行的任务,但输出非常冗长。
我希望能够捕获输出,处理它,并仅返回超过 X% 的服务器
有没有什么办法可以用布料来实现这一点?
答案1
$ cat fabfile.py
from fabric.api import *
def crit_disk(warn=80,crit=90):
x = run("df -hP | awk 'NR>1{print $1,$5}' | sed -e's/%//g'")
drives = dict([y.split() for y in x.split('\n')])
for drive,percent in drives.iteritems():
if warn<int(percent)<crit:
print("WARN: %s at %d%%" % (drive,percent))
if int(percent)>crit:
print("CRIT: %s at %d%%" % (drive,percent))
这是一个快速尝试,展示如何使用织物来实现这一点。