Disk TBW Hesaplama Scripti

Cevapla
Kullanıcı avatarı
TRWE_2012
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 884
Kayıt: 30 Ağu 2022 21:59
Konum: DÜZCE/Akçakoca
Meslek: MADEN MÜHENDİSİ
Teşekkür etti: 234 kez
Teşekkür edildi: 730 kez
İletişim:

Disk TBW Hesaplama Scripti

Mesaj gönderen TRWE_2012 »

Merhaba forum üye ve ziyaretçileri

Aşağıda, NVMe ve SATA disklerin TBW (Terabytes Written) değerlerini hesaplamak için yazılmış bir bash scriptini paylaşıyorum. Bu script, kullanıcıdan disk türünü seçmesini istiyor ve ardından ilgili disk için SMART verilerini okuyarak TBW değerini hesaplıyor.

Betiğin Özellikleri:

    Disk Türü Seçimi: Kullanıcı, NVMe veya SATA disklerden birini seçebilir ya da her ikisini ayrı ayrı hesaplayabilir.
    SMART Verisi Okuma: NVMe diskler için smartctl, SATA diskler için ise /proc/diskstats kullanılarak veriler okunuyor.
    Hesaplama: Okunan veriler kullanılarak TBW değeri terabayt (TB) ve gigabayt (GB) cinsinden hesaplanıyor.

Gereksinimler:

Scriptin sağlıklı çalışabilmesi için sistemde aşağıdaki uygulamaların kurulu olması gerekiyor:
  • smartmontools: NVMe disklerin SMART verilerini okumak için.
  • bc: Hesaplamalar için gerekli bir hesap makinesi.
  • /proc/diskstats : GNU/Linux işletim sisteminin bir parçası olarak gelir ve kullanıcı tarafından ayrı bir kurulum gerektirmez. Bu dosya, Linux çekirdeği tarafından otomatik olarak oluşturulur ve sistemdeki disklerin istatistiklerini gerçek zamanlı olarak sağlar.
Kullanım:
  1. Scripti çalıştırın. (chmod +x tbw_hesapla.sh) >>> ( sudo ./tbw_hesapla.sh)
  2. Disk türünü seçin (1: NVMe, 2: SATA, 3: İkisini hesapla).
  3. İlgili disk adını girin.
  4. Hesaplanan TBW değerini görüntüleyin.
KOD İÇERİĞİ :

Kod: Tümünü seç

#!/bin/bash

# Terminali temizle
clear

# Mevcut tarih ve saat
tarih_saat=$(date "+%d/%m/%Y - %H:%M:%S")

# Kullanıcıdan seçim yapmasını iste
echo "-------------------------------"
echo "Disk türünü seçin:"
echo "-------------------------------"
echo "1 - NVMe (örn: nvme0n1)"
echo "2 - SATA (örn: sda)"
echo "3 - İkisini ayrı ayrı hesapla, sonucu toplu göster"
echo "-------------------------------"
read -p "Seçiminizi yapın (1, 2 veya 3): " disk_secim
echo "-------------------------------"
echo "ℹ️ SONUÇLAR ($tarih_saat)"
echo "-------------------------------"

# NVMe TBW hesaplama fonksiyonu
hesapla_nvme() {
local disk=$1
echo "ℹ️ SMART verileri okunuyor..."
echo "-------------------------------"

local data_units_written=$(sudo smartctl -x /dev/$disk | grep "Data Units Written" | awk '{print $4}' | tr -d '.')

if [[ -z "$data_units_written" ]]; then
echo "❌ Hata: SMART verileri okunamadı!"
return
fi

local tbw=$(echo "scale=2; ($data_units_written * 512 * 1000) / (1024^4)" | bc)
local toplam_gb=$(echo "scale=2; ($data_units_written * 512 * 1000) / (1024^3)" | bc)

echo "✅ NVMe SSD için gerçek TBW: $tbw TB ($toplam_gb GB)"
echo "-------------------------------"
}

# SATA TBW hesaplama fonksiyonu
hesapla_sata() {
local disk=$1
echo "ℹ️ SMART verileri okunuyor..."
echo "-------------------------------"

local sector_size=$(sudo blockdev --getbsz /dev/$disk)
if [[ -z "$sector_size" ]]; then
echo "❌ Hata: Sektör boyutu alınamadı! Varsayılan olarak 512 bayt kullanılacak."
sector_size=512
fi

local total_lbas_written=$(sudo cat /proc/diskstats | grep "$disk " | awk '{print $10}')
if [[ -z "$total_lbas_written" ]]; then
echo "❌ Hata: SMART verileri okunamadı!"
return
fi

local tbw=$(echo "scale=2; ($total_lbas_written * $sector_size) / (1024^4)" | bc)
local toplam_gb=$(echo "scale=2; ($total_lbas_written * $sector_size) / (1024^3)" | bc)

echo "✅ SATA HDD/SSD için gerçek TBW: $tbw TB ($toplam_gb GB)"
echo "-------------------------------"
}

# Kullanıcının seçimine göre işlemi gerçekleştir
case "$disk_secim" in
1)
read -p "NVMe disk adını girin (örn: nvme0n1): " nvme_disk
hesapla_nvme "$nvme_disk"
;;
2)
read -p "SATA disk adını girin (örn: sda): " sata_disk
hesapla_sata "$sata_disk"
;;
3)
read -p "NVMe disk adını girin (örn: nvme0n1): " nvme_disk
read -p "SATA disk adını girin (örn: sda): " sata_disk
hesapla_nvme "$nvme_disk"
hesapla_sata "$sata_disk"
;;
*)
echo "❌ Hata: Geçersiz seçim!"
exit 1
;;
esac
EKRAN GÖRÜNTÜSÜ (Sistem : GNU/Linux Mint 21.1 x64 LXDE)
 
Resim
Dosya ekleri
tbw_hesapla.sh.7z
TRWE_2012 tarafından kodlandı.
MART 2025
(1.05 KiB) 64 kere indirildi
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim

Etiketler:
Kullanıcı avatarı
TRWE_2012
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 884
Kayıt: 30 Ağu 2022 21:59
Konum: DÜZCE/Akçakoca
Meslek: MADEN MÜHENDİSİ
Teşekkür etti: 234 kez
Teşekkür edildi: 730 kez
İletişim:

Re: Disk TBW Hesaplama Scripti

Mesaj gönderen TRWE_2012 »

ÖZEL KULLANICI NOTLARI :

Terminal'den SATA Disk ve NWme Diskleri Görüntüleme komutları

SATA DİSK İÇİN (mekanik disk) :

Kod: Tümünü seç

sudo smartctl -A /dev/sda
NWME KATI HAL DİSK İÇİN (ssd) :

Kod: Tümünü seç

sudo smartctl -x /dev/nvme0n1
Özelleştirilmiş Komutlar :

Toplam Yazma TB Değerini Bulmak İçin :

Kod: Tümünü seç

sudo smartctl -x /dev/nvme0n1 | grep "Data Units Written"
NVMe SSD'nin Power On Hours (çalışma süresi)

Kod: Tümünü seç

sudo smartctl -x /dev/nvme0n1 | grep "Power On Hours"
Eğer sadece saat bilgisini almak istiyorsak:

Kod: Tümünü seç

sudo smartctl -x /dev/nvme0n1 | grep "Power On Hours" | awk '{print $4}'
NOT:

Yaptığım hesaplamalar da sezgisel olarak her birim TB değerine = 0,58 ( yüzde sıfır tam onda elli sekiz'lik sağlık kaybı denk geliyor) değeri gelmekte...

ÖRNEK HESAPLAMA :

SSD İçin Tahmini Sağlık Değerini Hesaplama

18,78 x 0,58 = 10,89

100 - 10,89 = %89,11

Gerçekten bendeki SSD diskin Windows OS tarafında portable çalışan CristalDiskİnfo yazılımının gösterdiği değer'de %89....

 
 Ekran görüntüsü (Sistem : Windows 11 Yapı 22H2 x64 Home TR)

Resim

Son durum GNOME Diskler İle Performans Ölçümü :

100 örnek (bunun Windows dengi : 100 MB Veri Parçası) üzerinden

Resim
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim
Kullanıcı avatarı
burak35
Forum Üyesi
Forum Üyesi
Mesajlar: 157
Kayıt: 23 Mar 2023 01:07
Teşekkür etti: 165 kez
Teşekkür edildi: 157 kez

Re: Disk TBW Hesaplama Scripti

Mesaj gönderen burak35 »

Crystaldiskinfoda baya güzel bi program. Güncelle beni demiyor. Sürekli uyarı falanda vermiyor. Tam kullanıcı dostu.
Kullanıcı avatarı
TRWE_2012
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 884
Kayıt: 30 Ağu 2022 21:59
Konum: DÜZCE/Akçakoca
Meslek: MADEN MÜHENDİSİ
Teşekkür etti: 234 kez
Teşekkür edildi: 730 kez
İletişim:

Re: Disk TBW Hesaplama Scripti

Mesaj gönderen TRWE_2012 »

burak35 yazdı: 04 Mar 2025 16:37 Crystaldiskinfoda baya güzel bi program. Güncelle beni demiyor. Sürekli uyarı falanda vermiyor. Tam kullanıcı dostu.
Gizli silahları da var (özellikler) menülerini kurcala... :D
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim
Kullanıcı avatarı
burak35
Forum Üyesi
Forum Üyesi
Mesajlar: 157
Kayıt: 23 Mar 2023 01:07
Teşekkür etti: 165 kez
Teşekkür edildi: 157 kez

Re: Disk TBW Hesaplama Scripti

Mesaj gönderen burak35 »

Ben o programın içinden birçok şey silmiştim. Dil dosyaları temalar falan. :)
Cevapla

“Bash Shell Betiklerimiz” sayfasına dön