100秒以上かかる場合に電子メールを送信するシェルスクリプト

100秒以上かかる場合に電子メールを送信するシェルスクリプト

mysqlで実行すると、show engine innodb status次の行が表示されます---TRANSACTION 17610C9A, ACTIVE 504 sec starting index read

キーワードの後の秒数がACTIVE100を超える場合を監視し、電子メール通知を送信するスクリプトが必要です。

ベストアンサー1

value=$(show engine innodb status | grep TRANSACTION | grep ACTIVE | \
  sed -e 's/.*ACTIVE //' -e 's/\([[:digit:]]\{1,\}\).*/\1/')
if [ "$value" -gt 100 ]
then
  send email here
fi

出力に他の行がある可能性があるように聞こえるので、何をgrepする必要があるのか​​わかりません。 grepの目的は、「ACTIVE NNN」部分を見つける必要がある行だけを含めることです。

sed式は先行部分(. *から「ACTIVE」まで)を削除し、1つ以上の数字と一致し、数字の後のすべての項目を削除します。結果の値が 100 より厳密に大きい場合は、メールを送信してください。

おすすめ記事