我制作了一个像这样的剧本
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))
它检查我的计算机的所有内容但我想通过运行此脚本来检查我的计算机上的远程地址。我怎样才能做到这一点?就像我想检查我的服务器的空间呢?需要帮助。
答案 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'