簡體   English   中英

修改 atime 以檢查文件是否在過去 24 小時內被修改過

[英]modifying atime to check if file has been modified within last 24 hours

#!/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

我試圖通過比較 atime 和 Ltime 來檢查文件是否在過去 24 小時內被修改過

atime 總是小於 ltime

所以我可以修改語句嗎

if [[ "$ATIME" < "$LTIME" ]]

if [[ "$ATIME +1 day" < "$LTIME" ]]`

是實現這一目標的更好方法

感謝您的任何建議

首先,一個文件上(至少)有三個不同的時間戳,你似乎把它們混在一起了。 你談論 atime, %Z選項給你 ctime,聽起來你想要的實際上是 mtime:文件內容上次更改的時間。 您可以使用stat -c %Y獲得 mtime。

看是不是不到一天,確實可以加一天; 但是時間是以秒為單位的,所以需要加上24*60*60秒。 最簡單的方法可能是使用算術擴展 它可能看起來像這樣:

if [[ $((MTIME + (24 * 60 * 60))) > $LTIME ]] # modified in the last day

我假設您編寫了代碼來獲取當前時間並將其存儲在LTIME ,即使您沒有在問題中顯示該代碼。 當然,它必須進入循環內部。 一種方法是

LTIME=`date +%s`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM