デバイスにリモートでログインし、出力をファイルに保存する機能を設定しようとしています。 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