在Python中,如何获取Mac OS X中所有分区的列表?

水星00

我有一个与此处询问的问题类似的问题:查找包含给定文件的文件系统的大小和可用空间,但是该问题假定您已经了解该系统。

我有一个任务:对于数量不确定的机器(包括定期部署的新机器),我/需要一个python脚本,如果任何分区太满,可以向我报告。(是的,它是由icinga2部署的)。

我不要做的是手工制作和个性化脚本参数,以便每台机器将要检查的分区通知它。我运行该脚本,它只是向我报告系统上所有现有的分区。我让系统本身成为自己的权限,而不是从外部定义要检查的分区。这在linux上行之有效,正如上面链接所示,在linux中,我们可以解析/ proc中的文件以获得权威列表。

但是我缺少的是一种从python获取Mac OS X中可靠分区列表的方法。

Mac OS X没有/ proc,因此无法进行解析。我不想调用外部二进制文件,因为我的目标是构建可在Linux和Mac客户端上运行的python脚本。有任何想法吗?

薄饼

由于需要跨平台(Mac和Linux)选项,因此可以使用在两个平台上都可用df命令。您可以通过subprocess访问它

我已经在OS X 10.11和Ubuntu Linux 15上对此进行了测试

import subprocess

process = subprocess.Popen(['df -h | awk \'{print $(NF-1),$NF}\''], stdout=subprocess.PIPE, shell=True)
out, err = process.communicate()
out = out.splitlines()[1:] # grab all the lines except the header line
results = {}
for i in out:
    tmp = i.split(' ')
    results[tmp[1]] = tmp[0]

for key, value in results.items():
    print key + " is " + str(value) +" full"

在Mac上输出

/dev is 100% full
/net is 100% full
/ is 82% full
/home is 100% full

在Linux上输出

/dev is 1% full
/run/lock is 0% full
/run is 1% full
/ is 48% full

这是您可以不用的方法 awk

import subprocess

process = subprocess.Popen(['df', '-h'], stdout=subprocess.PIPE)
out, err = process.communicate()
out = out.splitlines()[1:] # grab all the lines except the header line

for i in out:
    tmp = i.split(' ')
    tmp2 = []
    for x in tmp:
        if x != '':
            tmp2.append(x)
    print tmp2[-1] + " is " + tmp2[-2] + " full" 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Mac OS X中修复System Python的权限?

来自分类Dev

Mac OS X的“ Time Machine”是否备份双启动计算机上的所有分区吗?

来自分类Dev

如何获取Python中所有内置函数的列表?

来自分类Dev

Contiki OS中所有正在运行的进程的列表

来自分类Dev

如何在Bash脚本中获取Mac OS X的代理信息?

来自分类Dev

获取Netsuite中所有角色的列表

来自分类Dev

获取yii中所有州的列表

来自分类Dev

获取Qt中所有QPushButton的列表

来自分类Dev

python中所有可能的列表合并

来自分类Dev

Python列表中所有元素的类型

来自分类Dev

python中所有可能的列表块

来自分类Dev

如何查询特定分区中所有datom的datomic?

来自分类Dev

如何获取目录os x中的文件列表?

来自分类Dev

如何使用Swift从OS X获取MAC地址

来自分类Dev

如何获取RethinkDB表中所有文档中所有键的列表?

来自分类Dev

在OS X中获取Mac地址的Shell命令

来自分类Dev

获取列表中所有索引的所有结果

来自分类Dev

获取所有salesforce对象中所有字段的列表

来自分类Dev

从Mac OS X调整NTFS分区的大小?

来自分类Dev

如何获取DocumentDB文档中所有集合的列表?

来自分类Dev

如何获取Laravel中所有型号的列表?

来自分类Dev

如何获取Yocto中所有可用目标的列表?

来自分类Dev

如何获取Powershell中所有Azure VM的列表

来自分类Dev

如何获取C中所有驱动器的列表

来自分类Dev

如何获取matplotlib中所有标记的列表?

来自分类Dev

如何获取Qt C ++中所有可用主题的列表?

来自分类Dev

如何获取Linux中所有打开的命名管道的列表?

来自分类Dev

如何获取Play商店中所有热门应用的列表

来自分类Dev

如何获取Dart中所有已加载库的列表?

Related 相关文章

热门标签

归档