Назад | Перейти на главную страницу

Есть ли инструмент для регистрации подключения к Интернету на Mac?

Мой Mac работает как сервер с IP-адресом dyndns. Для правильной работы он должен быть постоянно подключен к Интернету. но, к сожалению, кажется, что он не подключается много раз в течение дня. Поэтому мне нужен инструмент, который проверяет, например, один раз в минуту, подключен ли Mac к Интернету (т.е. пытается связаться с Google), и записывает его в файл журнала.

Вы знаете что-нибудь, что может здесь помочь? Мне нужно проверить на автомате, есть ли у него интернет. Mac OS 10.5. Спасибо, парни!!

Nagios будет работать на Mac и с открытым исходным кодом / бесплатно!

http://www.macworld.com/article/134079/2008/06/nagios.html

Установка Nagios позволяет превратить любой Mac под управлением Mac OS X Server в станцию ​​сетевого мониторинга, способную уведомить вас о проблемах как с оборудованием, так и с программным обеспечением на вашем сервере, обычно до того, как вас заметят другие. Nagios может использовать как электронную почту, так и SMS, чтобы уведомить вас как о проблемах, так и об устранении проблем. (Последнее важно, поскольку оно часто может спасти вас от ночного сеанса удаленного доступа.) Поскольку Nagios требует Perl, Apache, SNMP и некоторых других вещей, которые Mac OS X Server либо поставляются вместе, либо которые могут быть установлены с простота, это отличный способ для любого сетевого администратора лучше контролировать свою сеть.

Вы можете установить nagios на обычный Mac, они тоже Unix-машины :)

Подойдет ли такой сценарий?

 #!/bin/bash
 LOG=/tmp/LOG
 rm -f $LOG
 while ( true );
 do 
  date >> $LOG;
  curl http://www.google.com/ > /dev/null  2>> $LOG
  sleep 60 ;
 done

ИМХО, Nagios - это перебор для этого. Кроме того, одной из вероятных причин этих расширенных фаз автономного режима является отсутствие сетевого трафика, поэтому ваш маршрутизатор отключается.

Этому будет препятствовать приведенный выше сценарий Джеймса, который я бы немного изменил, чтобы не загружать страницу Google каждые 60 секунд.

Просто замените строку curl google.com на следующую

ping -c1 -t 5 www.google.com > /dev/null
if [ "$?" = "0" ]; then
    echo "I am online" > $LOG
else 
    echo "Boo, the internet is broken, google doesn't answer" > $LOG
fi

или, если вы хотите регистрировать только автономные фазы, измените весь сценарий следующим образом:

#!/bin/bash
LOG=/tmp/internetlog
rm -f $LOG
while ( true );
do 
   ping -c1 -t 5 www.google.com > /dev/null
   if [ "$?" -gt "0" ]; then
       echo `date`  " I am offline" >> $LOG
   fi

 sleep 60 ;
done

Это заменяет вызов curl, который загружает всю страницу из Google с помощью одного пинга с 5-секундным таймаутом, что обычно достаточно.

это может быть немного излишним, но я бы рекомендовал вам использовать плагины nagios текст ссылки, используя их, вы можете написать простой сценарий оболочки, чтобы делать то, что вам нужно, или, я думаю, другой альтернативой вы можете использовать простой пинг также с сценарием оболочки, хотя это можно сделать намного проще с помощью плагинов nagios.