منبع اصلی نوشتار زیر در این لینک قرار دارد

مانیتورینگ شبکه با ping

نمیدونم چرا اینترنت من (ADSL) بعضی وقت ها قطع میشه. به صورتی که به شبکه وصله اما هیچ دیتا ای رد و بدل نمیشه. این یکم ازار دهنده است، مخصوصا وقتی که دارم (مثلا با تورنت) دانلود میکنم و کاری به کار کامپیوتر ندارم. بنابراین متوجه نمیشم که اینترنت قطع شده.
میشینم خیلی منطقی با لینوکس حرف میزنم. بهش میگم ببین پسر جان، راس هر ۱۵ دقیقه سه بار 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 میکنه اگر در دسترس نباشه یک ایمیل میفرسته!



به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد