0
私のbashシェルスクリプトには次の行があります。シェルの出力をSNSにリダイレクト
inotifywait -e "$EVENTS" -m -r --format '%T %:e %w%f' --timefmt "%a, %b %d %l:%M.%S" ${basedir} | grep "${filetype}"
のような行この意志出力 "月、5月1日9:29.20は/home/ubuntu/test/test.php DELETE" その行が実行されるたびに。
上記の出力をAWS SNSに直接パイプライン接続することは可能ですか?私はそれをリダイレクトする前にjsonに出力をフォーマットするためにjqを使ってみましたが、以下のように使用すると出力はありません。
inotifywait -e "$EVENTS" -m -r --format '%T %:e %w%f' --timefmt "%a, %b %d %l:%M.%S" ${basedir} | grep "${filetype}" | jq -R -s -c 'split("\n")'
出力を直接ピッキングすると機能しません。
inotifywait -e "$EVENTS" -m -r --format '%T %:e %w%f' --timefmt "%a, %b %d %l:%M.%S" ${basedir} | grep "${filetype}" | aws sns publish --topic-arn "${sns}"
ときに何が起こりますか'grep'の結果を標準出力に流します。 –
なぜjsonにフォーマットする必要がありますか?リクエストパラメータ(「[サンプルリクエスト](http://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html#API_DeleteTopic_Example_Example_Request)」を参照)で解析する必要があるようです。ちなみに、[CLI](https://docs.aws.amazon.com/cli/latest/index.html)を使用してみませんか? –
私は文字列として必要な出力を取得します。 例: "月、01月9日:29.20 DELETE /home/ubuntu/test/test.php" – Geeshan