اسکریپت لینوکسی که در این مطلب بیان می شود پردازش هایی با بیشتری میزان مصرف CPU/RAM در سیستم عامل را نشان میدهد.

این اسکریپت شماره فرایند، نام مالک فرایند، نام پردازش و میزان مصرف پردازش هایی که در حال اجرا هستند را نشان می دهد.

در این آموزش از از دستور ps استفاده گردیده است.

دستور ps چیست؟

این دستور لیست اطلاعات فرایند های فعال یا در حال اجرای سیستم عامل لینوکس را نشان می دهد.

در واقع یک Snapshot از فراین فعلی برداشته و اطلاعات آن را نشان می دهد. اطلاعاتی شامل:

  • نام کاربری (username)
  • شناسه کاربر (user id)
  • cpu usage (میزان استفاده از CPU)
  • memory usage (میزان استفاده از RAM)
  • تاریخ و زمان شروع فرایند
  • و…

اسکریپت 1: نمایش پردازش هایی با بیشترین میزان مصرف CPU سیستم عامل

این اسکریپت به شما نشان میدهد که کدام پردازش ها بیشتر پردازنده سیستم شما را درگیر کرده اند.

فایل زیر را توسط ویرایشگر مورد نظر باز کنید و محتویات آن را به فایل اسکریپت وارد نمایید.

# vi /opt/scripts/long-running-cpu-proc.sh
#!/bin/bash
ps -eo pid,user,ppid,%mem,%cpu,cmd --sort=-%cpu | head | tail -n +2 | awk '{print $1}' > /tmp/long-running-processes.txt
echo "--------------------------------------------------"
echo "UName PID CMD Process_Running_Time"
echo "--------------------------------------------------"
for userid in `cat /tmp/long-running-processes.txt`
do
username=$(ps -u -p $userid | tail -1 | awk '{print $1}')
pruntime=$(ps -p $userid -o etime | tail -1)
ocmd=$(ps -p $userid | tail -1 | awk '{print $4}')
echo "$username $userid $ocmd $pruntime"
done | column -t
echo "--------------------------------------------------"

با دستور زیر فایل مورد نظر را به یک فایل اجرایی تبدیل کنید.

# chmod +x /opt/scripts/long-running-cpu-proc.sh

سپس توسط دستور زیر آن را اجرا نمایید و خروجی آن را مشاهده نمایید.

# sh /opt/scripts/long-running-cpu-proc.sh

پس از اجرای دستور مورد نظر خروجی زیر را می توانید مشاهده نمایید.

----------------------------------------------------
UName PID CMD Process_Running_Time
----------------------------------------------------
tahlilyar 5214 Web 01:18:48
tahlilyar 5748 Web 01:08:20
tahlilyar 8043 inkscape 22:11
tahlilyar 5269 Web 01:18:31
tahlilyar 1712 Web 10:44:50
tahlilyar 5335 RDD 01:17:54
tahlilyar 1639 firefox 10:44:51
tahlilyar 7793 nautilus 24:14
tahlilyar 6301 Web 57:40
----------------------------------------------------

اسکریپت 2: نمایش پردازش هایی با بیشترین میزان مصرف RAM سیستم عامل

این اسکریپت به شما نشان میدهد که کدام پردازش ها بیشتر حافظه موقت سیستم شما را درگیر کرده اند.

فایل زیر را توسط ویرایشگر مورد نظر باز کنید و محتویات آن را به فایل اسکریپت وارد نمایید.

# vi /opt/scripts/long-running-memory-proc.sh
#!/bin/bash
ps -eo pid,user,ppid,%mem,%cpu,cmd --sort=-%mem | head | tail -n +2 | awk '{print $1}' > /tmp/long-running-processes-1.txt
echo "--------------------------------------------------"
echo "UName PID CMD Process_Running_Time"
echo "--------------------------------------------------"
for userid in `cat /tmp/long-running-processes-1.txt`
do
username=$(ps -u -p $userid | tail -1 | awk '{print $1}')
pruntime=$(ps -p $userid -o etime | tail -1)
ocmd=$(ps -p $userid | tail -1 | awk '{print $4}')
echo "$username $userid $ocmd $pruntime"
done | column -t
echo "--------------------------------------------------"

با دستور زیر فایل مورد نظر را به یک فایل اجرایی تبدیل کنید.

# chmod +x /opt/scripts/long-running-memory-proc.sh

سپس توسط دستور زیر آن را اجرا نمایید و خروجی آن را مشاهده نمایید.

# sh /opt/scripts/long-running-memory-proc.sh

پس از اجرای دستور مورد نظر خروجی زیر را می توانید مشاهده نمایید.

----------------------------------------------------
UName PID CMD Process_Running_Time
----------------------------------------------------
tahlilyar 1639 firefox 10:44:56
tahlilyar 2997 Web 10:39:54
tahlilyar 5269 Web 01:18:37
tahlilyar 1712 Web 10:44:55
tahlilyar 8043 inkscape 22:17
tahlilyar 5214 Web 01:18:54
tahlilyar 1898 Web 10:44:48
tahlilyar 1129 Xorg 10:45:07
tahlilyar 6301 Web 57:45
----------------------------------------------------