Linux 修改atime以检查文件是否在过去24小时内被修改 #/bin/bash cd/home/pi/cc/UV读数 虽然是真的 做 ATIME=`stat-c%Z/home/pi/cc/uvreadings/uvreadings.log` 如果[[“$ATIME”
我试图通过比较atime和Ltime来检查文件是否在过去24小时内被修改 时间总是比时间短 那么我可以修改这个语句吗Linux 修改atime以检查文件是否在过去24小时内被修改 #/bin/bash cd/home/pi/cc/UV读数 虽然是真的 做 ATIME=`stat-c%Z/home/pi/cc/uvreadings/uvreadings.log` 如果[[“$ATIME”,linux,bash,Linux,Bash,我试图通过比较atime和Ltime来检查文件是否在过去24小时内被修改 时间总是比时间短 那么我可以修改这个语句吗 #!/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
#!/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”]]
到
如果[[“$ATIME+1天”<“$LTIME”]]`
当然,这是实现这一目标的更好方法
谢谢你的建议首先,文件中至少有,你似乎把它们弄混了。在谈到atime时,%Z
选项会为您提供ctime,听起来您想要的实际上是mtime:文件内容上次更改的时间。您可以使用stat-c%Y
获取mtime
要想知道这是否是不到一天以前的事,你确实可以加上一天;但是时间是以秒为单位的,因此需要添加24*60*60
seconds。最简单的方法可能是使用。它可能看起来像这样:
if [[ "$ATIME +1 day" < "$LTIME" ]]`
我假设您编写代码是为了获取当前时间并将其存储在LTIME
中,即使您在问题中没有显示该代码。当然,它必须进入循环内部。一种方法是
if [[ $((MTIME + (24 * 60 * 60))) > $LTIME ]] # modified in the last day
什么是
ltime
?您可能需要处理您的格式设置…时间是覆盆子皮都上的本地时间这里的指针有帮助吗?pi上是否存在find
?选项-mtime
就可以了。是的,上面显示的链接有答案。谢谢你提供的信息。谢谢你的解释,非常有用,信息丰富,现在在上面所有评论的帮助下运行。再次感谢
if [[ $((MTIME + (24 * 60 * 60))) > $LTIME ]] # modified in the last day
LTIME=`date +%s`