[英]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)。這是最常見的命令,但您也可以檢查du
和di
。 實際上, di
比df
提供的信息更多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.