اطلاعات سیستم و مانیتورینگ در لینوکس
نظارت بر یک سیستم لینوکس (مانیتورینگ) به معنای بررسی عملکرد سختافزار و نرمافزار رایانه شما است. این کار به ردیابی عملکرد، یافتن فرآیندهای سنگین از نظر منابع و تشخیص زودهنگام مشکلات کمک میکند.
- شناخت پردازنده، حافظه (RAM)، دیسکها و فرآیندهای در حال اجرا.
- مشاهده این منابع به صورت بلادرنگ.
- درک پیکربندی سختافزار و محیط عملیاتی.
۱. بررسی اطلاعات سیستم
دستورات اطلاعات سیستم، جزئیاتی در مورد تنظیمات رایانه شما، از جمله سیستم عامل، نسخه هسته و اجزای سختافزاری ارائه میدهند. این اطلاعات برای عیبیابی، بررسی سیستم و آمادهسازی برای نصب نرمافزار مفید است.
مثال ۱. جزئیات کلی سیستم مانند نسخه هسته، نوع دستگاه و نام سیستم عامل را نشان میدهد.
دستور
uname -a
خروجی
چه کاری انجام میدهد
- تمام شناسههای هسته و سیستم موجود را در یک خط چاپ میکند: نام هسته، نام میزبان، نسخه/نسخه هسته، سختافزار دستگاه و سیستمعامل.
- از آن برای تایید سریع نسخه و معماری هسته (مثلا x86_64 در مقابل aarch64) هنگام تطبیق درایورها یا بستهها استفاده کنید.
مثال ۲. اطلاعات سیستم را در قالبی مرتب، شامل نام سیستم عامل، نسخه هسته و جزئیات مجازیسازی نمایش میدهد.
دستور
hostnamectl
خروجی
چه کاری انجام میدهد
- هویت سیستم را در یک بلوک مرتب نشان میدهد: نام میزبان ایستا/گذرا، شناسه دستگاه، شاسی، سیستم عامل، هسته و اطلاعات مجازیسازی.
- برای تایید نام/نسخه توزیع و اینکه آیا درون یک ماشین مجازی یا کانتینر هستید، مفید است.
مثال ۳. اطلاعات CPU مانند نام مدل، تعداد هستهها و رشتهها را فهرست میکند.
دستور
lscpu
خروجی
چه کاری انجام میدهد
- خلاصهای از توپولوژی و ویژگیهای CPU: نام مدل، سوکتها، هستهها، رشتهها در هر هسته و پرچمهایی مانند SSE/AVX.
- از آن برای تخمین ظرفیت موازی (هستهها/رشتهها) و تأیید مجازیسازی یا پشتیبانی از دستورالعملهای ویژه استفاده کنید.
مثال ۴. جزئیات مربوط به دیسکها، پارتیشنها و نقاط اتصال را در یک جدول واضح نمایش میدهد.
دستور
lsblk
خروجی
چه کاری انجام میدهد
- دستگاههای بلوک را به صورت یک درخت واضح فهرست میکند: دیسکها، پارتیشنها، لایههای LVM، اندازهها و نقاط اتصال.
- گزینههایی مانند –fs یا -o NAME,SIZE,TYPE,MOUNTPOINT را برای مشاهده انواع سیستم فایل و محل اتصال دستگاهها اضافه کنید.
مثال ۵. میزان استفاده از حافظه (RAM و swap) را بر حسب واحدهای قابل خواندن توسط انسان نشان میدهد.
دستور
free -h
میزان استفاده از RAM و swap را با واحدهای قابل خواندن توسط انسان، از جمله کل، استفاده شده، آزاد و حافظه موجود، گزارش میدهد.
مثال ۶. به شما میگوید که چه مقدار فضای دیسک در هر سیستم فایل نصب شده استفاده شده و در دسترس است.
دستور
df -h
خروجی
چه کاری انجام میدهد
- فضای دیسک استفاده شده/موجود به ازای هر سیستم فایل نصب شده را بر حسب واحدهای انسانی، به علاوه نقاط اتصال نشان میدهد.
- اسکن با استفاده از %، حجمهای تقریبا پر را تشخیص میدهد؛ برای مشاهده انواع سیستم فایل برای اطلاعات بیشتر، آن را با -T ترکیب کنید.
۲. نظارت بر عملکرد سیستم به صورت بلادرنگ
نظارت بر عملکرد نشان میدهد که منابع سیستم شما (پردازنده، حافظه، دیسک، شبکه) در حال حاضر چگونه استفاده میشوند. این ابزار برای تشخیص تاخیر، بار یا تنگناها مفید است.
مثال ۱. میزان استفاده از CPU و حافظه توسط فرآیندها را به صورت زنده نشان میدهد و به طور خودکار بهروزرسانی میشود.
دستور
top
خروجی
چه کاری انجام میدهد
- نمایشگر فرآیند به صورت زنده و در حال بهروزرسانی با استفاده از CPU/حافظه، میانگین بار و آمار هر فرآیند.
- برای یافتن فرآیندهای سنگین، بر اساس CPU یا MEM مرتب کنید؛ از کلیدهای تعاملی (مثلاً shift+P/M) برای تغییر مرتبسازی استفاده کنید.
مثال ۲. یک نسخه رنگارنگتر و کاربرپسندتر از بالا که در آن میتوانید به راحتی اسکرول کنید و مرتبسازی انجام دهید.
دستور
htop
خروجی
چه کاری انجام میدهد
- جایگزین برتر رنگارنگ و تعاملی با قابلیت پیمایش، نمای درختی و مرتبسازی/فیلترینگ آسان.
- برای حذف سریع فرآیندها و مشاهده میزان مصرف هر هسته عالی است؛ ممکن است نیاز به نصب داشته باشد.
مثال ۳. نمایش آمار سیستم (پردازنده، حافظه و ورودی/خروجی) که هر ۲ ثانیه بهروزرسانی میشود.
دستور
vmstat 2
چه کاری انجام میدهد
- شمارندههای CPU، حافظه، swap و I/O را در یک بازه زمانی ثابت (در اینجا هر ۲ ثانیه) چاپ میکند.
- برای تشخیص فشار بر CPU یا حافظه، r (اجرای صف)، si/so (ورود/خروج swap) و wa (انتظار I/O) را بررسی کنید.
مثال ۴. نشان میدهد که دیسکهای شما چقدر مشغول هستند و آیا دیسکی بیش از حد بارگذاری شده است یا خیر.
دستور
iostat -xz 1
خروجی
چه کاری انجام میدهد
- میزان استفاده، توان عملیاتی و تاخیر به ازای هر دیسک را ارائه میدهد؛ -x آمار تفصیلی را اضافه میکند، -z دستگاههای بیکار را حذف میکند، 1 تعداد رفرشهای 1 ثانیه را تنظیم میکند.
- مقدار بالای %util یا avgqu-sz با افزایش await نشان دهندهی دیسکهای اشباع یا بیش از حد بارگذاری شده است.
مثال ۵. میزان استفاده از شبکه را به صورت بلادرنگ نمایش میدهد که در آن اتصالات بیشترین داده را ارسال یا دریافت میکنند.
دستور
iftop
خروجی
چه کاری انجام میدهد
- نظارت بر پهنای باند به ازای هر اتصال به صورت آنی که نشان میدهد چه کسی بیشترین داده را ارسال/دریافت میکند.
- از آن برای شناسایی میزبانهای پر سر و صدا و تأیید اینکه آیا افزایش ناگهانی سرعت شبکه محلی است یا از راه دور، استفاده کنید.
۳. بررسی سختافزار و دستگاهها
گاهی اوقات، مشکلات به جای نرمافزار، از سختافزار ناشی میشوند. این دستورات به شما کمک میکنند تا بفهمید چه چیزی واقعا نصب شده و کار میکند.
مثال ۱. تمام دستگاههای PCI (اتصال اجزای جانبی) مانند کارتهای گرافیک، آداپتورهای شبکه و غیره را فهرست میکند.
دستور
lspci
خروجی
چه کاری انجام میدهد
- باسها و دستگاهها را میشمارد تا تایید کند چه سختافزاری توسط هسته شناسایی شده است.
- برای عیبیابی درایور و فهرستبندی پردازندههای گرافیکی، کارتهای شبکه و لوازم جانبی USB مفید است.
مثال ۲. دستگاههای USB متصل فعلی را فهرست میکند.
دستور
lsusb
خروجی
چه کاری انجام میدهد
- دستگاههای USB متصل را به همراه شناسههای فروشنده/محصول و توصیفکنندههای اولیه نشان میدهد.
- قبل از بررسی dmesg یا درایورها، به تأیید شناسایی دستگاه USB کمک میکند.
مثال ۳. جزئیات سختافزار مانند سازنده، مدل و نسخه BIOS را نشان میدهد.
دستور
sudo dmidecode -t system
خروجی
چه کاری انجام میدهد
- دادههای میانافزار (DMI/SMBIOS) را میخواند تا سازنده سیستم، نام محصول، سریال و نسخه BIOS/UEFI را گزارش دهد.
- از انواع خاص -t (مثلا bios، system، memory) برای استخراج اطلاعات داراییها و سختافزارهای هدف استفاده کنید.
۴. مشاهده لاگها و رویدادهای سیستم
لاگها حاوی پیامهایی از سیستم و سرویسها هستند و توضیح میدهند که چرا مشکلی پیش آمده است.
مثال ۱. خطاها و هشدارهای اخیر سیستم را نشان میدهد.
دستور
journalctl -xe
چه کاری انجام میدهد
- گزارشهای اخیر را با توضیحات بیشتر و نکات اولویتبندی، با تمرکز بر خطاها و رویدادهای حیاتی نشان میدهد.
- اولین توقف ایدهآل پس از یک شکست؛ سرویس -u را برای چرخش به گزارشهای خاص سرویس اضافه کنید.
مثال ۲. لاگهای مربوط به یک سرویس خاص را نمایش میدهد.
دستور
journalctl -u servicename
چه کاری انجام میدهد
- گزارشهای مربوط به یک سرویس خاص systemd را فیلتر میکند و جدول زمانی و خرابیها را مشخص میکند.
- برای بررسیهای محدود به زمان، –since/–until را اضافه کنید؛ برای دنبال کردن رویدادهای زنده از -f استفاده کنید.
مثال ۳. پیامهای هسته (مثلا سختافزار شناساییشده، درایورها یا خرابیها) را نشان میدهد.
دستور
dmesg -T
چه کاری انجام میدهد
- پیامهای بافر حلقه هسته را با مهرهای زمانی قابل خواندن توسط انسان چاپ میکند.
- برای تشخیص سختافزار، مشکلات درایور و ردپاهای خرابی بلافاصله پس از بوت یا خطاها، اینجا را ببینید.
۵. بررسی میزان استفاده از دیسک و فایل
مانیتورینگ دیسک به جلوگیری از مشکلات فضا کمک میکند و عملکرد را پایدار نگه میدارد.
مثال ۱. میزان استفاده و نوع فایل سیستم را نشان میدهد.
df -hT
چه کاری انجام میدهد
- میزان استفاده را بر اساس هر سیستم فایل، شامل نوع آن، نمایش میدهد؛ اندازههای قابل خواندن توسط انسان، اسکن را ساده میکند.
- برای تایید اینکه کدام mount در حال پر شدن است و از چه سیستم فایلی استفاده میکند (مثلا ext4، xfs، btrfs) مفید است.
مثال ۲. به شما میگوید که یک پوشه یا دایرکتوری چقدر بزرگ است.
دستور
du -sh /path
خروجی
چه کاری انجام میدهد
- حجم کل یک دایرکتوری را با یک عدد واحد و قابل فهم برای انسان خلاصه میکند.
- با du -h –max-depth=1 ترکیب کنید تا بزرگترین زیرپوشه را پیدا کنید.
۶. مدیریت سرویسها و راهاندازی
لینوکس از سرویسها برای اجرای برنامهها در پسزمینه استفاده میکند (مانند سرورهای وب یا پایگاه داده). شما میتوانید به راحتی آنها را بررسی و کنترل کنید.
مثال ۱. نشان میدهد که آیا یک سرویس در حال اجرا است یا خیر.
دستور
systemctl status service-name
چه کاری انجام میدهد
- وضعیت سرویس، آخرین لاگها، PID اصلی و خرابیهای اخیر را در یک نما نشان میدهد.
- برای بررسی سریع سلامت و تأیید اینکه آیا راهاندازی مجدد یا خرابی رخ میدهد، عالی است.
مثال ۲. سرویس را شروع و فعال میکند تا در هنگام بوت اجرا شود.
دستور
systemctl enable --now service-name
چه کاری انجام میدهد
- فعال کردن شروع سرویس هنگام بوت و شروع فوری آن.
- پس از نصب یا پیکربندی استفاده میشود تا سرویس پس از راهاندازی مجدد نیز پابرجا بماند.
مثال ۳. سرویسهایی را که شروع به کارشان با شکست مواجه شده است، فهرست میکند.
دستور
systemctl --failed
چه کاری انجام میدهد
- واحدهایی را که شروع به کار نکردهاند، به همراه دلایل و توضیحات مختصر فهرست میکند.
- پس از بوت شدن، از اینجا شروع کنید تا موارد مورد نیاز را اولویتبندی کنید.
توجه: برخی از این دستورات و خروجیها عمداً حذف شدهاند یا ممکن است در محیطهای خاصی به دلیل محدودیتهای حریم خصوصی، مجوز یا امنیتی (مثلاً ترمینالهای سندباکس، ماشینهای مجازی آزمایشگاهی مدیریتشده یا امتیازات محدود کاربر) اجرا نشوند.
۷. بررسیهای اولیه امنیتی و کاربری
امنیت با دانستن اینکه چه کسی وارد سیستم شده است و چه کاری میتواند انجام دهد، آغاز میشود.
مثال ۱. شناسه و گروههای کاربر فعلی را نمایش میدهد.
دستور
id
خروجی
چه کاری انجام میدهد
- هویت کاربر را چاپ میکند: شناسه کاربری (UID)، گروه اصلی و گروههای تکمیلی.
- از آن برای تأیید عضویت در گروههای ممتاز مانند sudo یا docker استفاده کنید.
مثال ۲. نشان میدهد که کاربر فعلی چه دستوراتی را میتواند با مجوزهای sudo اجرا کند.
دستور
sudo -l
خروجی
چه کاری انجام میدهد
- طبق گفته sudoers، دستوراتی را که کاربر فعلی میتواند با امتیازات بالا اجرا کند، فهرست میکند.
- برای ممیزیهای با حداقل امتیاز و اعتبارسنجی دسترسی مدیر مورد انتظار مفید است.
مثال ۳. فهرستی از ۱۰ ورود آخر به سیستم شما.
دستور
last -n 10
خروجی
چه کاری انجام میدهد
- ۱۰ جلسه ورود آخر را به همراه نامهای کاربری، زمانها و منابع نمایش میدهد.
- به شناسایی ورودهای مشکوک یا تأیید پنجرههای تعمیر و نگهداری کمک میکند.
۸. یک اسکریپت ساده برای سلامت سیستم
شما میتوانید بررسیهای سیستم را با یک اسکریپت کوتاه خودکار کنید. یک فایل به نام health.sh ایجاد کنید، این را در آن قرار دهید و آن را با bash health.sh اجرا کنید.
#!/usr/bin/env bash
echo "== SYSTEM =="
hostnamectl | egrep 'Operating System|Kernel|Architecture'
echo; echo "== CPU =="
lscpu | egrep 'Model name|CPU|Thread|Core|MHz'
echo; echo "== MEMORY =="
free -h
echo; echo "== DISK USAGE =="
df -hT | awk 'NR==1 || $7 ~ /^\/(home|var|root|\/|boot|data)/'
echo; echo "== NETWORK PORTS =="
ss -tuln | head -n 10
echo; echo "== LOAD AVERAGE (1/5/15) =="
awk '{print $1,$2,$3}' /proc/loadavg
echo; echo "== TOP PROCESSES =="
ps -eo pid,comm,%cpu,%mem --sort=-%cpu | head -n 10
این اسکریپت خلاصهای از سلامت سیستم ارائه میدهد که به بررسی سریع و بینقص آن قبل از عیبیابی یا استقرار سیستم کمک میکند.
درباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقتاین سایت از اکیسمت برای کاهش جفنگ استفاده میکند. درباره چگونگی پردازش دادههای دیدگاه خود بیشتر بدانید.
















دیدگاهتان را بنویسید