import subprocess
def volumeCheck(volume_name):
"""This function will check volume name is mounted or not.
"""
volume_name = raw_input('Enter volume name:')
volumeCheck(volume_name)
print 'volume_name=',volume_name
p = subprocess.Popen(['df', '-h'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p1, err = p.communicate()
pattern = p1
if pattern.find(volume_name):
print 'volume found'
else:
print 'volume not found'在运行的过程中,我总是得到错误的结果“找到卷”。
root@sr-query:/# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 938M 473M 418M 54% /
/dev/md0 938M 473M 418M 54% /
none 250M 4.9M 245M 2% /dev
/dev/md2 9.7M 1.2M 8.0M 13% /usr/config
/dev/md7 961M 18M 895M 2% /downloads
tmpfs 250M 7.9M 242M 4% /var/volatile
tmpfs 250M 0 250M 0% /dev/shm
tmpfs 250M 0 250M 0% /media/ram
**/dev/mapper/vg9-lv9 1016M 65M 901M 7% /VolumeData/sp
/dev/mapper/vg10-lv10
1016M 65M 901M 7% /VolumeData/cp**
root@sr-query:/#
root@sr-query:/#
root@sr-query:/# python volume_check.py
Enter volume name:raid_10volume
volume_name= raid_10volume
**volume found**
root@sr-query:/# 我输入了输出,这里没有列出,请检查df -h命令raid_10volume (只有2个卷sp和cp),然后它是如何到达其他部分的。我的代码出了什么问题?提前谢谢。
有没有其他方法来做这项工作!?
发布于 2012-10-18 19:00:58
pattern是一个字符串,所以当找不到模式时,find方法返回-1。您需要将比较行更改为:
if pattern.find(volume_name) != -1:https://stackoverflow.com/questions/12952962
复制相似问题