web-dev-qa-db-ja.com

「logger」コマンドでUDPパケットを送信する

カスタムsyslogサーバーを実行するためのいくつかの異なるソリューションがあります( https://Gist.github.com/marcelom/421801 に基づいています)。

私が直面している問題は、次のコマンドがサーバーにUDPパケットを送信しないことです。

logger -n 127.0.0.1 -P 514 "Test message"

テストメッセージを適切に送信しますか?

私が間違っていることに関するアイデアはありますか?スクリプトは明らかに動作するはずですが、テスト中に動作することを確認できません。

EDIT:syslogレシーバーがUDPプロトコルで送信されたメッセージを実際に受信していることを確認しました。したがって、この部分を削除する質問も明確にしました。

7
Tadeck

昨日、リモートロギングをテストするために異なるマシン間でログを記録できなかった理由を理解しようとして正気を失った

「logger」を含むutil-linux/bsdutilsコアパッケージにはバージョン2.20.1がインストールされており、そのバージョンはサイレントモードで-nスイッチを無視します。これは私が見つけたものです:

  • 2.21から2.24までのロガーのすべての新しいバージョンは、正常にビルドおよび動作します。
  • バージョン2.20.1は正常にビルドされますが、インストールされたバージョンと同様に-nスイッチは無視されます。
  • 12.04から「信頼できる」ものを含むすべてのUbuntuには、2.20.1が含まれています:(

解決:

ftp://ftp.kernel.org/pub/linux/utils/util-linux/ から最新のutil-linuxを入手します。

バイナリを./misc-utils/loggerから/ usr/local/bin/loggerに展開、。/ configure、make、およびコピーします。

/ usr/local/binバージョンを噛むには、「source〜/ .bashrc」などのシェルを更新する必要がある場合があります。新しいロガーが「logger -V」でインストールされることを確認してくださいNOT「util-linux 2.20.1からのロガー」と言う必要があります。

7
MattiasF

Netcatを使用した他のソリューション:

echo -n "test message" | nc -4u -w1 <Host> <udp port>

6
sebana