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