我有一个显示磁盘使用输出的 Linux 命令
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 2.8T 1.1T 1.7T 39% /data/disk2
/dev/sdc1 2.8T 1.1T 1.7T 41% /data/disk3
/dev/sdd1 2.8T 1.1T 1.7T 40% /data/disk4
我需要帮助在脚本(Python 或 Bash)中继续执行此操作,以便让我知道磁盘之间的差异是否超过 5%。如果它们的失衡率超过 5%,我将编写代码通过电子邮件发送结果。任何帮助将不胜感激。
最佳答案
这个怎么样:
import re
s = """
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 2.8T 1.1T 1.7T 39% /data/disk2
/dev/sdc1 2.8T 1.1T 1.7T 41% /data/disk3
/dev/sdd1 2.8T 1.1T 1.7T 40% /data/disk4
"""
regex = re.compile(r'\d{1,2}%')
result = [int(a[:-1]) for a in regex.findall(s)]
# [39, 41, 40]
如果你想在最后比较它们......
if max(result) - min(result) > 5:
print("Imbalanced!")
else:
print("Balanced!")
当然,您可以像这样调用操作系统级函数并获得它们的输出:
command_output = subprocess.check_output(['df', '-h']).decode('utf-8')
关于python - 找出磁盘空间差异的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44465442/