この答えは明らかだと思いますが、頭をぶつけて頭痛がしていて、Search Fooが失敗しています…
この日付形式のログ ファイルがあります。
Sep 1 16:55:00 stuff happening
Sep 1 16:55:01 THIS IS THE LINE YOU WANT at this time stamp
Sep 1 16:55:02 more stuff
Sep 1 16:55:02 THIS IS THE LINE YOU WANT at this time stamp
Sep 1 16:55:03 blah
Sep 1 16:55:04 blah and so on…..
私の最終的な目標は次のとおりです。
与えられた文字列を含むログ ファイルの最後の行を見つけます。たとえば、"THIS IS THE LINE..." これは後で計算する「魔法の時間」です。
その行の日付を取得し、日付 + NN 秒の変数を設定します。将来の時間は通常、ステップ 1 の時間から 24 時間以内になるため、重要な場合は翌日にまたがる可能性があります。
スクリプトのある時点で、システム クロックを新しい日付/時刻に進めます。その後、特定のイベントが発生するかどうかを確認します。
これが間違っていることはわかっていますが、これまでのところ、次の方法を見つけました。
私のイベントの最後の日付スタンプをつかみます.
ログ日付=
cat /logdir/my.log | grep "THIS IS THE LINE" | tail -1 | cut -f1,2,3 -d" "
リターン: 9 月 1 日 16:55:02
日付をより使いやすい形式に変換する
logDate2="$(date -d "$logDate" +"%m-%d %H:%M:%S")"; エコー $logDate2
戻り値: 09-17 16:55:02
私はここで立ち往生しています - 私が欲しいのは:
将来の日付=
$logdate2 + XXXSeconds
誰かが時間の計算を手伝ってくれますか、それともこれをすべて行うためのより良い方法を指摘してくれますか?
ありがとう。