3

1 つのインスタンスに約 10 個の EBS ボリュームがアタッチされています。以下はlsblk、それらのいくつかの例です。ここでは単純に xvdf または xvdp を特定の場所にマウントすることはできませんが、実際のポイントはマウントされる xvdf1、xvdf2、xvdp です。Pythonを使用して、xvdf、xvdpなどの下のすべてのポイントを反復処理できるスクリプトが必要です。私はpythonの初心者です。

[root@ip-172-31-1-65 ec2-user]# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvdf    202:80   0   35G  0 disk 
├─xvdf1 202:81   0  350M  0 part 
└─xvdf2 202:82   0 34.7G  0 part
xvdp   202:0    0    8G  0 disk 
└─xvdp1 202:1    0    8G  0 part
4

3 に答える 3

1
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
def parse(file_name):
        result = []
        with open(file_name) as input_file:
                for line in input_file:
                        temp_arr = line.split(' ')
                        for item in temp_arr:
                                if '└─' in item or '├─'  in item:
                                        result.append(item.replace('└─','').replace('├─',''))
        return result


def main(argv):
        if len(argv)>1:
                print 'Usage: ./parse.py input_file'
                return
        result = parse(argv[0])
        print result
if __name__ == "__main__":
   main(sys.argv[1:])

必要なものは以上です。lsblk の出力をより適切に解析するように変更できます。
使用法:
1. lsblk の出力をファイルに保存します。たとえば、次のコマンドを実行します: lsblk > output.txt
2.python parse.py output.txt

于 2015-08-03T12:03:16.990 に答える