是否可以从外部服务器在两台服务器/计算机之间执行ping操作?
示例:
我们有三台服务器A,B和C,从A运行脚本,我想测试B和C之间的ping。
答案 0 :(得分:0)
你可以试试这个
导入os
alive = os.system(“ping -c 1”+“B或C ip”)
如果活着== 0:
打印“up!”
其他:
打印“向下!”
答案 1 :(得分:0)
我会采用这种方法(使用python脚本的其他可行解决方案可以通过从A到B和C的SSH隧道进行此操作)。我在下面有点啰嗦,但代码应该与评论相当准确......
在例如中创建REST API函数/api/ping
。与烧瓶在B和C
from flask import json, request
import subprocess
def callPing(ip):
# this returns True|False, but other `subprocess` methods can return more info from called Linux command
if subprocess.check_output(["ping", "-c", "1", ip]):
return "OK"
else:
return "Fail"
@app.route('/ping', methods = ['POST'])
def ping():
ip = str(request.data) # if in POST body, plain
ip = request.json["ip"] # body (f.ex.) {"ip":"127.0.0.1"} and headers has Content-Type: application/json
txt = callPing(ip)
request.headers['Content-Type'] == 'text/plain':
return txt
从A发送POST请求到B和/或C
import requests
from json import dumps
targetIP = '8.8.8.8'
serverIP = '127.0.0.1'
data = {'user_name': targetIP }
headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
url = "http://"+serverIP+"/api/ping"
r = requests.post(url, headers=headers, data=dumps(data))
如果API的端口80正常,则在现有Linux服务器中放置Flask REST API需要1-3个工时。