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