ファイル内の単語を見つけて、その値が最後の3回表示されることを確認してください。

ファイル内の単語を見つけて、その値が最後の3回表示されることを確認してください。

ログで「percent」という単語を検索しています。

strings /var/lib/activemq/data/gc.log |grep percent | grep ten 

これは私に出力を与える

<mem type="tenure" free="2188996168" total="2617245696" percent="83" />

過去のケースを確認して報告する必要があります。

CRITICAL is between 10 and 0
WARNING is between 20 and 10
OK status if the usage is over 20

今はいstrings /var/lib/activemq/data/gc.log |grep percent | grep ten |tail -5 | awk {'print $5'}

現在の出力は数字が異なることを知っています。

percent="24"
percent="24"
percent="24"
percent="23"
percent="23"

最後の3つの値のみを考慮してOK、CRITICAL、または警告ステータスを返すにはどうすればよいですか?

ベストアンサー1

awkを使用してこれを行うことができます。

awk -F '"' '/percent/ && /ten/ {if( $(NF-1) > 20 ) {print "OK" } else if ( $(NF-1) < 20 ) {print "WARNING" } else if ( $(NF-1) < 10 ) { print "CRITICAL" }}' /var/lib/activemq/data/gc.log
  • -F '"'フィールド区切り記号として使用される二重引用符
  • /percent/ && /ten/パターンを持つgrepライン。
  • ( $(NF-1) > 20 )2番目のフィールドを比較し、必要な文字列を印刷します。

おすすめ記事