]> code.delx.au - monosys/blob - checkspace
multiboot-setup: support Debian10 installer
[monosys] / checkspace
1 #!/usr/bin/env python3
2
3 from __future__ import division
4
5 import os
6 import sys
7
8 def pp_size(size):
9 suffixes = ["", "KiB", "MiB", "GiB"]
10 for i, suffix in enumerate(suffixes):
11 if size < 1024:
12 break
13 size /= 1024
14 return "%.2f %s" % (size, suffix)
15
16
17 def check_path(path):
18 stat = os.statvfs(path)
19 total = stat.f_bsize * stat.f_blocks
20 free = stat.f_bsize * stat.f_bavail
21 warn = False
22
23 if total < 5*1024*1024*1024:
24 if free < total * 0.05:
25 warn = True
26 elif free < 2*1024*1024*1024:
27 warn = True
28
29 if warn:
30 print("WARNING! %s has only %s remaining" % (path, pp_size(free)))
31
32
33 def main():
34 paths = sys.argv[1:]
35 if not paths:
36 print("Usage: %s path" % sys.argv[0])
37 sys.exit(1)
38 for path in paths:
39 check_path(path)
40
41 if __name__ == "__main__":
42 main()
43