使用 python 获取 Linux 中所有挂载文件系统的列表



我计划使用Shell,Python中的一组脚本自动清理Linux中的文件系统,我将使用Node创建一个简单的仪表板.js以允许更直观的方法。

我在 Shell 中有一个脚本,它已经清理了特定服务器中的文件系统 - 但我必须登录然后发出此命令。现在,我正在继续使用HTML/CSS/JS中的仪表板,以可视化所有存在空间问题的服务器。

我的想法是:创建一个 Python 脚本来登录并获取文件系统及其用法的列表并更新单个 JSON 文件,然后,我的仪表板使用此 JSON 来馈送屏幕。

我的问题是如何获取 Linux 中的文件系统列表及其使用情况?

要远程连接到 ssh 并检索包含文件系统和用法的列表,您可以使用 paramiko SSH 客户端和 df 命令,如下所示:

要使用 pip 问题安装帕拉米科:

sudo pip install paramiko

正则表达式模块应默认安装

import paramiko, re
server = "your_server_ip_or_name"
username = "your_ssh_user"
password = "your_ssh_password"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("df")
filesystems = []
for line in ssh_stdout.readlines()[1:]:
    line = re.sub('s+', ' ', line).strip()
    parameters = line.split(' ')
    usage_percent =  re.findall(r'd+', parameters[4])
    filesystems.append({'name' : parameters[0], 'usage' : usage_percent[0]})
print filesystems

它将生成一个包含键名称和用法的字典列表,如以下示例所示:

[{'usage': u'17%', 'name': u'/dev/root'}, {'usage': u'0%', 'name': u'devtmpfs'}, {'usage': u'0%', 'name': u'tmpfs'}, {'usage': u'9%', 'name': u'tmpfs'}, {'usage': u'1%', 'name': u'tmpfs'}, {'usage': u'0%', 'name': u'tmpfs'}, {'usage': u'31%', 'name': u'/dev/mmcblk0p6'}, {'usage': u'0%', 'name': u'tmpfs'}]

您可以使用命令

df

提供使用"-h"以人类可读格式(例如 1K 1M 1G(显示大小的选项。这是最常见的命令,但您还可以检查 dudi . 实际上,di提供了比df更多的信息。

最新更新