یک اسکریپت Bash بنویسید که هنگام اجرا زمان جاری، درصد استفاده CPU، میزان مصرف حافظه، درصد استفاده دیسک برای ریشه (/)، زمان uptime و تعداد پردازشهای در حال اجرا را استخراج کرده و بهصورت یک سطر CSV در فایلی به نام system_stats.csv اضافه کند.
3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:26 0.0
برای حل این مسئله از دستورات پایهای لینوکس مانند date برای زمان، top -bn1 یا /proc/stat برای CPU (با پردازش خروجی توسط awk)، free -m برای حافظه، df -h / برای فضای دیسک، uptime یا uptime -p برای مدت زمان کار، و ps -e | wc -l برای شمارش پردازشها استفاده کنید. خروجیها را با awk، cut یا tr پاکسازی و با printf یا echo بهصورت یک سطر جداشده با کاما فرمت کرده و با >> به فایل system_stats.csv اضافه کنید؛ از نقلقولها برای مقادیر دارای فاصله و از بررسی خطاهای ساده (مثلاً وجود دسترسی نوشتن) غافل نشوید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این ایده خوبه، اما برای پایداری خروجی نکتههای کلیدی وجود دارد: از مطمئن بودن دسترسی نوشتن به system_stats.csv و استفاده از redirection >> برای اضافه کردن استفاده کنید و خطاها را بررسی کنید. برای جلوگیری از مشکلات ناشی از فضاهای خالی در مقادیر، خروجی را با printf قالببندی کنید و مقادیر دارای فاصله را در نقلقول قرار دهید تا CSV معتبر بماند. اگر با منابع متفاوت سیستم مواجه شدید، میتوانید مقدار CPU را از /proc/stat با awk محاسبه کنید و حافظه را از free -m و دیسک را با df -h / استخراج کنید تا دقیقتر باشد. و در نهایت، اجرای دورهای با cron و ثبت خطاها در یک لاگ میتواند نگهداری و اشکالزدایی را سادهتر کند.
گزارش