私は、マシンの1つがリモートマシンによってトリガーされる可能性がある実行中のリモートコントロールアラームを持つことを望みます。より具体的に
- マシンAがバックグラウンドでサービスを実行しています。
- すべてのリモートシステムBは、警告をトリガーするためにシステムAにパケットを送信できます(コマンドと呼ばれます
alarm
)。
このタスクをどのように提案しますか?
私は以下を使用しますnc
:
マシンAのサービス:
nc -l 1111; alarm
機械Bがアラームを発する
nc <IP of machine A> 1111
ソケットを開くためにPythonを書くこともできます...
答え1
これについて考えるPython3
はい。
サーバーA:
#!/usr/bin/env python3
# coding=utf8
from subprocess import check_call
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler
# Restrict to a particular path
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ('/JRK75WAS5GMOHA9WV8GA48CJ3SG7CHXL',)
# Create server
server = SimpleXMLRPCServer(
('127.0.0.1', 8888),
requestHandler=RequestHandler)
# Register your function
server.register_function(check_call, 'call')
# Run the server's main loop
server.serve_forever()
サーバーB:
#!/usr/bin/env python3
# coding=utf8
import xmlrpc.client
host = '127.0.0.1'
port = 8888
path = 'JRK75WAS5GMOHA9WV8GA48CJ3SG7CHXL'
# Create client
s = xmlrpc.client.ServerProxy('http://{}:{}/{}'.format(host, port, path))
# Call your function on the remote server
s.call(['alarm'])