یک اسکریپت 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 اضافه کنید؛ از نقل‌قول‌ها برای مقادیر دارای فاصله و از بررسی خطاهای ساده (مثلاً وجود دسترسی نوشتن) غافل نشوید.

توسط پژوهشگر در 202 روز قبل ساعت 02:26
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arman در 202 روز قبل ساعت 09:41

این ایده خوبه، اما برای پایداری خروجی نکته‌های کلیدی وجود دارد: از مطمئن بودن دسترسی نوشتن به system_stats.csv و استفاده از redirection >> برای اضافه کردن استفاده کنید و خطاها را بررسی کنید. برای جلوگیری از مشکلات ناشی از فضاهای خالی در مقادیر، خروجی را با printf قالب‌بندی کنید و مقادیر دارای فاصله را در نقل‌قول قرار دهید تا CSV معتبر بماند. اگر با منابع متفاوت سیستم مواجه شدید، می‌توانید مقدار CPU را از /proc/stat با awk محاسبه کنید و حافظه را از free -m و دیسک را با df -h / استخراج کنید تا دقیق‌تر باشد. و در نهایت، اجرای دوره‌ای با cron و ثبت خطاها در یک لاگ می‌تواند نگهداری و اشکال‌زدایی را ساده‌تر کند.

گزارش

1 پاسخ

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

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