写一个脚本来测试网络在接下来的24或48小时内是否停机很容易?我可以使用ssh连接到一个shell,并在48小时后回来查看它是否仍然连接,以查看网络是否已关闭,但是我可以通过编程方式轻松完成吗?容易编写脚本来测试网络是否在接下来的24小时内停机?
回答
互联网(和你的以太网)是一个分组交换网络,它使'down'的定义变得困难。
有些事情是显而易见的;例如,如果您的以太网卡没有报告链接,则表示链接已关闭(除非您有冗余连接)。但是,有一个链接并不意味着它的。
互联网如何工作的基本100英里视图是您的计算机将要发送的数据拆分为大约1500字节的数据包段。然后,它非常盲目地将它们发送出去,不过你的路由表表示。然后那台机器重复这个过程。最终,通过多次重复,它到达远程主机。
所以,你可能会试图定义up作为数据包到达目的地。但是,如果数据包遭到破坏,例如由于硬件故障或干扰,会发生什么?下一个路由器将丢弃它。好吧,没关系,你可能想考虑一下。如果路径上的路由器太忙,或者需要发送的链路已满,该怎么办?数据包将被丢弃。你可能不希望把这个数字计算在内。
数据包经常丢失;更高级别的协议(例如,TCP)处理它并重发分组。实际上,TCP使用链路完全行为上的数据包丢弃来发现链路带宽。
您可以使用ping等工具监控数据包丢失情况,如其他答案所述。
大多数平台都支持ping
命令,该命令可用于查找IP地址是否存在于其他地方的网络路径。在哪里,检查取决于你真正想要回答的问题。
如果您的目标是发现您的第一跳到您ISP的网络的可靠性,那么定期ping一个路由器或他们的DNS可能就足够了。
如果你关心的是连接到单个节点(你提到的离开ssh
会话打开这意味着这一点),那么只要ping该节点可能是最好的主意。命令ping
通常会以脚本可以测试连接是否超时的方式失败。
无论如何,以每分钟不超过一次的速度进行检查可能是一个好主意,而慢于这可能就足够了。
如果您需要在本质上更行政管理中,并使用现有的软件是一种选择,你可以尝试像的monit:
http://mmonit.com/monit/
维基百科也有类似的软件列表:
http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems
您还应该考虑是否需要检测非常短的中断。显然,定期可达性测试不能保证检测到的中断时间短于测试间隔。
如果你只关心是否有停机,而不是有多少或有多长时间,你应该能够很容易地使用expect
自动化你现有的技术ssh
。
http://expect.nist.gov/
- 1. 如何编写bash脚本来测试程序是否崩溃?
- 2. 挑接下来的24小时工作
- 3. C#ASP.net测试用户是否来自本地网络
- 4. 在脚本标记下编写内容
- 5. 易于测试双向网络连接
- 6. 我如何在添加内容时让页脚停下来?
- 7. 检查OSX是否在24小时内
- 8. 如何编写一个bash脚本来测试登录表?
- 9. 在本地网络上测试手机
- 10. 检测iPhone是否在12小时或24小时模式下显示时间?
- 11. 是否可以编写一个Android广播接收器来检测手机何时醒来?
- 12. 是否可以编写脚本来自动安装Firefox插件?
- 13. 工具来记录网络流量并创建可编写脚本的“对象”?
- 14. 脚本来编写一个脚本来写入多个相似的文件
- 15. 在/ 24网络
- 16. Boto3脚本来获取ELB的网络接口
- 17. 有没有Perl模块来测试网络连接速度?
- 18. 写一个脚本来做postfix的内容过滤
- 19. 有没有更好的方法来编写以下内容?
- 20. 如何编写LoadRunner脚本来测量JMS的队列深度?
- 21. 如何使用Ant脚本来启动和停止JMeter测试
- 22. 如何编写junit测试脚本?
- 23. Android Studio编写测试脚本
- 24. 页脚不停留下来
- 25. 如何编写测试类来测试我的代码?
- 26. 脚本来测试C++程序
- 27. 确定24小时日期时间是否在间隔内
- 28. Cron作业运行24小时php脚本,然后停止它
- 29. 在接下来的一小时内选择所有事件
- 30. 如何为以下内容编写nunit测试用例
如果您可以识别哪种平台以及对哪种脚本有任何限制,您可能会得到更具体的帮助。 Windows和* nix不同,足以使一般答案困难。 – RBerteig 2009-05-29 02:11:36