cod*_*kel 11 python linux filesystems system-calls
从绝对文件路径开始,我想获取以下信息:
我知道在许多情况下2和3可能是未定义的(例如对于环回,ramfs,encyrpted设备),这是完全正常的.我也知道如何使用shell和系统工具df和/ /sys或system来获取该信息/proc .请参阅此问题以供参考.
但是,我正在寻找使用Python 3.5以编程方式执行此操作的最少cumbersone方法.这意味着:
/proc或的内容/sys(可能会有变化或取决于内核配置?)到目前为止,我正在使用os.stat()路径来获取块设备的主要和次要号码stat_result.st_dev.但是,正确的方法是什么?
有例如
/proc/mounts/proc/partitions/sys/dev/block/<major>:<minor>注意:
关于安装块设备的分区,/proc/mounts并且/proc/partitions似乎是规范信息源(它是OK).对于UUID,标签,连续出版物等我目前使用udevadm并解析输出:
def get_udev_properties(dev_name):
cmd = ["udevadm", "info", "--query=property", "--name", dev_name]
result = subprocess.run(cmd, stdout=subprocess.PIPE)
return parse_properties(result.stdout)
Run Code Online (Sandbox Code Playgroud)
进一步说明:从我的实际问题中抽象出来,可以提出更一般的问题:
这将意味着一些实用程序和分析输出。使用 os.popen 启动,您可以用来bklkid查找 uuid,读取/etc/mtab文件许可来了解您的系统中安装了哪个文件系统,从而了解安装点。sfdisk -l输出为您提供磁盘结构。hdparm -I /dev/xxx会给你序列号。