If-Koubou

Hard Drive Monitor Script untuk Server Linux Tanpa Kepala

Hard Drive Monitor Script untuk Server Linux Tanpa Kepala (Bagaimana caranya)

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

Ikhtisar

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

Skrip ini, ketika dijalankan sekali sehari dengan cron, akan memperingatkan jika salah satu sistem Hard Disk sektor bad sector telah mencapai batas yang dengan sengaja menurunkan ambang batas "disk buruk", dan mengirim email peringatan ke administrator mesin.

Prasyarat dan asumsi

  • Anda telah menyiapkan dukungan Email untuk server menggunakan panduan "Cara Pengaturan Email Alerts pada 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 mengirimkannya 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 "To: [email protected]"> $ temp_email_file
echo "Dari: [email protected]" >> $ temp_email_file
echo "Subject: S.M.A.R.T monitor Threshold 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 Fungsi ########

######## Atur parameter kerja ########
temp_email_file = / tmp / smart_monitor.txt
allowed_threshold = 5 #set jumlah sektor buruk yang ingin Anda tinggali, disarankan 5.

########Mesin########
untuk saya di sda sdb; do # Tambahkan atau kurangi nama disk dari daftar ini sesuai untuk pengaturan Anda.
jika [["'smartc_func $ i'" -ge $ allowed_threshold]]; kemudian
echo Mengirim email ke Administrator
email_admin_func "Salah satu dari HD pada" 'nama host' ", telah mencapai batas ambang atas !!! nParameter disetel ke: $ allowed_threshold dan status disk $ i adalah:" 'smartc_func $ i' ""
fi
selesai

Poin utama yang perlu diperhatikan adalah:

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

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

Buat 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 tugas Cron baru untuknya.
Seperti yang dinyatakan dalam “Cara Mengatur Pemberitahuan Email di Linux” memandu penyelesaiannya, adalah jika skrip itu sendiri menemui kesalahan, cron akan secara otomatis memberi tahu 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 naskah untuk dijalankan setiap pagi jam 7 pagi.

Semua sektor Anda adalah milik kami :)