该脚本的作用是检查指定路径的磁盘使用情况,并根据使用情况进行相应的操作。
具体脚本功能如下:
- 导入了 psutil 和 docker 模块。
- 定义了一个名为 showDiskInfo 的函数,它接收一个路径参数,并使用 psutil.disk_usage() 函数获取该路径的磁盘使用情况。然后,将磁盘使用情况打印输出,并将字节转换为 GB 单位,并打印出总大小、已使用、未使用和使用百分比。
- 定义了一个名为 pruneImages 的函数,它使用 docker.DockerClient 对象连接到 Docker 引擎,并调用 images.prune() 方法清理未使用的镜像。
- 调用 showDiskInfo(‘/’) 函数来获取根路径的磁盘使用情况,并将结果保存在 DISKINFO 变量中。
- 如果磁盘使用百分比大于80%,则打印 “大于80” 并调用 pruneImages() 函数清理未使用的 Docker 镜像;否则,打印 “小于80”。
简单来说,该脚本的目的是检查根路径的磁盘使用情况,如果使用超过80%,则清理 Docker 引擎中的未使用镜像。
#!/bin/python3
import psutil
import docker
#定义函数,参数为路径
def showDiskInfo(path):
G = 1024*1024*1024
diskinfo = psutil.disk_usage(path)
print(path, diskinfo)
#将字节转换成G
print('%s 大小: %dG, 已使用: %dG, 未使用: %dG, 使用百分比:%d%%'%\
(path, diskinfo.total//G, diskinfo.used//G, diskinfo.free//G,diskinfo.percent))
return diskinfo.percent
def pruneImages():
client = docker.DockerClient(base_url='unix://var/run/docker.sock',version='auto')
# print(client.ping())
try:
client.images.prune(filters={
'dangling': False})
print("prune images successfully")
except Exception as e:
print(e)
DISKINFO = showDiskInfo('/')
if DISKINFO > 80:
print("大于80")
pruneImages()
else:
print("小于80")