2016-08-12 105 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

相关问题