J'ai la ligne ci-dessous dans mon script shell bash;Redirection de la sortie Shell vers SNS
inotifywait -e "$EVENTS" -m -r --format '%T %:e %w%f' --timefmt "%a, %b %d %l:%M.%S" ${basedir} | grep "${filetype}"
Ceci affichera une ligne comme "Mon, 01 May 9: 29,20 SUPPRIMER /home/ubuntu/test/test.php" chaque fois que la ligne est exécutée.
Est-il possible d'effectuer un pipeline au-dessus de la sortie directement vers AWS SNS? J'ai essayé d'utiliser jq pour formater la sortie en json avant de la rediriger mais il n'y a pas de sortie quand elle est utilisée comme ci-dessous.
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")'
Et l'extraction directe de la sortie ne fonctionnera pas.
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}"
ce qui arrive quand vous venez de verser le résultat de 'grep' sur stdout? –
Pourquoi avez-vous besoin de formater en json? Il semble que vous ayez besoin de l'analyser sur les paramètres de requête (voir [une demande d'échantillon] (http://docs.aws.amazon.com/sns/latest/api/API_DeleteTopic.html#API_DeleteTopic_Example_Example_Request)). en passant, pourquoi ne pas utiliser le [CLI] (https://docs.aws.amazon.com/cli/latest/index.html)? –
Je reçois la sortie que je veux sous forme de chaîne. ex: "Mon, Mai 01 9: 29.20 SUPPRIMER /home/ubuntu/test/test.php" – Geeshan