「socat」コマンドを実行して、ポート162の情報を別のコンピューターの同じポートにコピーしたいと思います。
このプロセスを実行するためにsystemdを追加しました。
[Unit]
Description=Socat SNMP Traps 162
[Service]
User=root
Type=forking
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=socat-trap-162
ExecStart=sudo socat -d -d UDP-LISTEN:162,fork UDP:10.127.130.70:162
Restart=on-failure
[Install]
WantedBy=multi-user.target
ただし、systemdを実行すると、次のように複数のPIDが生成されます。このスクリーンショットps | grep
。
初期PIDのみ生成できますか?
なぜなら、新しいPIDが常に生成されるからです。
答え1
UDPおよびUDP-LISTENアドレスは、UDPが終了ステータスを送信しないか、タイムアウトオプションを使用しないため、明示的に閉じる必要がある疑似ストリーム接続を生成します。-T <seconds>
トラップ送信者が1つしかない場合は、フォークせずにコマンドラインを使用できます。
socat -d -d UDP-LISTEN:162 UDP:10.127.130.70:162
送信者が複数人の場合は、データグラムモードを使用することをお勧めします。
socat -d -d UDP-RECV:162 UDP-SENDTO:10.127.130.70:162
UDP-RECVは一方向であり、SNMPトラップではうまく機能しますが、SNMPコマンドでは機能しません。