次のことができるサーバーを実行する必要があります。
Success
としてクライアントに返信します。それ以外の場合は、失敗として返信します。Apacheやその他の主要なWebサーバーを使用したくありません。ポートで実行されている単純なスクリプトでもかまいません。気がついた python -m SimpleHTTPServer
しかし、私はそれがファイルアクセスを提供するだけだと思います。
ポートで実行されて応答する単純なJavaプログラムを作成できますが、いくつかの単純な解決策を探しています
私が想像できるもっと些細なサービスの1つは、xinetdからサービスを実行することです。これには、xinetd自体が比較的軽量であるという利点がありますが、ロギングや、リクエスト制限、TCPラッパーなどのセキュリティ制限を含むすべてのネットワーク関連のものを処理します。
Xinetdがまだインストールされていない場合はインストールし、/etc/xinetd.d/helloworld
のようなカスタムサービスを定義します。
service helloworld
{
disable = no
port = 1234
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/local/bin/hello-world.sh
server_args = test
instances = 1
type = unlisted
}
Xinetdをリロード/再起動すると、telnet localhost 1234
でテストできます。
マニュアルページman xinetd.conf
には、利用可能なオプションのかなり良い説明があります。
私はいくつかの簡単なnc
コマンドの助けを借りてBASHでそれを行います:
#!/bin/bash
nc -k -l -p PORT > tempfile
while true
do
if cat tempfile | grep request;
then
# Execute checker script
# Reply back with nc
: > tempfile # Clear tempfile
fi
sleep 1
done
これには、nc
を使用してクライアントを設定する必要もあります。成功の応答を受信するには、クライアントでnc
listenコマンドを設定する必要があるかもしれません。
このスクリプトは完全にはほど遠いので、そのためのクライアントも作成する必要がありますが、いくつかのアイデアが得られる可能性があります。
ここでの基本的なことは、nc
の使用です。それの助けを借りて、あなたは簡単なクライアントサーバーアーキテクチャをセットアップすることができます。
同様の解決策を探しているときに私はこれに遭遇しました: Goexpose 。
これにより、HTTP呼び出しに基づいて、シェルを含む多くのタスクをトリガーできます。