-3

ファイルがあります (例: system.log)。このファイルをスキャンして、5 分間に数回表示される特定の文字列を見つける必要があります。

4 つのパラメーターを持つスクリプトを作成できると思います。

  • ファイルの場所
  • 検索する文字列
  • 文字列が出現する回数
  • 期間

このスクリプトが指定された期間内に文字列を検出した場合、たとえば、メッセージ「成功」

これがスクリプトの始まりです

#!/bin/ksh
#set -x

#############
# VARIABLES #
#############

location="/moteurs/websphere/7.0/esb/managed01/logs/"
file="SystemOut.log"
pattern="WSV0605W: Thread \"SIBFAPInboundThreadPool"
string=$(grep -ic "${pattern}" ${location}/${file})

SystemOut.log変数を定義したので、 5 分ごとにスキャンする関数を作成する方法がわかりません。

4

2 に答える 2

2

このシェルを作成する方法を知っていますか?

はい。お気に入りのエディターを使用して、シェル スクリプトを作成し、実行します。これで完了です。

于 2013-09-17T12:41:27.183 に答える
0

半分の答えですが、おそらくどこかに行きます:

5 分ごとに何かを繰り返し実行するには、スリープを使用してループを作成できます。

while true
do
  echo "I'm doing something!"  # replace this by the actual code
  sleep $[5*60]
done

これにより、コード (ここでは のみecho) が 5 分ごとに実行されます。— さて、コードに必要な時間に加えて、時間が正確であることに依存しないでください。正確に取得するには、次を使用できます

while sleep $[ 5*60 - $(date +%s) % (5*60) ]
do
  echo "I'm doing something!"  # replace this by the actual code
done

これは、コードを実行する前に、時計の完全な 5 分間を常に待機します。

于 2013-09-18T08:16:44.680 に答える