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
你可以用你的函数写一个简单的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