确定文件是否已更改
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
过滤文件
- 双引号变量在这里没有坏处。
我创建了一个 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
过滤文件
- 双引号变量在这里没有坏处。