2016-08-12 104 views
0

我已經創建了一個每天運行06:00 AM的bash腳本來檢查文件是否在05:00 AM - 06:00 AM之間更改過。確定文件是否已更改

我們的服務器每天早上05:00自動上傳這個文件upload.xml並替換舊的,因此我創建了一個bash腳本來檢查這個文件是否已經上傳。

我的bash腳本無法正常工作。每天都會發送來自bash腳本的電子郵件,告訴我此文件尚未上傳或更改,並且檢查該文件已經上傳了新的更改時間。

那麼我的代碼有什麼問題。

這是我的bash腳本代碼。

[[ -z `find /home/USER/public_html/upload.xml -mmin -60` ]] 

if [ $? -eq 0 ] 
then 
    mail -s "File has not been changed" [email protected] 
else 
    echo -e "file has been changed" 
fi 

回答

0

使用$(),而不是傳統的backticks

var="$(find /home/USER/public_html/ -type f -mmin -60 -name "upload.xml")" 
if [ -z "$var" ] #checking if a SET variable is empty 
then 
    mail -s "File has not been changed" [email protected] 
else 
    echo -e "file has been changed" 
fi 

注意

  • 在發現先指定路徑,然後篩選使用-name
  • 雙引號的變量的文件沒有任何傷害在這裏。
+0

謝謝你的回答。我已經用你的代碼取代了。那麼這個腳本檢查文件是否在60分鐘前改變了? – Alex

+0

@Alex Imho -60應在最近60分鐘內解讀,+60應在最近60分鐘內解讀 – sjsam

相關問題