Domovská » jak » Script pro sledování pevného disku pro bezhlavé servery Linux

    Script pro sledování pevného disku pro bezhlavé servery Linux

    Moderní pevné disky mají vnitřní mechanismus nazvaný S.M.A.R.T. přes který je možné vědět, kdy pevný disk chystá selhat. Nebylo by hezké na serveru, aby vám poslal e-mail před takovým selháním?

    Přehled

    Programy jako "mdadm" (pro správu software RAID) a "Palimpsest Disk Utility" (používané v Ubuntu LiveCD) používají informace o S.M.A.R.T, aby vás informovali, kdy je disk chybějící nebo se nezdařil. Nicméně na serveru bez hlavy (bez GUI) neexistuje žádná služba, která by vás informovala o probíhajícím odsouzení, než bude pozdě. Navíc, jak byste o tom věděli, aniž byste ručně přihlásili na server?

    Tento skript, který se spustí jednou denně se systémem cron, upozorní, zda některý z chybných sektorů pevných disků v systému dosáhne limitu, který je úmyslně nižší než práh "špatný disk" a předá upozornění správci zařízení.

    Předpoklady a předpoklady

    • Již jste nainstalovali podporu e-mailu pro server pomocí průvodce "Jak nainstalovat upozornění e-mailu na Linux".
    • Používáte systém založený na Debianu.
    • Nepoužíváte * hardware RAID řadič.
    • Uvidíte, že používám VIM jako program editoru, je to jen proto, že jsem na to zvyklý ... můžete použít libovolný jiný editor, který byste chtěli.

    * Protože je velmi možné, že hardware RAID řadič blokuje přístup k těmto informacím.

    Založit

    Nainstalujte balíček "smartmontools", který přečte informace z modulu S.M.A.R.T z řadiče pevného disku a předloží jej.

    sudo aptitude nainstalovat smartmontools

    Vytvořte skript monitoru:

    sudo vim /root/smart-monitor.sh

    Udělat to je obsah:

    #! / bin / bash
    ######## Funkce e-mailu ########
    email_admin_func ()

    echo "do: [email protected]"> $ temp_email_file
    echo "Od: [email protected]" >> $ temp_email_file
    echo "Předmět: Sledování prahové hodnoty monitoru 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ávci"

    smartc_func ()

    / usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| zkrácený -d" -f11

    ######## Konec funkcí ########

    ######## Nastavit pracovní parametr ########
    temp_email_file = / tmp / smart_monitor.txt
    allow_threshold = 5 # nastavte množství špatných sektorů, se kterými jste ochotni žít, doporučte 5.

    ########Motor########
    pro i v sda sdb; do # Přidat nebo odečíst názvy disků z tohoto seznamu, které jsou vhodné pro vaše nastavení.
    pokud [["'smartc_func $ i" "-ge $ allowed_threshold]]; pak
    echo Odeslání e-mailu administrátorovi
    mail_admin_func "Jeden z HD na" "název hostitele", dosáhl horní prahové hranice !!! n Prah byl nastaven na: $ allowed_threshold a stav disku $ i byl: "'smartc_func $ i'
    fi
    Hotovo

    Klíčovými body, které je třeba poznamenat, jsou:

    • Funkce e-mailu - Nastavte příslušné informace, jako je název počítače a e-mail administrátora.
    • Povolená prahová hodnota - Nastavte tento parametr na to, co považujete za vhodné. Použil jsem 5, protože limit nastavený pro pevný disk třídy "server grade", který jsem použil, byl 10. (zjistil jsem, že prahová hodnota pro disky "consumer grade" být až 140).
    • Nastavte zařízení, která chcete sledovat, úpravou výčtu názvů disků v smyčce "pro". V současné době jsou zahrnuty dva disky (sda & sdb), takže nastavte nastavení. Můžete zahrnout všechny disky nebo jen některé, pokud potřebujete * vyloučit disk z nějakého důvodu.

    * v mém původním nastavení byl první disk flash drive, takže čtení jeho informací, pokud vůbec to není moc užitečné.

    Udělat skript spustitelný:

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

    Nastavení je hotovo.

    Naplánujte automatický spuštění skriptu

    Chceme, aby byl skript spuštěn automaticky, a tak pro něj vytvoříme novou práci Cron.
    Jak je uvedeno v pokynech "Jak nastavit e-mailové upozornění na Linuxu", je to tak, že pokud skript sám narazí na chybu, cron nás automaticky upozorní emailem, jakmile se to stane.

    Otevřete plánovač úloh cron:

    sudo crontab -e

    Přidat k obsahu:

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

    Tímto nastavíte, aby byl skript spuštěn každé ráno v 7 hodin.


    Veškerý váš sektor patří nám :)