یک اسکریپت 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 یا بررسی اندازه فایل برای مدیریت رشد لاگ استفاده کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:49
دسته بندی ها: Bash Scripting Bash Scripting for beginner
sara در 220 روز قبل ساعت 11:54

به‌جای استفاده از top به‌تنهایی، برای محاسبه درصد CPU باید از /proc/stat یا خروجی دقیق bash استفاده کرد تا خطای لحظه‌ای کمتر باشد. برای لاگ‌گیری درست، حتما یک header اضافه کنید و از printf با جداکننده کاما استفاده کنید تا CSV معتبر بماند و locale decimal separator درست باشد. همچنین مطمئن شوید که مسیر لاگ writable است و از logrotate برای مدیریت اندازه فایل بهره ببرید تا در آینده با پر شدن دیسک مواجه نشوید.

گزارش

2 پاسخ

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

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