55分後にファイルが変更されない場合は、強制的に更新するにはどうすればよいですか? [閉鎖]

55分後にファイルが変更されない場合は、強制的に更新するにはどうすればよいですか? [閉鎖]

55分間ログファイルが変更されていない場合は、ログファイルを更新する必要があります。たとえば、今が19時でIOstatDisk2.log18時以降に何も変更されていないとします。

 solaris1a:/var/tmp ROOT # ls -ltr IOstatDisk2.log
 -rw-r--r--   1 root    other       6 Aug  2 18:00 IOstatDisk2.log

したがって、この場合は次の行を追加します。

echo “new cycle - forced update after 55 min.” >> IOstatDisk2.log

ただし、最後のタイムスタンプが55分未満の場合、行は追加されません。

答え1

次の手順でテストできます(テストが維持されたらファイルを操作する)。

if [ $(((`date +%s` - `stat -c %Y IOstatDisk2.log`) / 60)) -ge 55 ]
then 
   echo "File was modified more than 55 minutes ago"
   # do something with the file...
fi

答え2

GNUfindまたはBSDはfindこの問題を解決します:

find <DIRECTORY> -type f -amin +55 -name \*<PATTERN>\* -print

これにより、アクセスディレクトリにあるPATTERNという名前のすべてのファイルが印刷されます。より良い55分前。

関連情報