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?
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.
* Karena sangat mungkin pengontrol RAID perangkat keras memblokir akses sistem ke informasi ini.
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:
* 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.
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 :)