Başsız Linux Sunucular için Sabit Disk İzleme Komut Dosyası
Modern Sabit disklerde S.M.A.R.T. adında bir iç mekanizma var. bu sayede bir sabit diskin ne zaman bitmek üzere olduğunu bilmek mümkün olur. Böyle bir arızadan önce sunucunun size e-posta göndermesi iyi olmaz mıydı??
genel bakış
“Mdadm” (yazılım RAID yönetimi için) ve “Palimpsest Disk Utility” (Ubuntu LiveCD'de kullanılır) gibi programlar, diskin bitip bitmediğini veya arızalandığını bildirmek için S.M.A.R.T bilgilerini kullanır. Ancak, başsız bir sunucuda (GUI yok), çok geç olmadan beklemekte olan kıyamet hakkında sizi bilgilendirecek bir servis yoktur. Dahası, sunucuya manuel olarak giriş yapmadan bunu nasıl anlarsınız??
Bu komut dosyası, cron ile günde bir kez çalıştırıldığında, sistemin Sabit Disklerinin bozuk sektör sayısından herhangi birinin "disk bozuk" eşiğinden kasten daha düşük bir sınıra ulaştığını bildirir ve uyarıyı makine yöneticisine e-postayla gönderir.
Önkoşullar ve varsayımlar
- “Linux'ta E-posta Uyarıları Nasıl Kurulur” kılavuzunu kullanarak sunucu için e-posta desteğini zaten ayarladınız.
- Debian tabanlı bir sistem kullanıyorsunuz.
- Bir * donanım RAID denetleyicisi kullanmıyorsunuz.
- Beni VIM’in editör programı olarak kullandığını göreceksiniz, bu sadece buna alıştığım için… İstediğiniz herhangi bir editörü kullanabilirsiniz..
* Donanım RAID denetleyicisinin sistemin bu bilgilere erişmesini engellemesi çok olasıdır..
Kurmak
S.M.A.R.T bilgilerini sabit sürücü kontrol cihazından okuyan ve bize sunan “smartmontools” paketini kurun.
sudo yetenek smartmontools yüklemek
Monitör komut dosyasını oluşturun:
sudo vim /root/smart-monitor.sh
Bunu onun içeriği yap:
#! / Bin / bash
######## E-posta işlevi ########
email_admin_func ()
echo "Kime: [email protected]"> $ temp_email_file
echo "Gönderen: [email protected]" >> $ temp_email_file
echo "Konu: S.M.A.R.T izleme ihlal edilen eşiği izle" >> $ temp_email_file
echo "" >> $ Instagram Hesabındaki Resim ve Videoları temp_email_file
echo -e $ 1 >> $ Instagram Hesabındaki Resim ve Videoları temp_email_file
/ usr / sbin / ssmtp -t < $temp_email_file
echo "Yönetime Bir E-posta Gönderildi"
smartc_func ()
/ usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11
######## İşlevlerin Sonu ########
######## Çalışma parametresini ayarlayın ########
temp_email_file = / tmp / smart_monitor.txt
allow_threshold = 5 # ile birlikte yaşamak istediğin kötü sektörlerin miktarını ayarla, önerilen 5.
########Motor########
i için sda sdb; do # Kurulumunuza uygun şekilde bu listeden disk adları ekleyin veya çıkarın.
eğer [["'smartc_func $ i'" -ge $ allowed_threshold]]; sonra
yankı Yönetici e-posta ile gönderme
email_admin_func "" "hostname" "deki HD'lerden biri üst eşik sınırına ulaştı !!! n Eşik değeri: $ allow_threshold ve $ i disk durumu:" 'smartc_func $ i' ""
fi
tamam
Dikkat edilmesi gereken noktalar:
- 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 şekilde 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 olmak).
- “For” döngüsünde disk adlarının numaralandırmasını ayarlayarak izlemek istediğiniz aygıtları ayarlayın. Şu anda iki disk (sda & sdb) eklenmiştir, bu nedenle kurulumunuzu düzenleyin. Herhangi bir nedenle bir diski dışlamanız gerekiyorsa, tüm disklerinizi veya yalnızca bazılarını ekleyebilirsiniz..
* Orijinal kurulumumda ilk disk bir flash sürücüdü, bu nedenle, eğer mümkünse, eğer kullanımı pek mümkün değilse, bilgilerini okumak.
Komut dosyasını yürütülebilir duruma getirin:
sudo chmod + x / root/smart-monitor.sh
Kurulum yapılır.
Komut dosyasını otomatik olarak çalışacak şekilde zamanlayın
Senaryoyu otomatik olarak çalıştırmak istiyoruz, böylece yeni bir Cron işi yaratacağız..
“Linux'ta E-posta Uyarıları Nasıl Kurulur” bölümünde belirtildiği gibi, betiğin kendisi bir hatayla karşılaşırsa, cron en kısa sürede bizi e-postayla otomatik olarak bilgilendirecektir..
Cron iş zamanlayıcısını açın:
sudo crontab -e
Bunu içeriğine ekle:
0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log
Bu senaryoyu her sabah 07: 00'da çalıştırılacak.
Tüm sektörleriniz bize aittir :)