如果文件55分钟后没有变化,如何强制更新?

如果文件55分钟后没有变化,如何强制更新?

如果日志文件在 55 分钟内保持不变,我需要更新该日志文件。例如,假设现在是 19:00,并且IOstatDisk2.log自 18:00 以来没有改变:

 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或 BSDfind会为你解决这个问题:

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

这将打印访问目录中名为 PATTERN 的所有文件比...更棒55 分钟前。

相关内容