본문 바로가기

Linux

MegaRAID DISK show detail

dpdk-devbind.py Intel DPDK python Script를 기반으로 수정

https://doc.dpdk.org/guides/tools/devbind.html
https://github.com/ceph/dpdk/blob/master/tools/dpdk-devbind.py

 

ceph/dpdk

DPDK. Contribute to ceph/dpdk development by creating an account on GitHub.

github.com

 



def function_showserverall(): 
    function_systeminfo() 

    # check if MegaCli is installed, suppress any output 
    with open(os.devnull, 'w') as devnull: 
        ret = subprocess.call(['which', 'MegaCli'], 
                              stdout=devnull, stderr=devnull) 

        if ret == 0 and os.path.isfile("/opt/MegaRAID/MegaCli/MegaCli64"): 
            function_megaraid() 

    os.system("date") 


def main(): 
    '''program main function''' 

    parse_args() 
    do_arg_actions() 

    if b_flag == "show" or status_flag == "run": 
        function_showserverall()



if __name__ == "__main__": 
    main()


 

 

#!/usr/bin/env python 
# SPDX-License-Identifier: BSD-3-Clause 
# Copyright(c) 2010-2014 Intel Corporation 
# Copyright(c) 2017 Cavium, Inc. All rights reserved. 

from __future__ import print_function 
import sys 
import os 
import subprocess 
import os.path 

def function_megaraid(): 
#   print("MegaRAID: ") 
    try: 
        megaraid = '/opt/MegaRAID/MegaCli/MegaCli64' 
        megaraiddisk_list = subprocess.check_output("/opt/MegaRAID/MegaCli/MegaCli64 -PDlist -aALL | grep 'Media Error Count' | wc -l", shell=True) 
        megaraiddisk_list_total = int(megaraiddisk_list) 

        print("{}".format("-" * (47 + len(base_path)))) 
        print("MEGARAID DISK INFORMATION") 
        print("{}".format("-" * (47 + len(base_path)))) 
#       print("MEGA DISK COUNTS:", megaraiddisk_list_total) 

        command_MEGA1 = ['/opt/MegaRAID/MegaCli/MegaCli64','-PDlist','-aALL'] 
        process_MEGA1 = subprocess.Popen(command_MEGA1, stdout=subprocess.PIPE, universal_newlines=True) 

        command_MEGA2 = ['grep','Media Error Count'] 
        process_MEGA2 = subprocess.Popen(command_MEGA2, stdin=process_MEGA1.stdout, stdout=subprocess.PIPE) 

        megaraidoutput_disk = process_MEGA2.stdout.readlines() 
#       print("DISKS : ", megaraidoutput_disk[0].strip()) 

        megaraiddisk_value_input = 0 
        while megaraiddisk_value_input < megaraiddisk_list_total: 
#           print("DISK STATUS : ", megaraidoutput_disk[ + megaraiddisk_value_input ].strip() ) 

            if megaraidoutput_disk[ + megaraiddisk_value_input ].strip() == 'Media Error Count: 0': 
                print("MEGARAID DISK STATUS : ID [", megaraiddisk_value_input, "]", color.GREEN + "OK" + color.END ) 
            else: 
                print(color.RED + "MEGARAID DISK STATUS : " + color.END,"ID [", megaraiddisk_value_input, "] NEED TO CHECK") 

            megaraiddisk_value_input+=1 

    except subprocess.CalledProcessError: 
        print("MEGARAID: NONE") 

    hddstatusresult = subprocess.check_output ("/opt/MegaRAID/MegaCli/MegaCli64 -ShowSummary -aALL", shell=True) 
    print("{}".format("-" * (47 + len(base_path)))) 
    print("MEGARAID DISK INFORMATION SHOW DETAIL:") 
    print("{}".format("-" * (47 + len(base_path)))) 
    print(hddstatusresult.strip())

 

 

Screen Result

 

 

# ls -lh /opt/MegaRAID/MegaCli

install.log 
libstorelibir-2.so -> /opt/MegaRAID/MegaCli/libstorelibir-2.so.14.07-0 
libstorelibir-2.so.14.07-0 
MegaCli -> /opt/MegaRAID/storcli/storcli64 
MegaCli64