Bugün sizlerle, bir HDD'nin (Sabit Disk) bozulma tahminini yapabilen basit bir Bash scripti paylaşmak istiyorum.
Bu script, kullanıcıdan HDD'nin toplam çalışma süresini saat cinsinden alır ve üç farklı model kullanarak bozulma yüzdesini hesaplar:
Doğrusal model, İkinci dereceden polinom model ve Üstel model.
Scriptin Özellikleri
- Kullanıcı Girişi: Script, aracı kullanarak kullanıcıdan HDD'nin toplam çalışma süresini alır. Eğer kullanıcı geçersiz bir değer girerse, bir hata mesajı gösterilir ve script sonlanır.
Kod: Tümünü seç
zenity
- Model Hesaplamaları:
- Doğrusal Model:
Kod: Tümünü seç
0.000886 * hours - 12.27
- İkinci Dereceden Polinom Model:
Kod: Tümünü seç
0.000000006368 * hours^2 + 0.000272 * hours - 1.52
- Üstel Model:
Kod: Tümünü seç
6.182480 * e(0.0000284774 * hours)
- Doğrusal Model:
- Sonuçların Formatlanması: Hesaplanan bozulma yüzdeleri, gereksiz sıfırlardan arındırılarak üç ondalık basamağa yuvarlanır.
- Sonuçların Gösterimi: Hesaplanan sonuçlar, yine kullanılarak kullanıcıya gösterilir.
Kod: Tümünü seç
zenity
Kod: Tümünü seç
#!/bin/bash
# Kullanıcıdan çalışma süresi (saat) girişini al
hours=$(zenity --entry --title="HDD Bozulma Tahmini" --text="Lütfen HDD'nin toplam çalışma süresini (saat) girin:" --entry-text="0")
# Kullanıcı giriş yapmazsa veya geçersiz bir değer girerse çık
if ! [[ "$hours" =~ ^[0-9]+([.][0-9]+)?$ ]]; then
zenity --error --text="Geçersiz giriş! Lütfen geçerli bir sayı girin. Çıkılıyor."
exit 1
fi
# Doğrusal model hesaplama
linear=$(echo "scale=4; 0.000886 * $hours - 12.27" | bc -l)
# İkinci dereceden polinom hesaplama
quadratic=$(echo "scale=4; 0.000000006368 * $hours^2 + 0.000272 * $hours - 1.52" | bc -l)
# Üstel model hesaplama
exponential=$(echo "scale=4; 6.182480 * e(0.0000284774 * $hours)" | bc -l)
# Sonuçları formatla (gereksiz sıfırları kaldır)
linear_formatted=$(echo "$linear" | awk '{printf "%.3f", $0}')
quadratic_formatted=$(echo "$quadratic" | awk '{printf "%.3f", $0}')
exponential_formatted=$(echo "$exponential" | awk '{printf "%.3f", $0}')
# Sonucu Zenity ile göster
zenity --info --title="HDD Bozulma Tahmini" --text="\
Toplam Çalışma Süresi: $hours saat\n\
-------------------------------\n\
Doğrusal Model Bozulma: % $linear_formatted\n\
Polinom Model Bozulma: % $quadratic_formatted\n\
Üstel Model Bozulma: % $exponential_formatted\n"
Scripti bir dosyaya kaydedin, örneğin hdd_tahmin.sh
Terminalde dosyaya çalıştırma izni verin: chmod +x hdd_tahmin.sh
Scripti çalıştırın: ./hdd_tahmin.sh
Ekran Görüntüsü : (Sistem : GNU/Linux Mint 21.1 x64 LXDE)

