If you need to work with LVM in your scripts but haven’t found a good method to access details about Logical Volume Groups, here’s a simple Python script that will print the details about any volumes on your system. This could be useful for writing a partition check script for your MySQL data directory (if you’re not using a standard monitoring system like Nagios).
import sys
import os
import commands
import subprocess
import select
def lvm():
print ""
LVM_PATH = "/sbin"
LVM_BIN = os.path.join(LVM_PATH, 'lvm')
argv = list()
argv.append(LVM_BIN)
argv.append("lvs")
argv.append("--nosuffix")
argv.append("--noheadings")
argv.append("--units")
argv.append("b")
argv.append("--separator")
argv.append(";")
argv.append("-o")
argv.append("lv_name,vg_name,lv_size")
process = subprocess.Popen(argv, stdout=subprocess.PIPE)
output = ""
out = process.stdout.readline()
output += out
lines = output.splitlines()
for line in lines:
line = line.strip()
words = line.split(";")
lvname = words[0].strip()
vgname = words[1].strip()
lv_size = int(words[2])
print '''
%s
%s
%s
'''%(lvname, vgname, lv_size)
print ""
lvm()





