Fluke DewK 1620a温湿度計から温度と湿度データを抽出し、温度/湿度測定値をログに記録しようとしています。簡単な「nc 1.2.3.4 10001」を使用して、netcatを介してデバイスに接続し、いくつかの基本的なコマンドを実行して出力を受け取ることができます。それでは、コマンドを送信して出力をファイルに書き込むスクリプトに入れることができるコマンドラインを作成したいと思います。
コマンドラインから次のコマンドを実行すると、
$ echo "read?" | nc -v -i 1 1.2.3.4 10001
私は受け取った:
Connection to 1.2.3.4 10001 port [tcp/scp-config] succeeded!
76.55,44.4,72.06,48.0
-i間隔が経過すると接続が閉じ、プロンプトが温度と湿度のデータを上書きします。
その後、次のことを試しました。
echo "read?" | nc -v -i 1 1.2.3.4 10001 >> test.out 2>&1
コマンドが実行され、「test.out」ファイルには、各実行の次の内容のみが含まれます。
Connection to 1.2.3.4 10001 port [tcp/scp-config] succeeded!
温度と湿度の測定値はファイルに含まれていません。詳細を追加するのは役に立たないようです。
私はおそらく明らかなものを見逃していることを知っていますが、それは見えません。どんな助けでも大変感謝します。
ベストアンサー1
問題がまったく見えないので、Flukeが実際に反応しているのだろうか。
これら2つのnetcatスクリプトは、構文に問題がないことを示しています。
仕える人:
# server
while true; do date; sleep 1; done | nc -l 10001
顧客:
# client
echo "hello?" | nc -v -i1 localhost 10001 >> test.out 2>&1
確認してください
[sri@tidevel netlink]$ cat test.out
Ncat: Version 6.45 ( http://nmap.org/ncat )
Ncat: Connected to 127.0.0.1:10001.
Wed Nov 5 13:54:06 EST 2014
Wed Nov 5 13:54:07 EST 2014
Ncat: Idle timeout expired (1000 ms).
これですべての作業が完了し、実際にFlukeから応答を受けていることを確認しました。 Flukeデータを使用する他のnetcatや他のアプリケーションがありますか?
おそらく、コマンドは\ r \ nまたは同様のもので終了する必要があります。サーモトロンはこのような記憶が出ているようですが、かなりずっと前です。 printfを使用してこれを行うことができます。
printf "hello?\r\n" | nc -v -i1 localhost 10001 >> test.out 2>&1