86 lines
1.8 KiB
Python
Executable File
86 lines
1.8 KiB
Python
Executable File
#!/usr/bin/python2
|
|
|
|
import os
|
|
|
|
#fileoperations
|
|
file = open("/proc/partitions", "r")
|
|
parts = file.read()
|
|
file.close()
|
|
file = open("/proc/mounts", "r")
|
|
mounts = file.read()
|
|
file.close()
|
|
|
|
#definitions
|
|
partitions = []
|
|
blocks = []
|
|
mountpoints = []
|
|
|
|
# getting all local partitions (regardless if mounted or not)
|
|
for line in parts.split("\n"):
|
|
if line and "name" not in line and "sr0" not in line:
|
|
if line.split()[2] != "1":
|
|
partitions.append("/dev/" + line.split()[3])
|
|
blocks.append(line.split()[2])
|
|
|
|
|
|
hold="nothing"
|
|
holdblocks = 0
|
|
blockcount = 0
|
|
counter = 0
|
|
for part in partitions:
|
|
if hold in part:
|
|
print "part %s contains hold %s" %(part, hold)
|
|
blockcount = blockcount + int(blocks[counter])
|
|
print blockcount
|
|
else:
|
|
print "part %s does not contain hold %s" %(part, hold)
|
|
hold = part
|
|
holdblocks = blocks[counter]
|
|
blockcount = 0
|
|
counter += 1
|
|
|
|
|
|
|
|
|
|
|
|
exit()
|
|
#getting mountpoints to devices
|
|
for item in partitions:
|
|
for line in mounts.split("\n"):
|
|
if line and item in line:
|
|
mountpoints.append(line.split()[1])
|
|
break
|
|
# mountpoints.append("%s not mounted" %(item))
|
|
|
|
|
|
|
|
|
|
print "partitions: %s\nblocks: %s\nmountpoints: %s" %(partitions, blocks, mountpoints)
|
|
|
|
|
|
|
|
exit()
|
|
|
|
# given paths(mountpoints)
|
|
path=("/boot", "/", "/dev/sda6")
|
|
|
|
#output head
|
|
print "mountpoints\tfree megabytes"
|
|
print "------------------------------"
|
|
|
|
#work path tuple
|
|
for mountpoint in path:
|
|
#check if given path is a mountpoint
|
|
# if os.path.ismount(mountpoint):
|
|
#create statvfs object
|
|
fs = os.statvfs(mountpoint)
|
|
#calculate free megabytes
|
|
freembytes = fs.f_bavail * fs.f_bsize / 1024**2.0
|
|
#output
|
|
print "%s\t\t%.1f MB" %(mountpoint, freembytes)
|
|
# else:
|
|
# print "error: given path is not a mountpoint"
|
|
|
|
|
|
# end of file
|