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