Ağ Trafiği ve CPU Sıcaklığı İzleyici Scripti
Pardus masaüstünde, terminal üzerinden akan veriyi şık bir şekilde panel gibi takip edebileceğin basit ama etkili bir Bash script. Bu araç, saniyede bir kez /sys dizinine giderek ağ kartından geçen veriyi okur ve canlı bir hız göstergesi sunar.
Ağ Trafiği İzleyici Scripti
Aşağıdaki kodu bir metin dosyasına (örneğin: trafik_izle.sh) yapıştır:
#!/bin/bash
# Ağ kartı adını buraya yaz (wlan0, eth0, enp3s0 vb.)
INTERFACE="wlan0"
# İlk veri okuma
OLD_RX=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
OLD_TX=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
echo "--- $INTERFACE Ağ Trafiği İzleniyor (Çıkış için Ctrl+C) ---"
while true; do
sleep 1
# Yeni veri okuma
NEW_RX=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
NEW_TX=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
# Farkı hesapla (Byte -> KB)
RX_SPEED=$(( (NEW_RX - OLD_RX) / 1024 ))
TX_SPEED=$(( (NEW_TX - OLD_TX) / 1024 ))
# Ekrana yazdır
printf "\rİndirme: %d KB/s | Yükleme: %d KB/s " "$RX_SPEED" "$TX_SPEED"
# Değerleri güncelle
OLD_RX=$NEW_RX
OLD_TX=$NEW_TX
done
Nasıl Çalıştırılır?
Dosyayı Oluştur: Masaüstünde sağ tıkla ve yeni bir metin dosyası oluşturup içine kodu yapıştır.
İzin Ver: Terminali aç ve dosyanın olduğu konuma gelip şu komutu yaz:
chmod +x trafik_izle.shÇalıştır:
./trafik_izle.sh
Bu Widget Neden Önemli?
Bu küçük araç, Pardus'un arkasındaki felsefeyi özetliyor: Şeffaflık. * Harici bir yazılım yüklemeden, sadece sistem dosyalarını okuyarak veri çekiyoruz.
/sysdizini sayesinde, donanımdan gelen ham bilgiyi doğrudan kullanıcıya ulaştırıyoruz.Sistem kaynaklarını (CPU/RAM) neredeyse hiç tüketmez çünkü sadece basit bir metin okuma işlemi yapar.
Şimdi widget'ımızı biraz daha "akıllı" hale getirelim. /sys/class/hwmon/ dizinini kullanarak işlemci sıcaklığını da bu canlı takip listesine ekleyeceğiz.
Linux çekirdeği, donanım sensörlerini genellikle hwmon (Hardware Monitor) altında tutar. İşte hem ağ trafiğini hem de CPU sıcaklığını gösteren güncellenmiş script:
Gelişmiş Pardus Sistem İzleyici
#!/bin/bash
# Ayarlar
INTERFACE="wlan0"
# Not: Sıcaklık dosyası yolu sisteme göre değişebilir.
# Genellikle /sys/class/hwmon/hwmon0/temp1_input veya benzeridir.
TEMP_FILE=$(find /sys/class/hwmon/hwmon*/temp1_input | head -n 1)
OLD_RX=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
OLD_TX=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
echo "--- Pardus Sistem Takibi Başladı ---"
while true; do
sleep 1
# Ağ Verileri
NEW_RX=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes)
NEW_TX=$(cat /sys/class/net/$INTERFACE/statistics/tx_bytes)
RX_SPEED=$(( (NEW_RX - OLD_RX) / 1024 ))
TX_SPEED=$(( (NEW_TX - OLD_TX) / 1024 ))
# Sıcaklık Verisi (mili-derece cinsinden olduğu için 1000'e bölüyoruz)
CPU_TEMP=$(($(cat $TEMP_FILE) / 1000))
# Ekranda Güncelle
printf "\r[İndirme: %4d KB/s] [Yükleme: %4d KB/s] [CPU: %d°C] " \
"$RX_SPEED" "$TX_SPEED" "$CPU_TEMP"
OLD_RX=$NEW_RX
OLD_TX=$NEW_TX
done
Makale İçin Teknik Notlar: Veri Akış Şeması
Bu scriptin çalışma mantığını anlamak, /sys yapısını kavramak demektir. Donanımdan ekrana giden yol şöyledir:
Donanım Katmanı: Ethernet kartı veya CPU sensörü ham veri üretir.
Kernel (Çekirdek) Katmanı: Sürücüler bu veriyi işler ve
sysfsyapısına uygun hale getirir.Sanal Dosya Sistemi (/sys): Veri, anlık olarak
/sys/class/...altındaki dosyalara yazılır.Kullanıcı Alanı (Script): Hazırladığımız Bash scripti bu "dosyaları" okur ve size anlamlı bir hız/sıcaklık birimi olarak sunar.
Yorumlar