1. sayfa (Toplam 1 sayfa)

Disk TBW Hesaplama Scripti

Gönderilme zamanı: 02 Mar 2025 12:06
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

Re: Disk TBW Hesaplama Scripti

Gönderilme zamanı: 02 Mar 2025 12:19
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

Re: Disk TBW Hesaplama Scripti

Gönderilme zamanı: 04 Mar 2025 16:37
gönderen burak35
Crystaldiskinfoda baya güzel bi program. Güncelle beni demiyor. Sürekli uyarı falanda vermiyor. Tam kullanıcı dostu.

Re: Disk TBW Hesaplama Scripti

Gönderilme zamanı: 04 Mar 2025 16:48
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

Re: Disk TBW Hesaplama Scripti

Gönderilme zamanı: 05 Mar 2025 02:40
gönderen burak35
Ben o programın içinden birçok şey silmiştim. Dil dosyaları temalar falan. :)