我有一个python脚本,只有在我的服务器可用时才有效。因此,在脚本开始之前,我想ping我的服务器,或者更确切地检查服务器的可用性。
已经有一些相关的SO问题。 E.g
response = pyping.ping('Your IP')
if response.ret_code == 0:
print("reachable")
else:
print("unreachable")
response = os.system("ping -c 1 " + hostname)
这些答案效果很好,但仅作为ROOT用户! 当我使用此解决方案作为普通用户时,我收到以下错误消息:
ping: Lacking privilege for raw socket.
我需要一个解决方案,我可以将其作为普通用户来实现,因为我在jenkins作业中运行此脚本并且无法以root身份运行。
答案 0 :(得分:2)
尝试执行HTTP HEAD请求,假设机器运行了http服务器,就足够了吗?
from http.client import HTTPConnection # python3
try:
conn = HTTPConnection(host, port, timeout)
conn.request("HEAD", "/")
conn.close()
# server must be up
except:
# server is not up, do other stuff