python - 找出磁盘空间差异的脚本

标签 python linux bash shell

我有一个显示磁盘使用输出的 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/

相关文章:

bash - 如何在搜索模式中使用带有 sed 的 xargs

c++ - 在 Mac/Linux 上查找已安装的应用程序

python - 系统服务不执行通知发送

python - 如何在可执行文件上运行脚本?

python - 执行 GUI onclick 命令时,将变量值从一个模块返回到另一个模块时出现问题

Python Gmail Api Base64 解码电子邮件正文中的奇怪字符

java - 像 Python 字典一样循环 Java HashMap?

python - 从数组sqlite中获取组件

c++ - pcap_dump() 仅对用户降低权限

linux - 在 shell -n 中回显没有打印正确的东西