<td>
我正在尝试通过将atime与Ltime进行比较来检查文件在最近24小时内是否已被修改
atime总是小于ltime
所以我可以修改语句
#!/bin/bash
cd /home/pi/cc/uvreadings
while true
do
ATIME=`stat -c %Z /home/pi/cc/uvreadings/uvreadings.log`
if [[ "$ATIME" < "$LTIME" ]]
then
echo "log file not updated for +24 hours"
else
echo "log file WAS updated in last +24 hours"
fi
sleep 10
done
到
if [[ "$ATIME" < "$LTIME" ]]
of是实现这一目标的更好方法
感谢您的任何建议
答案 0 :(得分:0)
首先,文件上(至少)有three different timestamps,而且您似乎把它们混在一起了。您谈论时间,%Z
选项却给您ctime,听起来您想要的实际上是mtime:文件内容上次更改的时间。您可以使用stat -c %Y
获取mtime。
要查看是否少于一天,可以添加一天。但是时间以秒为单位,因此您需要增加24*60*60
秒。最简单的方法可能是使用arithmetic expansion。看起来可能像这样:
if [[ $((MTIME + (24 * 60 * 60))) > $LTIME ]] # modified in the last day
我假设您编写了获取当前时间并将其存储在LTIME
中的代码,即使您未在问题中显示该代码也是如此。当然,它必须进入循环。做到这一点的一种方法是
LTIME=`date +%s`