اسکریپت شل برای نظارت بر منابع سرور لینوکس

مقدمه
اوه! بعد از مدت ها، بالاخره تصمیم گرفتم یک پست وبلاگ ساده در Dev بنویسم. بنابراین، بیایید شیرجه بزنیم!
همه ما می دانیم که نظارت موثر سرور برای حفظ ثبات و عملکرد سیستم ضروری است. در این پست وبلاگ، من به شما نشان خواهم داد که چگونه یک اسکریپت پوسته پیشرفته ایجاد کنید که استفاده از CPU، استفاده از حافظه، فضای دیسک، فعالیت شبکه، فرآیندهای در حال اجرا و زمان آپدیت سیستم را در زمان واقعی نظارت می کند.
پیش نیازها
قبل از شروع، مطمئن شوید که:
- نمونه اوبونتو: هر سیستم یا ماشین مجازی مبتنی بر اوبونتو.
- دانش اولیه Shell Scripting: آشنایی با دستورات ترمینال و اصول اسکریپت نویسی.
مرحله 1: یک فایل در اوبونتو ایجاد کنید
با ایجاد یک فایل برای اسکریپت خود شروع کنید. یک ترمینال باز کنید و از ویرایشگر متن دلخواه خود استفاده کنید. در اینجا، ما از vim استفاده خواهیم کرد:
vim monitor_linux.sh
مرحله 2: اسکریپت Shell را بنویسید
اسکریپت زیر را به فایل اضافه کنید:
#!/bin/bash
while true; do
clear
echo "System Resource Monitoring"
echo "--------------------------"
# Display CPU usage
echo "CPU Usage:"
top -n 1 -b | grep "Cpu"
# Display memory usage
echo -e "\nMemory Usage:"
free -h
# Display disk space usage
echo -e "\nDisk Space Usage:"
df -h
# Display top 5 processes by memory usage
echo -e "\nTop 5 Processes by Memory Usage:"
ps -eo pid,ppid,cmd,%mem --sort=-%mem | head -6
# Display network usage
echo -e "\nNetwork Usage (bytes received and transmitted):"
echo "Interface RX Bytes TX Bytes"
cat /proc/net/dev | tail -n +3 | awk '{print $1, $2, $10}'
# Display system uptime
echo -e "\nSystem Uptime:"
uptime -p
sleep 5 # Wait for 5 seconds before the next update
done
مرحله 3: اسکریپت را اجرایی کنید
به اسکریپت مجوزهای اجرایی بدهید:
chmod +x monitor_linux.sh
مرحله 4: اسکریپت را اجرا کنید
اسکریپت را برای نظارت بر سرور خود اجرا کنید:
./monitor_linux.sh
اسکریپت اطلاعات سیستم به روز شده را هر 5 ثانیه نمایش می دهد. برای متوقف کردن اسکریپت، لطفا از CTRL + C استفاده کنید.
در اینجا جزئیات این اسکریپت آمده است:
- استفاده از CPU: دستور بالا میزان استفاده فعلی از CPU را نشان می دهد.
- استفاده از حافظه: دستور free آمار حافظه را در قالبی قابل خواندن برای انسان نشان می دهد.
- استفاده از فضای دیسک: دستور df میزان استفاده از فضای دیسک را برای همه سیستم های فایل نصب شده نشان می دهد.
- 5 فرآیند برتر: دستور ps 5 فرآیند مصرف کننده حافظه را فهرست می کند.
- استفاده از شبکه: بایت های دریافت و ارسال شده برای هر رابط شبکه را با استفاده از /proc/net/dev نمایش می دهد.
- System Uptime: فرمان uptime مدت زمان کارکرد سیستم را نشان می دهد.
نتیجه گیری
این اسکریپت ساده پوسته نمای جامعی از معیارهای عملکرد سرور لینوکس شما ارائه می دهد. شما به راحتی می توانید آن را بیشتر سفارشی کنید تا ویژگی های نظارتی اضافی مانند آمار ورودی/خروجی، استفاده از مبادله یا مکانیسم های هشدار را شامل شود.
من قصد دارم در آینده پست های فنی بیشتری را به اشتراک بگذارم که موضوعاتی مانند AWS، Kubernetes، Prometheus، Elastic و موارد دیگر را پوشش می دهد. تا دفعه بعد، یادگیری مبارک!