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

标签 python json linux shell automation

我计划使用 Shell、Python 中的一组脚本来自动化 Linux 中的文件系统清理过程,并且我将使用 Node.js 创建一个简单的仪表板,以实现更直观的方法。

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

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

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

最佳答案

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

使用 pip 问题安装 paramiko:

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'}]

关于python - 使用python获取Linux中所有已挂载的文件系统的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42873222/

相关文章:

json - 通过 Postman 使用 PUT 请求更新 Contentful 帖子

linux - 当没有人等待条件时 pthread_cond_broadcast 的性能

c - 在 C 中没有锁的线程之间共享 bool 值

python - 如何像 Python 中的原始字符串一样处理返回/存储的字符串?

python - 内存零钱

json - 层次结构中存在循环!”json

linux - 为什么进程的虚拟地址空间有空洞

python - 如何将用户本地 python 解释器设置为集群上的默认解释器

python - 在 python 2.5 中打印有关异常的信息?

javascript - 单击按钮时的 AJAX JSON 数据填充 - 数组问题