یک اسکریپت Bash بنویسید که به صورت دوره‌ای (مثلاً هر 60 ثانیه) میزان استفاده CPU، حافظه و دیسک را خوانده و در صورت عبور هر کدام از آستانه‌های مشخص‌شده (مثلاً CPU>80%، حافظه>75%، دیسک>90%) پیام هشدار همراه با زمان در یک فایل لاگ ثبت کند.

12.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:57

0.0

برای حل این مسئله از دستورات استاندارد لینوکس مثل top یا /proc/loadavg برای بار پردازنده، free برای وضعیت حافظه و df برای فضای دیسک استفاده کنید. اسکریپت را داخل یک حلقه while با sleep قرار دهید، مقادیر را با awk یا cut استخراج و درصدها را به عدد تبدیل کنید، سپس با مقایسه با آستانه‌ها تصمیم بگیرید که آیا هشدار ثبت شود؛ برای ثبت لاگ از echo همراه با date استفاده کنید. نکته‌ها: آستانه‌ها را به‌صورت پارامتر ورودی تعریف کنید تا قابل تنظیم باشند، خروجی‌های دستورات را با trim و حذف علامت درصد پردازش کنید و اسکریپت را ابتدا دستی تست کنید سپس در کرون یا systemd timer اجرا نمایید.

توسط پژوهشگر در 201 روز قبل ساعت 03:57
دسته بندی ها: Bash Scripting Bash Scripting for beginner
sara در 201 روز قبل ساعت 04:34

برای پایداری و دقت، به‌جای محاسبه با خروجی top از /proc/stat استفاده کنید تا مصرف CPU را به‌طور دقیق و بدون نویز بیابید. آستانه‌ها را به‌عنوان پارامتر ورودی دریافت کنید و مقادیر اعشاری را با awk به عدد تبدیل کنید تا از مشکلات تبدیل رشته جلوگیری شود. خروجی لاگ را با زمان استاندارد (مثلاً ISO 8601) ثبت کنید و از چرخش لاگ یا روش‌های مدیریت حجم استفاده کنید. در نهایت، برای ایمن‌سازی اسکریپت، از set -euo pipefail استفاده کرده و خطاها را به‌طور مناسب مدیریت کنید و هشدارها را به‌عنوان حداقل یکبار در بازه زمانی ثبت کنید.

گزارش

1 پاسخ

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

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