Sistem Kaynakları Tüketen En Son On İşlem

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

Sistem Kaynakları Tüketen En Son On İşlem

Mesaj gönderen TRWE_2012 »

top_processes.sh

Kod: Tümünü seç


#!/bin/bash
# En çok kaynak tüketen arka plan işlemlerini gösteren betik
# İşlem sayısını belirleyin (örneğin, 10)
LIMIT=10
echo "En çok kaynak tüketen arka plan işlemleri:"
echo "------------------------------------------"
printf "%-8s %-6s %-6s %s\n" "PID" "%CPU" "%MEM" "COMMAND"
# ps komutunu kullanarak işlemleri al ve sıralayıp göster
ps -eo pid,%cpu,%mem,args --sort=-%cpu | head -n $((LIMIT + 1)) | tail -n $LIMIT | \
while read pid cpu mem cmd; do
    cmd_name=$(basename "$cmd")  # Kısa adını al
    printf "%-8s %-6s %-6s %s\n" "$pid" "$cpu" "$mem" "$cmd_name"
done
echo "------------------------------------------"

Betiğin Kısa Özet Açıklaması :

Bu bash shell betiği, sistemdeki en çok kaynak tüketen arka plan işlemlerini listelemek için yazılmıştır. Betik, CPU ve bellek kullanımına göre işlemleri sıralar ve kullanıcıya en yüksek kaynak tüketen işlemleri gösterir.

Betiğin adım adım açıklaması:

1.Yorum Satırları: Betiğin başında, betiğin ne yaptığına dair açıklamalar bulunmaktadır. Bu, kodun okunabilirliğini artırır.

2.LIMIT Değişkeni: LIMIT=10 satırı, gösterilecek en çok kaynak tüketen işlem sayısını belirler. Bu örnekte, en fazla 10 işlem gösterilecektir.

3.Başlık Yazdırma:

Kod: Tümünü seç


echo "En çok kaynak tüketen arka plan işlemleri:"
echo "------------------------------------------"
printf "%-8s %-6s %-6s %s\n" "PID" "%CPU" "%MEM" "COMMAND"

Bu kısım, kullanıcıya bilgi vermek için başlıkları yazdırır. printf komutu, belirli bir formatta çıktı vermek için kullanılır. Burada PID (Process ID), %CPU (CPU kullanımı), %MEM (Bellek kullanımı) ve COMMAND (işlem adı) başlıkları yazdırılmaktadır.

4.İşlemleri Alma ve Sıralama:

Kod: Tümünü seç

ps -eo pid,%cpu,%mem,args --sort=-%cpu | head -n $((LIMIT + 1)) | tail -n $LIMIT
ps -eo pid,%cpu,%mem,args:

Bu komut, tüm işlemleri (PID, CPU kullanımı, bellek kullanımı ve komut argümanları ile birlikte) listeler.

--sort=-%cpu:

İşlemleri CPU kullanımına göre azalan sırada sıralar.

head -n $((LIMIT + 1)):

İlk 11 satırı alır (başlık satırı dahil).

tail -n $LIMIT:

Son 10 satırı alır (bu, en çok kaynak tüketen 10 işlemi verir).

5.İşlemleri Okuma ve Yazdırma:

Kod: Tümünü seç


while read pid cpu mem cmd; do
    cmd_name=$(basename "$cmd")  # Kısa adını al
    printf "%-8s %-6s %-6s %s\n" "$pid" "$cpu" "$mem" "$cmd_name"
done

while read pid cpu mem cmd; do:

Her bir satırı okuyarak PID, CPU, bellek ve komut adını değişkenlere atar.

cmd_name=$(basename "$cmd"):

Komutun tam yolunu alır ve sadece dosya adını (kısa adını) alır.

printf "%-8s %-6s %-6s %s\n" "$pid" "$cpu" "$mem" "$cmd_name":

Okunan bilgileri formatlı bir şekilde yazdırır.

6.Son Satır

Kod: Tümünü seç

echo "------------------------------------------"
Bu satır, çıktının sonunu belirten bir ayırıcı çizgi çizer.Bu betik, sistem yöneticileri veya kullanıcılar için, hangi işlemlerin en fazla kaynak tükettiğini hızlı bir şekilde görselleştirmek için yararlıdır.

Örnek Komut Çıktısı :

Bu bash betiği çalıştırıldığında, sistemdeki en çok kaynak tüketen arka plan işlemlerinin bir listesini oluşturur. Çıktı, belirlenen formatta ve başlıklarla birlikte aşağıdaki gibidir.

Kod: Tümünü seç


En çok kaynak tüketen arka plan işlemleri:
------------------------------------------
PID      %CPU   %MEM   COMMAND
1234     25.0   10.5   firefox
5678     15.0   5.0    chrome
9101     10.0   2.5    java
1121     8.0    3.0    python
3141     5.0    1.0    bash
4151     4.0    0.5    top
6171     3.0    0.2    sshd
7181     2.0    0.1    nginx
8191     1.0    0.0    mysql
9201     0.5    0.0    systemd
------------------------------------------
Bu örnek çıktıda:

PID: İşlem kimliği (Process ID).
%CPU: İşlemin kullandığı CPU yüzdesi.
%MEM: İşlemin kullandığı bellek yüzdesi.
COMMAND: İşlemin adı veya komutun kısa adı.

Çıktı, sistemdeki en yüksek CPU kullanımına sahip 10 işlemi gösterir.

Çalıştırma:

Betiği boş bir metin belgesine aktarın.
Betiğin adını top_processes.sh olacak şekilde masaüstüne kayıt edin.
Şimdi masaüstünde bir konsol penceresi açın ve aynen şunu girin.

Kod: Tümünü seç

chmod 755 top_processes.sh
Bunun anlamI : Sahibi için okuma, yazma ve çalıştırma; grup ve diğer kullanıcılar için sadece okuma ve çalıştırma izni vermektir.

Şimdi terminal'den ;

Kod: Tümünü seç

sh top_processes.sh
veya

Kod: Tümünü seç

./top_processes.sh
veya

Kod: Tümünü seç

bash top_processes.sh
Güle güle kullanın.
Dosya ekleri
top_processes.sh.7z
TRWE_2012 Kodlanmıştır.
Aralık 2025
(519 Byte) 1 kere indirildi
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim

Etiketler:
Cevapla

“Bash Shell Betiklerimiz” sayfasına dön