python检查远程地址的可用磁盘空间

时间:2014-06-25 11:46:44

标签: python

我制作了一个像这样的剧本

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 :(得分:2)

Checkout fabric,一个提供高级python API的工具,用于在远程服务器上执行SSH命令。<​​/ p>

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

答案 1 :(得分:0)

您可以使用您的函数编写一个简单的xml rpc服务器,并将其部署在您要检查的每个远程节点上。然后编写一个集合脚本来迭代所有节点并激活远程函数。

答案 2 :(得分:0)

对于大量远程计算机,我建议使用Ansible。你必须预先定义你的主机列表,但是一旦你这样做了,就像这样简单:

ansible -m command -a 'df -h'