我计划使用Shell,Python和I中的一组脚本自动执行在Linux中清理文件系统的过程,并使用Node.js创建一个简单的仪表板,以实现更直观的方法。
我在Shell中有一个脚本,它已经清理了特定服务器中的文件系统 - 但是我必须登录然后发出这个命令。现在我正在使用HTML / CSS / JS中的仪表板来显示所有存在空间问题的服务器。
我的想法是:创建一个Python脚本来登录并获取文件系统列表及其用法并更新单个JSON文件,然后,我的仪表板使用此JSON来提供屏幕。
我的问题是如何获取Linux中的文件系统列表及其用法?
答案 0 :(得分:2)
要远程连接到ssh并使用文件系统和用法检索列表,您可以使用paramiko SSH client和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'}]
答案 1 :(得分:0)
您可以使用命令
df
使用'-h'提供以人类可读格式(例如,1K 1M 1G)显示大小的选项。这是最常用的命令但是
您还可以查看du
和di
。 di
实际上提供了比df
更多的信息。