یک اسکریپت Bash بنویسید که نام میزبان یا آدرس IP را به‌عنوان آرگومان دریافت کند، با 4 بسته ping بررسی کند آیا میزبان در دسترس است و درصد بسته‌ از دست‌رفته و زمان میانگین round-trip را نمایش دهد؛ اگر میزبان در دسترس نبود، traceroute را اجرا و خروجی را در فایلی به‌نام trace_.log ذخیره کند.

8.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:42

0.0

از دستور ping با گزینه -c 4 برای ارسال چهار بسته استفاده کنید و خروجی را با grep/awk یا sed پارس کنید تا مقدار "packet loss" و مقدار "avg" از خط rtt/min/avg/max/mdev استخراج شود. برای تشخیص در دسترس نبودن می‌توانید هم به کد خروجی ping (متغیر $?) و هم به درصد packet loss (مثلاً 100%) نگاه کنید. در صورت عدم پاسخ، دستور traceroute را اجرا کرده و خروجی را با هدایتگر > در فایل trace_نام_میزبان.log ذخیره کنید. نکات: ورودی را اعتبارسنجی کنید (وجود آرگومان)، از traceroute -n برای جلوگیری از تأخیر در رزولوشن DNS استفاده کنید و قبل از اجرا فایل را با chmod +x قابل اجرا کنید.

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

طرح شما مناسب است: با ping -c 4 می‌توانید 4 بسته ارسال کنید و با parsing خروجی، درصد packet loss و میانگین RTT را استخراج کنید. برای پایداری بیشتر، از set -euo pipefail استفاده کنید و ورودی‌ها را به‌دقت validate کنید تا خطاهای ورودی به‌طور واضح گزارش شوند. استفاده از traceroute -n برای جلوگیری از تاخیر DNS ایده خوبی است و باید خروجی را به فایل trace_<نام_میزبان>.log هدایت کنید. همچنین می‌توانید نام فایل لاگ را با تاریخ یا شناسه اضافه کنید تا فایل‌های تکراری ایجاد نشوند.

گزارش

1 پاسخ

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

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