我想知道亚马逊EC2实例是否开启,但默认情况下亚马逊EC2会阻止ping请求。有一种方法可以通过更改实例的安全策略来实现此目的。除此之外,最接近“查看服务器是否响应”且轻量级的替代方案是什么?
curl
是一个好选择吗?
我想知道亚马逊EC2实例是否开启,但默认情况下亚马逊EC2会阻止ping请求。有一种方法可以通过更改实例的安全策略来实现此目的。除此之外,最接近“查看服务器是否响应”且轻量级的替代方案是什么?
curl
是一个好选择吗?
我认为curl
就是你想要的。像所有行为良好的Unix程序一样,如果出现任何问题,它将返回一个错误代码:
[cnicutar@ariel ~]$ curl www.no-such-website.com
[cnicutar@ariel ~]$ echo $?
6
另外你可能想使用--connect-timeout
来确保它不会永远等待。
curl
的。每个程序都可以选择返回什么,而且很少有标准化的规定。如果你真的感兴趣,可以查找一个名为 sysexits.h
的头文件。不过手册页面确实解释了退出代码。 - cnicutarman curl
然后/EXIT CODES
:-) - dschulzCURL无法快速检查服务器是否正常工作,以及Web服务器守护程序是否关闭。一种替代方法是使用像hping3
这样的工具发送TCP ACK。如果收到RST,则表示服务器正常运行。
hping3 -c 1 -V -p 80 -s 5050 -A example.fqdn
curl
都会知道。 - cnicutar如果您可以通过ssh
连接到它,那么它就是正常的。一个使用nc
进行检查的简单方法是:
nc -zv 111.222.333.444 22
(将111.222.333.444替换为您实例的IP地址)