مانیتورینگ شبکه با ping
امین | سه شنبه ۲ خرداد ۱۳۹۱
نمیدونم چرا اینترنت من (ADSL) بعضی وقت ها قطع میشه. به صورتی که به شبکه وصله اما هیچ دیتا ای رد و بدل نمیشه. این یکم ازار دهنده است، مخصوصا وقتی که دارم (مثلا با تورنت) دانلود میکنم و کاری به کار کامپیوتر ندارم. بنابراین متوجه نمیشم که اینترنت قطع شده.
میشینم خیلی منطقی با لینوکس حرف میزنم. بهش میگم ببین پسر جان، راس هر ۱۵ دقیقه سه بار ping کن به گوگل، اگه دیدی پینگ جواب میده و هر ۳ تا بسته رو دریافت میکنی، بگو شبکه وصله. اما اگه این طور نبود، یه دینگ بزن که من بفهمم! البته هر دستور دیگه ای میتونید بدید. من چون mplayer دارم از اون استفاده کردم.
خب اینو ترجمه میکنم:
میشینم خیلی منطقی با لینوکس حرف میزنم. بهش میگم ببین پسر جان، راس هر ۱۵ دقیقه سه بار ping کن به گوگل، اگه دیدی پینگ جواب میده و هر ۳ تا بسته رو دریافت میکنی، بگو شبکه وصله. اما اگه این طور نبود، یه دینگ بزن که من بفهمم! البته هر دستور دیگه ای میتونید بدید. من چون mplayer دارم از اون استفاده کردم.
خب اینو ترجمه میکنم:
#!/bin/bash if [[ $(ping -q -c 3 www.google.com) == @(*3 received*) ]]; then echo “network is up” else mplayer /usr/share/sounds/freedesktop/stereo/complete.oga && echo “network is down” fi
برای این کار، شما عبارت بالا رو توی یه فایلی مثلا به اسم pingstat ذخیره کنید. من این فایل رو در فولدر home خودم قرار میدم. برای اینکه هر ۱۵ دقیقه این اسکریپت اجرا بشه، باید از crontab استفاده کنیم. اگر براتون نصب نیست، از طریق بسته های توزیع خودتون نصبش کنید. برای انجام این دستور در حالت گرافیکی میتونید از gnome scheduled tasks استفاده کنید. در غیر این صورت از طریق خط فرمان به این صورت میشه:
(نکته: یادتون نره که مجوز اجرا شدن به اسکریپت رو بهش بدید. مثلا
chmod +x ~/pingstat)
crontab -e
وخط زیر رو اضافه کنید
*/15 * * * * ~/pingstat
یک اسکریپت کامل تر در اینجا وجود داره که وقتی ping میکنه اگر در دسترس نباشه یک ایمیل میفرسته!