デーモンとしてのNetcat

デーモンとしてのNetcat

デバイスにリモートでログインし、出力をファイルに保存する機能を設定しようとしています。 CLIでは実行できますが、起動時には実行できません(crontabを使用)。

これはコマンドラインから実行できます。

$ nc <host> <port> | tee -a ~/log.txt

問題は、cronを使用してシステム起動時にそれを実行することです。 nc自体はcronで実行されていないので、screen -d -mで実行しましたが、開いていました。

screen -d -m nc <host> <port> | tee -a ~/log.txt

ただし、ファイルに出力はありません。私も次のことを試しました。

screen -d -m nc <host> <port> 2>&1 | tee -a ~/log.txt

それでもファイルには何も出力されません...一部の人はncで-dフラグを使用することをお勧めしますが、-dは他の人が言ったように「STDINを無視」ではなくCentOS 7で遅延設定のようです。

ベストアンサー1

体系化されたサービスを作成することは私にとって効果的でした。 --recv-only フラグがない場合、nc は直ちに終了します。これは期待どおりに実行されるようです。

[Unit]
Description=test

[Service]
ExecStart=/bin/sh -c 'nc -t --recv-only 10.215.83.80 3004 >> /home/hursjohn/log.txt'

[Install]
WantedBy=multi-user.target

おすすめ記事