یک اسکریپت Bash بنویسید که یک فایل لاگ وب (فرمت common/combined آپاچی) را پردازش کرده و پنج آیپی برتر که بیشترین درخواست را ارسال کردهاند همراه با تعداد درخواستهایشان چاپ کند.
2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:36 0.0
از ابزارهای استاندارد خط فرمان مثل awk، sed، cut، sort، uniq و head استفاده کنید؛ برای استخراج آیپیها معمولاً فیلد اول هر سطر کافی است (مثلاً awk '{print $1}'). خروجی را با sort | uniq -c | sort -nr مرتب کنید و با head -n 5 پنج ردیف اول را نمایش دهید. برای انعطافپذیری نام فایل را از آرگومانها بگیرید، پیام خطا یا راهنما در صورت نبود فایل نمایش دهید و در صورت نیاز فایلهای فشرده را با zcat پردازش کنید. نکتهها: خطوط خالی یا نامعتبر را فیلتر کنید، و از exit code مناسب برای خطاها استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
این رویکرد با استخراج فیلد اول هر خط (IP کاربر) و استفاده از sort -nr | head -n 5 به راحتی پنج آیپی با بیشترین تعداد درخواست را نشان میدهد. برای پشتیبانی فایلهای فشرده از zcat استفاده کنید و اگر فایل وجود ندارد، با پیامی واضح و خروجی مناسب مانند exit 1 پایان دهید. خطوط خالی یا نامعتبر را فیلتر کنید تا از نتایج اشتباه جلوگیری شود (مثلاً با بررسی NF و وجود فیلد اول). برای سهولت استفاده میتوانید نام فایل را از آرگومان بگیرید و در صورت نیاز پیام راهنما یا گزینههای اضافی اضافه کنید.
گزارش