繁体   English   中英

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

[英]Get a list of all mounted file systems in Linux with python

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

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

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

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

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

要使用pip问题安装paramiko:

sudo pip install paramiko

regex模块应默认安装

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 实际上, didf提供的信息更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM