[英]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.