Python 检查远程地址的剩余磁盘空间

0 投票
3 回答
5863 浏览
提问于 2025-04-18 11:01

我写了一个这样的脚本:

import os

disk = os.statvfs("/home/")



print "~~~~~~~~~~calculation of disk usage:~~~~~~~~~~"

totalBytes = float(disk.f_bsize*disk.f_blocks)

print("Total space : {} GBytes".format(totalBytes/1024/1024/1024))

totalUsedSpace = float(disk.f_bsize*(disk.f_blocks-disk.f_bfree))


print("Used space : {} GBytes".format(totalUsedSpace/1024/1024/1024))

totalAvailSpace = float(disk.f_bsize*disk.f_bfree)


print("Available space : {} GBytes".format(totalAvailSpace/1024/1024/1024))

这个脚本可以检查我电脑上的所有内容,但我还想通过我的电脑检查远程地址的情况。我该怎么做呢?比如,我想查看我的服务器的空间。需要帮助。

3 个回答

0

你可以用你的函数写一个简单的xml rpc服务器,然后把它放在你想要检查的每个远程节点上。接着,你再写一个收集脚本,去遍历所有的节点,并调用你远程的函数。

0

对于很多远程机器,我推荐使用 Ansible。你需要先定义好你的主机列表,但一旦你做好了,这个过程就变得非常简单:

ansible -m command -a 'df -h'
2

可以看看 fabric,这是一个工具,它提供了一个简单易用的Python接口,让你可以在远程服务器上执行SSH命令。

from fabric.api import run

def disk_free():
    run('df -h')

然后你就可以在任何服务器上运行这个命令:

server:misc$ fab disk_free -H vagrant@192.168.1.7

Executing task 'disk_free'
run: df -h
out: Filesystem                               Size  Used Avail Use% Mounted on
out: /dev/sda1                                7.3G  3.3G  3.7G  47% /
out: tmpfs                                    927M     0  927M   0% /dev/shm
out: /vagrant                                 409G  339G   71G  83% /vagrant

撰写回答