Modern Sabit sürücülerin S.M.A.R.T. adlı dahili bir mekanizması vardır. bu sayede bir sabit diskin ne zaman arızalanacağını bilmek mümkündür. Böyle bir hatadan önce sunucunun size e-posta göndermesi hoş olmaz mıydı?
Genel Bakış
"Mdadm" (yazılım RAID yönetimi için) ve "Palimpsest Disk Yardımcı Programı" (Ubuntu LiveCD'de kullanılır) gibi programlar, S.M.A.R.T bilgilerini diskin ne zaman bitmek üzere olduğunu veya arızalandığını size bildirmek için kullanır. Bununla birlikte, başsız bir sunucuda (GUI yok) sizi bekleyen kıyamet hakkında çok geç olmadan bilgilendirecek bir hizmet yoktur. Dahası, sunucuya manuel olarak giriş yapmadan bunu nasıl bilebilirsiniz?
Bu komut dosyası, günde bir kez cron ile çalıştırıldığında, sistemin Sabit Disklerindeki bozuk sektör sayısından herhangi biri, "disk bozuk" eşiğinden kasıtlı olarak daha düşük bir sınıra ulaşırsa uyarır ve uyarıyı makine yöneticisine e-posta ile gönderir.
Ön koşullar ve varsayımlar
- Sunucu için E-posta desteğini " Linux'ta E-posta Uyarıları Nasıl Kurulur " kılavuz.
- Debian tabanlı bir sistem kullanıyorsunuz.
- * Donanım RAID denetleyicisi kullanmıyorsunuz.
- Editör programı olarak VIM'i kullandığımı göreceksiniz, bu sadece alıştığım için… İstediğiniz herhangi bir düzenleyiciyi kullanabilirsiniz.
* Çünkü donanım RAID denetleyicisinin sistemin bu bilgilere erişimini engellemesi çok olasıdır.
Kurmak
S.M.A.R.T bilgilerini sabit sürücü denetleyicisinden okuyan ve bize sunan "smartmontools" paketini kurun.
sudo aptitude smartmontools yükle
İzleme komut dosyasını oluşturun:
sudo vim /root/smart-monitor.sh
Bunu içerik haline getirin:
#!/bin/bash
######## E-posta işlevi ########
email_admin_func()
{
echo "Alıcı: [email protected]"> $ temp_email_file
echo "Kimden: makine-adı@some-alan.com" >> $ temp_email_file
echo "Konu: S.M.A.R.T monitör Eşiği aşıldı" >> $ temp_email_file
echo "" >> $ temp_email_file
echo -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t <$ temp_email_file
echo "Yöneticiye E-posta Gönderdi"
}
smartc_func ()
{
/ usr / sbin / smartctl -A / dev / $ 1 | grep Yeniden Tahsis Edilen_Sektör_Ct | tr -s '' | kes -d '' -f11
}
######## İşlevlerin Sonu ########
######## Çalışma parametresini ayarla ########
temp_email_file = / tmp / smart_monitor.txt
allow_threshold = 5 # ile yaşamak istediğiniz kötü sektörlerin miktarını ayarlayın, önerilen 5.
########Motor########
sda sdb'de i için; do # Bu listeden kurulumunuza uygun disk adlarını ekleyin veya çıkarın.
[[ "`smartc_func $i`" -ge $allowed_threshold ] ise]; sonra
echo Yöneticiye E-posta Gönderme
email_admin_func "" "hostname`" üzerindeki HD'lerden biri, üst eşik sınırına ulaştı !!! nEşik şu şekilde ayarlandı: $ allow_threshold ve $ i disk durumu: "" smartc_func $ i` ""
olmak
bitti
Dikkat edilmesi gereken temel noktalar şunlardır:
- E-posta işlevi - Makine adı ve yönetici e-postası gibi uygun bilgileri ayarlayın.
- İzin verilen eşik - Bu parametreyi uygun olduğunu düşündüğünüz değere ayarlayın, 5 kullandım çünkü kullandığım "sunucu sınıfı" sabit sürücüler için belirlenen sınır 10'du ("tüketici sınıfı" sürücüler için eşiği buldum. 140 kadar yüksek olması).
- "For" döngüsünde disk adlarının numaralandırmasını ayarlayarak izlemek istediğiniz cihazları ayarlayın. Şu anda iki disk (sda ve sdb) dahil edilmiştir, bu nedenle kurulumunuza göre ayarlayın. Herhangi bir nedenle bir diski dışarıda bırakmanız gerekiyorsa, tüm disklerinizi veya yalnızca bazılarını dahil edebilirsiniz.
* Orijinal kurulumumda ilk disk bir flash sürücüdü, bu yüzden mümkünse bilgilerini okumak pek bir işe yaramaz.
Komut dosyasını çalıştırılabilir yapın:
sudo chmod + x /root/smart-monitor.sh
Kurulum tamamlandı.
Komut dosyasını otomatik olarak çalıştırılacak şekilde planlayın
Komut dosyasını otomatik olarak çalıştırmak istiyoruz, böylece onun için yeni bir Cron işi oluşturacağız.
"
Linux'ta E-posta Uyarıları Nasıl Kurulur
”Bunu yapmanın sonucuna rehberlik eder, eğer betiğin kendisi bir hatayla karşılaşırsa, cron, olur olmaz e-posta yoluyla bizi otomatik olarak bilgilendirecektir.
Cron iş planlayıcısını açın:
sudo crontab -e
Bunu içeriğine ekleyin:
0 7 * * * /root/smart-monitor.sh > /tmp/last_smart_monitor_run.log
Bu, komut dosyasını her sabah 07: 00'de çalıştırılacak şekilde ayarlayacaktır.
Tüm sektörünüz bize ait :)