У меня есть сценарий python (ниже), который не дает точных результатов. Я уверен, что что-то испортил, но не могу понять. Буду признателен за любые материалы или советы.Python скрипт для определения свободного пространства дает неточные результаты
Цель сценария - сообщить оставшийся процент от общего объема дискового пространства в конкретной точке монтирования.
#!/usr/bin/python
import os
disk = os.statvfs("/Volumes/Promotions/")
totalBytes = float(disk.f_bsize*disk.f_blocks)
totalUsedSpace = float(disk.f_bsize*(disk.f_blocks-disk.f_bfree))
totalAvailSpace = float(disk.f_bsize*disk.f_bfree)
used = float(totalUsedSpace/1024/1024/1024/1024/1024)
avail = float (totalAvailSpace/1024/1024/1024/1024/1024)
total = float (totalBytes/1024/1024/1024/1024/1024)
percent = ((used)/(total)*100)
import smtplib
SERVER = "webmail.****.com"
FROM = "***@***.com" TO = ["***@***.com"] # must be a list
SUBJECT = "Hello!"
TEXT = "Total Available Remaining Percent Full\n" "%.2fTB" % (total) + " " "%.2fTB" % (avail) + " " "%.2fTB" % (used) + " " "%.2f%%" % (percent)
# Prepare actual message
message = """\
From: %s
To: %s
Subject: %s
%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()
выше отправляет вывод из следующих действий:
Total 0.2TB Available 0.00TB Remaining 0.01TB Percent Full 83.12%
Вопрос является выше пути фактически 138 ТБ в размере с 23,3 ТБ доступного
Любой вход или совет были бы оценены ,
Спасибо! Терри
Почему вы разделив на 1024 5 раз в 'float' линии? 1 TiB - '1024 ** 4' байт, а не' 1024 ** 5'. –
Возможно, вы имеете в виду «Осталось»? –
gnibbler - я ошибся Оставшийся - спасибо, что указали это. Я намеревался использовать. –