mysqlで実行すると、show engine innodb status
次の行が表示されます---TRANSACTION 17610C9A, ACTIVE 504 sec starting index read
。
キーワードの後の秒数がACTIVE
100を超える場合を監視し、電子メール通知を送信するスクリプトが必要です。
ベストアンサー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 より厳密に大きい場合は、メールを送信してください。