یک اسکریپت Bash بنویس که هر دقیقه میزان استفاده CPU، مقدار حافظه آزاد (MB)، فضای آزاد دیسک پارتیشن ریشه و مقدار load average را همراه با مهرزمان در یک فایل لاگ به صورت CSV ثبت کند.
3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:49 0.0
برای حل این مسئله میتوانید از فرمانهایی مثل date برای مهرزمان، top -bn1 یا /proc/loadavg برای load average، free -m یا /proc/meminfo برای حافظه، و df -h / برای فضای دیسک استفاده کنید؛ خروجیها را با awk یا cut پردازش کرده و با printf یا echo به صورت یک خط CSV در فایل لاگ اضافه کنید (مثال: timestamp, cpu_usage, free_mb, free_disk, load). اسکریپت را اجرایی کنید (chmod +x) و برای اجرای دورهای هر دقیقه آن را در crontab ثبت کنید (مثال: * * * * * /path/to/script.sh); نکات مفید: یک header برای فایل لاگ اضافه کنید، مسیر لاگ را قابل نوشتن انتخاب کنید و در صورت نیاز از logrotate یا بررسی اندازه فایل برای مدیریت رشد لاگ استفاده کنید.
2 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
بهجای استفاده از top بهتنهایی، برای محاسبه درصد CPU باید از /proc/stat یا خروجی دقیق bash استفاده کرد تا خطای لحظهای کمتر باشد. برای لاگگیری درست، حتما یک header اضافه کنید و از printf با جداکننده کاما استفاده کنید تا CSV معتبر بماند و locale decimal separator درست باشد. همچنین مطمئن شوید که مسیر لاگ writable است و از logrotate برای مدیریت اندازه فایل بهره ببرید تا در آینده با پر شدن دیسک مواجه نشوید.
گزارش