我计划使用 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/