This commit is contained in:
Iu 2024-03-30 14:07:49 +03:00
parent 683fb8b6d8
commit 0bcb0af57e
2 changed files with 46 additions and 0 deletions

12
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,12 @@
{
"terminal.integrated.env.osx": {
"PYTHONPATH": "${workspaceFolder}/src",
},
"terminal.integrated.env.linux": {
"PYTHONPATH": "${workspaceFolder}/src",
},
"terminal.integrated.env.windows": {
"PYTHONPATH": "${workspaceFolder}/src",
}
}

34
src/main.py Normal file
View File

@ -0,0 +1,34 @@
import os
from shutil import disk_usage
import time
BS = 1024**2
def set_utilization(du, utilization_percent=0.6, baloon_filename='baloon'):
fs = os.path.realpath(du)
du = disk_usage(fs)
print(f'total: {int(du.total/ 2**30)}GB, used: {int(du.used/ 2**30)}GB, free: {int(du.free/ 2**30)}GB')
to_be_wasted = int((du.total * utilization_percent) - du.used)
print(f'to_be_wasted: {int(to_be_wasted/ 2**30)}GB')
if to_be_wasted < 0:
to_be_trimmed = abs(to_be_wasted)
baloon_size = os.path.getsize(os.path.join(fs, baloon_filename))
if baloon_size> to_be_trimmed:
os.truncate(os.path.join(fs, baloon_filename), baloon_size - to_be_trimmed)
else: print(f'can\'t trim {baloon_size} > {to_be_trimmed}')
elif to_be_wasted > 0:
with open(os.path.join(fs, baloon_filename) , 'ab') as f:
last = 0
while to_be_wasted > 0:
if time.time() - last > 1:
print('\r', end='')
print(f'left {int(to_be_wasted/ 2**30)}GB ', end='')
last = time.time()
write_size = min(to_be_wasted, BS)
f.write(b'x' * write_size)
to_be_wasted -= write_size
print('Done ')
set_utilization('.')