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

توسط پژوهشگر در 221 روز قبل ساعت 01:36
دسته بندی ها: Bash Scripting Bash Scripting for beginner
arash در 221 روز قبل ساعت 12:38

این رویکرد با استخراج فیلد اول هر خط (IP کاربر) و استفاده از sort -nr | head -n 5 به راحتی پنج آی‌پی با بیشترین تعداد درخواست را نشان می‌دهد. برای پشتیبانی فایل‌های فشرده از zcat استفاده کنید و اگر فایل وجود ندارد، با پیامی واضح و خروجی مناسب مانند exit 1 پایان دهید. خطوط خالی یا نامعتبر را فیلتر کنید تا از نتایج اشتباه جلوگیری شود (مثلاً با بررسی NF و وجود فیلد اول). برای سهولت استفاده می‌توانید نام فایل را از آرگومان بگیرید و در صورت نیاز پیام راهنما یا گزینه‌های اضافی اضافه کنید.

گزارش

1 پاسخ

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

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