簡體   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