Úvodná » ako » Skript sledovania pevného disku pre bezhlavé servery Linux

    Skript sledovania pevného disku pre bezhlavé servery Linux

    Moderné pevné disky majú interný mechanizmus s názvom S.M.A.R.T. prostredníctvom ktorého je možné vedieť, kedy sa pevný disk chystá zlyhať. Nebolo by pekné na server, aby vám poslal e-mail pred takýmto neúspechom?

    Prehľad

    Programy, ako je "mdadm" (pre správu softwarového RAIDu) a "Palimpsest Disk Utility" (používané na Ubuntu LiveCD), používajú informácie S.M.A.R.T aby vás informovali, keď sa disk chystá alebo sa zlyhal. Avšak na serveri bez hlavy (bez grafického rozhrania) neexistuje žiadna služba, ktorá by vás informovala o čakaní doom, skôr ako bude príliš neskoro. Navyše, ako by ste o tom vedeli bez manuálneho prihlásenia na server?

    Tento skript, keď sa spustí raz denne s cronom, upozorní, či akýkoľvek z chybných sektorov pevných diskov v systéme dosiahne limit, ktorý je zámerne nižší ako prah "disk je zlý" a zaslať upozornenie správcovi zariadenia e-mailom.

    Predpoklady a predpoklady

    • Už ste nastavili podporu e-mailu pre server pomocou príručky "Ako nainštalovať emailové upozornenia na Linux".
    • Používate systém založený na Debiane.
    • Nepoužívate * hardvérový RAID radič.
    • Uvidíte, že používam program VIM ako editor, práve preto, že som na to zvyknutý ... môžete použiť iný editor, ktorý by ste chceli.

    * Pretože je veľmi pravdepodobné, že hardvér RAID blokuje prístup systému k týmto informáciám.

    Nastaviť

    Nainštalujte balík "smartmontools", ktorý prečíta informácie SMM z regulátora pevného disku a zobrazí ho.

    sudo aptitude install smartmontools

    Vytvorte skript monitora:

    sudo vim /root/smart-monitor.sh

    Urobte to obsahom:

    #! / Bin / bash
    ######## Funkcia e-mailu ########
    email_admin_func ()

    echo "Do: [email protected]"> $ temp_email_file
    echo "Od: [email protected]" >> $ temp_email_file
    echo "Predmet: Sledovanie porušenia prahovej hodnoty S.M.A.R.T" >> $ temp_email_file
    echo "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    echo "Poslal e-mail správcovi"

    smartc_func ()

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

    ######## Koniec funkcií ########

    ######## Nastaviť pracovný parameter ########
    temp_email_file = / TMP / smart_monitor.txt
    allow_threshold = 5 # nastavte množstvo zlých sektorov, s ktorými chcete žiť, odporúčame 5.

    ######## ######## Engine
    pre i v sda sdb; do # Pridajte alebo odčítajte názvy diskov z tohto zoznamu ako vhodné pre vaše nastavenie.
    ak [["'smartc_func $ i" "-ge $ allowed_threshold]]; potom
    Odoslať e-mail správcovi
    mail_admin_func "Jeden z HD na" "názov hostiteľa" ", dosiahol hornú hranicu! n Prah bol nastavený na: $ allowed_threshold a stav disku $ i bol:" 'smartc_func $ i'
    fi
    hotový

    Kľúčové body, ktoré treba poznamenať, sú:

    • Funkcia e-mailu - nastavte príslušné informácie, ako je názov počítača a e-mail administrátora.
    • Povolená prahová hodnota - nastavte tento parameter na to, čo považujete za vhodné. Použil som 5, pretože limit nastavený pre hardvér typu "server grade", ktorý som použil, bol 10. (našiel som prah pre disky "consumer grade" byť až 140).
    • Nastavte zariadenia, ktoré chcete monitorovať, úpravou výčtu názvov diskov v smyčke "pre". V súčasnosti sú zahrnuté dva disky (sda & sdb), preto upravte nastavenie. Môžete zahrnúť všetky disky alebo len niektoré, ak potrebujete vylúčiť disk z nejakého dôvodu.

    * v mojom pôvodnom nastavení bol prvý disk flash disk, takže čítanie jeho informácií, ak vôbec nie je veľa využitia.

    Vytvorte spustiteľný skript:

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

    Nastavenie sa vykonalo.

    Naplánujte skript, ktorý sa má spúšťať automaticky

    Chceme, aby bol skript spustený automaticky, aby sme vytvorili novú prácu pre Cron.
    Ako je uvedené v návode "Ako nastaviť e-mailové upozornenia v systéme Linux", je výsledkom toho, že ak skript sám narazí na chybu, cron nás automaticky oznámi e-mailom hneď, ako sa to stane.

    Otvorte plánovač úloh cron:

    sudo crontab -e

    Pridajte toto do svojho obsahu:

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

    Toto nastaví skript, ktorý sa spustí každé ráno o 7:00.


    Všetok váš sektor patrí nám :)