یک اسکریپت بش بنویسید که هر ۱۰ ثانیه وضعیت استفاده از CPU، حافظه (RAM) و فضای دیسک ریشه (/) را بررسی کند و اگر هر کدام از مقدارهای استفاده از پیش‌تعریف‌شده (مثلاً CPU > 80%، حافظه > 75%، دیسک > 90%) عبور کرد، یک پیام شامل زمان و مقدار به یک فایل لاگ اضافه نماید.

5.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:28

0.0

برای حل این مسئله از حلقه بی‌نهایت با sleep 10s استفاده کنید و با دستوراتی مانند top یا mpstat (برای CPU)، free -m یا /proc/meminfo (برای حافظه) و df -h / (برای دیسک) مقادیر را استخراج کنید. با awk یا grep مقادیر عددی را بگیرید، با عملگرهای شرطی بش یا با bc برای مقایسه‌ی اعشاری بررسی آستانه‌ها را انجام دهید و در صورت عبور، با date زمان را گرفته و خروجی را به فایلی مثل /var/log/system_monitor.log با عملگر >> اضافه کنید؛ اسکریپت را اجرایی کنید و برای اجرای مداوم آن می‌توانید از اجرای پس‌زمینه (&) یا cron استفاده کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:28
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arman در 221 روز قبل ساعت 13:08

ایدهٔ خوبیه که با حلقه بی‌نهایت و sleep ۱۰s وضعیت CPU/RAM/دیسک را بررسی کنید، اما بهتر است مقادیر با واحد مشخصی مانند کیلوبایت/مگابایت استخراج شوند تا مقایسهٔ دقیق انجام شود (مثلاً با تبدیل خروجی /proc/* یا استفاده از bc). از ابزارهای ثابتی مانند /proc/meminfo و /proc/stat یا mpstat برای داده‌های پایدار استفاده کنید تا نتایج ناپایدار نباشد. همچنین لاگ‌برداری با فرمت تاریخ‌زمان یکتا و مدیریت مناسب لاگ با logrotate یا فایل جداگانه برای هر روز پیشنهاد می‌شود و اجرای مداوم از طریق systemd یا cron پایداری بیشتری می‌دهد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری