Beranda » bagaimana » Skrip Monitor Hard Drive untuk Server Linux Tanpa Kepala

    Skrip Monitor Hard Drive untuk Server Linux Tanpa Kepala

    Hard drive modern memiliki mekanisme internal yang disebut S.M.A.R.T. di mana dimungkinkan untuk mengetahui kapan hard disk akan gagal. Bukankah lebih baik server mengirim email kepada Anda sebelum kegagalan seperti itu?

    Ikhtisar

    Program seperti "mdadm" (untuk manajemen RAID perangkat lunak) dan "Palimpsest Disk Utility" (digunakan pada Ubuntu LiveCD), gunakan informasi S.M.A.R.T untuk memberi tahu Anda ketika disk hampir atau gagal. Namun pada server tanpa kepala (tanpa GUI) tidak ada layanan yang akan memberi tahu Anda tentang malapetaka yang tertunda sebelum terlambat. Selain itu, bagaimana Anda tahu tentang hal itu tanpa secara manual masuk ke server?

    Script ini, ketika dijalankan sekali sehari dengan cron, akan memberi tahu jika salah satu dari jumlah bad sector Hard Drive sistem telah mencapai batas yang sengaja lebih rendah dari ambang "disk buruk", dan mengirim email peringatan kepada administrator mesin.

    Prasyarat dan asumsi

    • Anda telah menyiapkan dukungan Email untuk server menggunakan panduan "Cara Mengatur Peringatan Email di Linux".
    • Anda menggunakan sistem berbasis Debian.
    • Anda tidak menggunakan pengontrol RAID perangkat keras *.
    • Anda akan melihat saya menggunakan VIM sebagai program editor, ini hanya karena saya sudah terbiasa ... Anda dapat menggunakan editor lain yang Anda inginkan.

    * Karena sangat mungkin pengontrol RAID perangkat keras memblokir akses sistem ke informasi ini.

    Mempersiapkan

    Instal paket "smartmontools" yang membaca informasi S.M.A.R.T dari pengontrol hard drive dan menyajikannya kepada kami.

    sudo aptitude menginstal smartmontools

    Buat skrip monitor:

    sudo vim /root/smart-monitor.sh

    Jadikan ini isinya:

    #! / bin / bash
    ######## Fungsi email ########
    email_admin_func ()

    echo "Ke: [email protected]"> $ temp_email_file
    echo "Dari: [email protected]" >> $ temp_email_file
    echo "Subjek: S.M.A.R.T memonitor Ambang Batas dilanggar" >> $ temp_email_file
    echo "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    echo "Mengirim Email ke Admin"

    smartc_func ()

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

    ######## Akhir dari Fungsi ########

    ######## Tetapkan parameter kerja ########
    temp_email_file = / tmp / smart_monitor.txt
    diizinkan_threshold = 5 #set jumlah sektor buruk yang bersedia Anda jalani, disarankan 5.

    ########Mesin########
    untuk saya di sda sdb; lakukan # Tambah atau kurangi nama disk dari daftar ini yang sesuai untuk pengaturan Anda.
    jika [["'smartc_func $ i'" -ge $ allowed_threshold]]; kemudian
    echo Mengirim Email kepada Administrator
    email_admin_func "Salah satu HD di" 'hostname' ", telah mencapai batas ambang batas atas !!! nTerbatas ditetapkan ke: $ allow_threshold dan status disk $ i adalah:" 'smartc_func $ i' ""
    fi
    selesai

    Poin-poin penting yang perlu diperhatikan adalah:

    • Fungsi email - Tetapkan informasi yang sesuai seperti nama mesin dan email administrator.
    • Ambang batas yang diizinkan - Tetapkan parameter ini sesuai keinginan Anda, saya telah menggunakan 5 karena batas yang ditetapkan untuk hard drive "server grade" yang saya gunakan adalah 10. (saya menemukan ambang untuk drive "kelas konsumen" untuk setinggi 140).
    • Atur perangkat yang ingin Anda monitor dengan menyesuaikan penghitungan nama disk di loop "for". Saat ini dua disk (sda & sdb) disertakan, jadi sesuaikan untuk pengaturan Anda. Anda dapat memasukkan semua disk Anda atau hanya beberapa, jika Anda perlu * mengecualikan disk untuk beberapa alasan.

    * dalam pengaturan awal saya, disk pertama adalah flash drive, jadi bacalah informasinya jika mungkin tidak banyak berguna.

    Jadikan skrip dapat dieksekusi:

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

    Pengaturan selesai.

    Jadwalkan skrip untuk dijalankan secara otomatis

    Kami ingin membuat skrip berjalan secara otomatis sehingga kami akan membuat pekerjaan Cron baru untuk itu.
    Seperti yang dinyatakan dalam panduan "Bagaimana Mengatur Peringatan Email di Linux", jika skrip itu sendiri mengalami kesalahan, cron akan secara otomatis menginformasikan kepada kami melalui email segera setelah itu terjadi.

    Buka penjadwal tugas cron:

    sudo crontab -e

    Tambahkan ini ke isinya:

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

    Ini akan mengatur agar skrip dijalankan setiap pagi pada jam 7 pagi.


    Semua sektor Anda adalah milik kami :)