确定文件是否已更改

时间:2016-08-12 14:20:45

标签: bash cron server find crontab

我创建了一个bash脚本,每天早上06:00运行,检查文件是否在05:00 AM - 06:00 AM之间发生了变化。

我们的服务器每天05:00 AM自动上传此文件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" admin@mydomain.com
else
    echo -e "file has been changed"
fi

1 个答案:

答案 0 :(得分: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" admin@mydomain.com
else
    echo -e "file has been changed"
fi

备注

  • 在查找中首先指定路径,然后使用-name
  • 过滤文件
  • 双重引用变量不会造成任何伤害。