2017-07-03 8 views
0

私は、「>>」コマンドを使用してextファイルに保存する特定のデータを出力するコマンドを持っています。私はソケットまたはポートをコマンドの出力をキャッチする任意のサーバー上にしたい。基本的に私はすべての私のスクリプトデータをソケットやURLに出力することが可能です。linuxコマンドをファイルに書き込むのではなく、url/portまたはscocketに出力する

この方向への助けが大歓迎です。

+0

ファイルに保存できますが、 "curl"とrotateファイルでサーバーにデータを送信するスクリプトを作成します。 – metamorphling

答えて

2

あなたは、ポート12345上でリスニングにsocatに関するを使用して、このようにそれに送信されたデータをエコーすることができます

socat -u TCP-LISTEN:12345,keepalive,reuseaddr,fork STDOUT 

あなたにもファイルに(file.logを)それをキャプチャしたい場合は、あなたが使用することができますティーと同じコマンド:あなたがbashのTCPの仮想デバイスに出力するプログラムを実行することができます

socat -u TCP-LISTEN:12345,keepalive,reuseaddr,fork STDOUT | tee file.log 

./prog > /dev/tcp/localhost/12345 

あなたは、あなたはまた、データを送信するためにsocatに関するを使用することができ、bashの魔法を使用しない場合:

./prog | socat - TCP-CONNECT:localhost:12345 

上記の例では、同じシステム上のプログラムおよび「ロガー」を実行しているが、あなたが交換することができると仮定"localhost"には、送信したいシステムのホスト名またはアドレス(socatがリスンしている場所)を指定します。

+0

私はこれをアップ投票しています。なぜなら、これも必要なだけ完璧に動作するからです。これもかなり簡単です。 – jision

関連する問題