یک اسکریپت 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) استفاده کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:33
دسته بندی ها: Bash Scripting Bash Scripting for beginner
reyhaneh در 201 روز قبل ساعت 06:02

برای جلوگیری از هم‌زمانی نوشتن به فایل 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%% در سرصفحه).

گزارش

1 پاسخ

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

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