یک اسکریپت Bash بنویسید که میانگین بار سیستم (load average) یا درصد استفاده از حافظه را بررسی کند و اگر مقدار مورد نظر از آستانهٔ تعیین‌شده گذشت، با ارسال ایمیل یا نمایش اعلان محلی (notify-send) هشدار دهد.

21.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 04:45

0.0

برای حل این مسئله می‌توانید از فایل /proc/loadavg یا دستور free -m همراه با awk برای استخراج مقدارها استفاده کنید و آستانه‌ها را به‌صورت متغیر قابل تنظیم تعریف کنید؛ برای مقایسهٔ اعداد اعشاری از ابزارهایی مثل bc استفاده کنید. برای ارسال هشدار می‌توانید از mailx یا sendmail برای ایمیل یا notify-send برای اعلان دسکتاپ بهره ببرید؛ بهتر است پیام شامل زمان و نام میزبان باشد و اسکریپت را با cron به‌طور دوره‌ای اجرا کنید تا پایش مداوم انجام شود. نکات: اطمینان از پیکربندی سرویس ایمیل روی سرور، مدیریت سطوح هشدار و جلوگیری از ارسال هشدارهای تکراری (با ذخیرهٔ زمان آخرین هشدار) مفید است.

توسط پژوهشگر در 198 روز قبل ساعت 04:45
دسته بندی ها: Bash Scripting Bash Scripting for beginner
sara در 198 روز قبل ساعت 04:46

برای جلوگیری از هشدارهای کاذب حتما آستانه‌ها را به‌صورت متغیر قابل تنظیم و یک دورهٔ "cool‑down" یا hysteresis تعریف کنید تا بعد از ارسال هشدار بلافاصله تکرار نشود. برای مقایسهٔ اعشاری از bc استفاده کنید و مقادیر را از /proc/loadavg یا خروجی free -m با awk استخراج نمایید. اگر از notify-send بهره می‌برید مطمئن شوید متغیرهای محیطی DISPLAY و DBUS_SESSION_BUS_ADDRESS در کرون‌جاب یا سرویس شما تنظیم شده‌اند و برای ایمیل سرویس mailx/sendmail روی سرور پیکربندی شده باشد. ذخیرهٔ زمان آخرین هشدار در فایل ساده یا استفاده از فایل قفل کمک می‌کند تنها در صورت تغییر وضعیت واقعی اعلان ارسال شود.

گزارش

1 پاسخ

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

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