特定のポート(おそらくnetcatを使用していますか?)でリッスンするようにシェルスクリプトを取得する方法がわかります。メッセージがそのポートに送信されたら、スクリプトがメッセージを記録して関数を実行したいと思います。
例:
コンピュータ1はバックグラウンドでスクリプトを実行して、着信トラフィックにポート1234を開きます。
コンピュータ2は、コンピュータ1のポート1234に「hello world」メッセージを送信します。
コンピュータ1のスクリプトは、「hello world」メッセージを$ MESSAGE変数に書き込みます。
これで$ MESSAGE変数が設定されたので、スクリプトは関数を実行します。
どうすればいいですか?
ベストアンサー1
動作する必要がありますsocat
。
標準入力でメッセージを受け取るには、「getmsg.sh」などのスクリプトを作成します。
#!/bin/bash
read MESSAGE
echo "PID: $$"
echo "$MESSAGE"
その後、このsocat
コマンドを実行してポート7777のすべてのTCP接続に対してスクリプトを呼び出します。
socat -u tcp-l:7777,fork system:./getmsg.sh
他のシェルからテストメッセージを送信します。
echo "message 1" | netcat localhost 7777