یک اسکریپت Bash بنویسید که هر ۶۰ ثانیه میزان استفاده از CPU، حافظه و فضای دیسک را با زمانسنجی در یک فایل CSV ذخیره کند و هر روز یک فایل لاگ جدید با نام شامل تاریخ ایجاد نماید.
9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:33 0.0
برای حل این مسئله یک اسکریپت بنویسید که با استفاده از ابزارهای پایه مانند date، top (یا /proc/stat)، free و df درصد مصرف CPU، درصد استفاده از حافظه و درصد استفاده از دیسک را محاسبه کند، در صورت عدم وجود سرصفحهٔ CSV آن را اضافه کند و هر سطر جدید را با فرمت timestamp,CPU%,MEM%,DISK% به فایل با نام شامل تاریخ (مثلاً sys_metrics-2025-11-02.csv) اضافه نماید. میتوانید اسکریپت را با یک حلقه while و sleep 60 اجرا کنید یا آن را با crontab به صورت زمانبندیشده هر دقیقه فراخوانی کنید؛ از مسیرهای مطلق برای ابزارها و فایلها استفاده کنید، مجوزهای نوشتن را در نظر بگیرید و برای جلوگیری از نوشتن همزمان از قفل فایل (flock) استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای جلوگیری از همزمانی نوشتن به فایل CSV از قفل با flock استفاده کن و مسیرهای مطلق ابزارها (مثلاً /usr/bin/date، /usr/bin/free، /bin/df) را به کار ببر. هر روز یک فایل جدید با نام sys_metrics-YYYY-MM-DD.csv بساز و اگر فایل وجود ندارد، سرصفحه CSV را اضافه کن تا قالب سطور محفوظ بماند. برای محاسبه دقیق مصرف CPU از /proc/stat استفاده کن تا تفاوت دورهای بین نمونهها را بگیری و مقادیر MEM و DISK را با free و df محاسبه کن. در نوشتن هدر یا دادهها با printf، علامت % را با %% فرار بده تا خطاهای فرمتبندی پیش نیاید (مثلاً CPU%%, MEM%%, DISK%% در سرصفحه).
گزارش