是否有一个工具可以记录 Mac 上的互联网连接?

是否有一个工具可以记录 Mac 上的互联网连接?

我的 Mac 以 dyndns ip 运行服务器。要正常工作,它必须始终连接到互联网。但不幸的是,它似乎一天中没有连接很多次。所以我需要一个工具,每分钟检查一次 Mac 是否连接到互联网(即尝试访问谷歌),并将其写入日志文件。

你知道有什么可以帮忙的吗?我需要检查机器本身是否有互联网。Mac OS 10.5。谢谢大家!!

答案1

您可以在普通 Mac 上安装 nagios,它们也是 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

答案2

Nagios 将在 Mac 上运行,并且它是开源/免费的!

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

安装 Nagios 后,您可以将任何运行 Mac OS X Server 的 Mac 变成一个网络监控站,能够在其他人注意到您之前通知您服务器上的硬件和软件问题。Nagios 可以使用电子邮件和短信通知您问题和问题恢复。(后者很重要,因为它通常可以让您免于深夜远程访问会话。)由于 Nagios 需要 Perl、Apache、SNMP 和 Mac OS X Server 附带或可以轻松安装的几个其他程序,因此对于任何网络管理员来说,这都是更好地监控其网络的好方法。

答案3

在我看来,Nagios 在这方面有点小题大做。另外,导致离线阶段延长的一个可能原因是缺少网络流量,因此您的路由器会离线。

上面的 James 脚本可以防止这种情况发生,我只需稍微修改一下就可以避免每 60 秒下载一次 google 页面。

只需将 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 调用,它使用一个带有 5 秒超时的单次 ping 从 google 下载完整页面,这通常已经足够了。

答案4

这可能有点过头了,但我建议你使用 nagios 的插件链接文本, 使用它们您可以编写一个简单的 shell 脚本来执行您需要的操作,或者我猜另一种选择您也可以使用简单的 ping 和 shell 脚本,但使用 nagios 插件可以更轻松地完成。

相关内容