解决ServerStatus云探针无法获取硬盘信息一例

tengxunyun cera

不知道为啥有些VPS上无法通过psutil获取硬盘信息,使用psutil.disk_partitions()总是返回空

ServerStatus里获取硬盘信息的核心代码如下:

def get_hdd():
	valid_fs = [ "ext4", "ext3", "ext2", "reiserfs", "jfs", "btrfs", "fuseblk", "zfs", "simfs", "ntfs", "fat32", "exfat", "xfs" ]
	disks = dict()
	size = 0
	used = 0
	for disk in psutil.disk_partitions():
		if not disk.device in disks and disk.fstype.lower() in valid_fs:
			disks[disk.device] = disk.mountpoint
	for disk in disks.itervalues():
		usage = psutil.disk_usage(disk)
		size += usage.total
		used += usage.used
	return int(size/1024.0/1024.0), int(used/1024.0/1024.0)

使用如上代码后,在不支持psutil获取硬盘信息的VPS上就会返回0

所以就重新修改一下,改为使用os.statvfs方法来获取硬盘信息

p.s 使用statvfs方法仅能获取到指定挂载路径的信息

def get_hdd():
    import os
    hd={}
    #使用statvfs方法仅能获取到指定挂载路径的信息,使用df -h查看
    disk = os.statvfs("/")
    hd['capacity'] = int(disk.f_bsize * disk.f_blocks/1024/1024)
    hd['used'] = int(disk.f_bsize * disk.f_bfree/1024/1024)
    return hd['capacity'],hd['used']

修改后即可成功获取到 挂载点为 根目录 / 的磁盘信息

cera aliyun tengxunyun cloudiplc

相关推荐

多服务器云探针|云监控|ServerStatus|Toyo 初缘Cvps小站美化版 WEB 下载 附带原始一键脚本

本文转自:cvps.top   简介 ServerStatus-Toyo版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~,该云监控(云探针)是ServerStatus( https://github.com/tenyue/ServerStatus )项目的优化/修改版。 逗比项目地址:https://github.com/ToyoDAdoubi/ServerStatus-Toyo 在线演示:tz.7s.work 初缘Cvps小站美化版 目录介绍: clients 客户端文件 server 服务端文件 web 网站文件 更新说明: https://www.hostloc.com/thread-545992-1-1.html 在此模板上进行修改美化。 Img文件夹丢了很多图片,自行引用。 安装教程: 执行下面的代码下载并运行脚本。 wget –N —no–check–certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/status.sh && chmod +x status.sh 下载脚本后,根据需要安装客户端或者服务端:(服务端 = 例子:tz.7s.work 主端   客户端 = 需要监控的VPS) # 显示客户端管理菜单 bash status.sh c # 显示服务端管理菜单 bash status.sh s 运行脚本后会出现脚本操作菜单,选择并输入1就会开始安装。 一开始会提示你输入 网站服务器的域名和端口,如果没有域名可以使用IP地址。 简单步骤: 首先安装服务端,安装过程中会提示: 是否由脚本自动配置HTTP服务(服务端的在线监控网站)[Y/n] # 如果你不懂,那就直接回车,如果你想用其他的HTTP服务自己配置,那么请输入 n 并回车。 # …

ServerStatus云探针Windows版客户端

ServerStatus中文版是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针。 官方只有linux客户端。今天在大佬的博客里看到他写了个Windows版的客户端。 客户端下载地址:点击 使用教程 解压客户端。 修改client.cfg内服务器信息。 运行client.exe 。 添加到自启动。

cloudflare最新ddns脚本 2020.5.2号 解决老版本脚本无法更新ip

1、前言 服务器 IP 总是变,没事就会变个新的,这时候就需要一个 Dynamic Domain Name Server 来保证实时的 #DNS# 更换。 当然首先这个需要你的 DNS 解析商做配合,本文则采用 Cloudflare+#DDNS#+Shell 2、准备 准备工具 Cloudflare 的 Global #API# Cloudflare 解析的域名一个 前提要素 Curl Wget 已安装 3、#DDNS# 获取新 IP 地址 Shell 脚本 下载地址:[ 链接 ] #!/usr/bin/env bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # # Dynamic Domain Name Server (Cloudflare API) # # Author: StarryVoid <[email protected]> # Intro: https://blog.starryvoid.com/archives/313.html …

ServerStatus|Hotaru云探针的安装与配置

简介 APTX在博客上发布了基于ServerStatus-Toyo修改的云探针,但是评论上说有人不会配置,建议出个教程。那我就在本博客写一个教程吧。 脚本来自:https://www.aptx.xin/serverstatus-hotaru.html Github:https://github.com/CokeMine/ServerStatus-Hotaru   服务端 安装 wget https://raw.githubusercontent.com/CokeMine/ServerStatus-Hotaru/master/status.sh bash status.sh s 1、选择1,配置服务端 2、没什么需求的话,端口建议默认就好 3、如果本地没装别的如Nginx或者Apache之类的,直接Y就好 4、绑定域名或IP访问 5、端口自主选择 6、添加客户端:选择7后选1 剩下的信息自己填就好了 7、删除(修改)服务端:选7后在选择 服务端 安装 bash status.sh c 后选1然后按照服务端填写的即可 修改方法 已经安装了原版想换到APTX这个版本的话 配置文件:/usr/local/ServerStatus/server/config.json备份并自行添加Region   卸载ServerStatus-Toyo安装ServerStatus-Hotaru替换配置文件,重启ServerStatus

微信扫一扫,分享到朋友圈

解决ServerStatus云探针无法获取硬盘信息一例