确定文件是否已更改

Determine if a file has changed

我创建了一个 bash 脚本,每天 06:00 上午 运行 检查文件是否在 05:00 上午 - 06:00 上午之间被更改.

我们的服务器每天 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" admin@mydomain.com
else
    echo -e "file has been changed"
fi

使用 $() 而不是旧版 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
  • 过滤文件
  • 双引号变量在这里没有坏处。