如果日志文件在 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 分钟前。