Sistem Kaynakları Tüketen En Son On İşlem
Gönderilme zamanı: 22 Oca 2025 16:45
top_processes.sh
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:
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:
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:
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
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.
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.
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 ;
veya
veya
Güle güle kullanın.
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 "------------------------------------------"
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"
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
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
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 "------------------------------------------"
Ö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
------------------------------------------
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
Şimdi terminal'den ;
Kod: Tümünü seç
sh top_processes.sh
Kod: Tümünü seç
./top_processes.sh
Kod: Tümünü seç
bash top_processes.sh