홈페이지 » 어떻게 » 헤드리스 Linux 서버용 하드 드라이브 모니터 스크립트

    헤드리스 Linux 서버용 하드 드라이브 모니터 스크립트

    최신 하드 드라이브에는 S.M.A.R.T라는 내부 메커니즘이 있습니다. 하드 디스크가 언제 실패하는지 알 수 있습니다. 그런 실패 이전에 이메일을 보내는 것이 서버의 좋지 않을까요??

    개요

    "mdadm"(소프트웨어 RAID 관리 용) 및 "Palimpsest Disk Utility"(Ubuntu LiveCD에서 사용됨)와 같은 프로그램은 S.M.A.R.T 정보를 사용하여 디스크가 언제 또는 실패했는지 알려줍니다. 그러나 헤드리스 서버 (GUI 없음)에는 너무 늦기 전에 계류중인 운명을 알리는 서비스가 없습니다. 또한 수동으로 서버에 로그인하지 않고 어떻게 알 수 있습니까??

    이 스크립트는 cron을 사용하여 하루에 한 번 실행될 때 시스템의 하드 드라이브 불량 섹터 수가 고의적으로 "디스크 불량"임계 값보다 낮은 한계에 도달했는지 경고하고 시스템의 관리자에게 경고를 전자 메일로 보냅니다.

    전제 조건 및 가정

    • "Linux에서 전자 메일 경고 설정 방법"안내서를 사용하여 서버에 대한 전자 메일 지원을 이미 설정했습니다.
    • 데비안 기반 시스템을 사용하고 있습니다..
    • * 하드웨어 RAID 컨트롤러를 사용하지 않습니다..
    • 내가 VIM을 편집기 프로그램으로 사용하는 것을 보게 될 것이다. 이것은 익숙하기 때문에 ... 당신이 원한다면 다른 편집기를 사용할 수도있다..

    * 하드웨어 RAID 컨트롤러가이 정보에 대한 시스템의 액세스를 차단할 가능성이 매우 높기 때문에.

    설정

    하드 드라이브 컨트롤러에서 S.M.A.R.T 정보를 읽은 "smartmontools"패키지를 설치하고 우리에게 선물하십시오..

    sudo aptitude install smartmontools

    모니터 스크립트를 만듭니다.

    sudo vim /root/smart-monitor.sh

    이것을 내용으로 만드십시오 :

    #! / bin / bash
    ######## 이메일 기능 ########
    email_admin_func ()

    echo "받는 사람 : [email protected]"> $ temp_email_file
    echo "보낸 사람 : [email protected]">> $ temp_email_file
    echo "Subject : S.M.A.R.T monitor Threshold breached">> $ temp_email_file
    echo "">> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    echo "관리자에게 전자 메일 보내기"

    smartc_func ()

    / usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d"-f11

    ######## 함수 끝 ########

    ######## 작업 매개 변수 설정 ########
    temp_email_file = / tmp / smart_monitor.txt
    allowed_threshold = 5 # 살고 싶은 불량 섹터의 양을 설정하십시오, 권장 5.

    ########엔진########
    나는 sda sdb에 들어있다. do # 설정에 따라이 목록에서 디스크 이름을 추가하거나 빼십시오..
    if [[ " ''smartc_func $ i '"-ge $ allowed_threshold]]; 그때
    echo 관리자에게 이메일 보내기
    email_admin_func ""hostname ""에있는 HD 중 하나가 임계 값 한도에 도달했습니다! n 임계 값이 $ allowed_threshold로 설정되었으며 $ i 디스크 상태는 " 'smartc_func $ i'" "
    fi
    끝난

    주목해야 할 핵심 사항은 다음과 같습니다.

    • 전자 메일 기능 - 컴퓨터 이름 및 관리자 전자 메일과 같은 적절한 정보 설정.
    • 허용 된 임계 값 -이 매개 변수를 적절하다고 생각하는 값으로 설정합니다. 사용 된 "서버 등급"하드 드라이브의 한계가 10이기 때문에 5를 사용했습니다. "소비자 등급"드라이브의 임계 값을 140만큼 높다).
    • "for"루프에서 디스크 이름의 열거를 조정하여 모니터링 할 장치를 설정하십시오. 현재 두 개의 디스크 (sda & sdb)가 포함되어 있으므로 설정을 조정하십시오. 어떤 이유로 든 디스크를 제외해야하는 경우 모든 디스크를 포함하거나 일부만 포함 할 수 있습니다..

    * 원래의 설정에서 첫 번째 디스크는 플래시 드라이브 였으므로 가능하면 정보를 읽는 것이별로 유용하지 않았습니다..

    스크립트를 실행 가능하게 만듭니다.

    sudo chmod + x /root/smart-monitor.sh

    설정이 완료되었습니다..

    스크립트가 자동으로 실행되도록 예약

    스크립트를 자동으로 실행하여 새로운 Cron 작업을 만들려고합니다..
    "Linux에서 이메일 알림 설정 방법"에서 설명한 것처럼 스크립트 자체에 오류가 발생하면 cron이 자동으로 이메일을 통해 자동으로 알려줍니다.

    cron 작업 스케줄러를여십시오.

    sudo crontab -e

    내용에 다음을 추가하십시오.

    0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log

    매일 아침 7시에 스크립트가 실행되도록 설정합니다..


    귀하의 모든 부문은 우리에게 속한 것입니다 :)