linux脚本,用于检查文件在特定目录中是否存在超过一个小时



我不太擅长脚本,这就是我发布这个问题的原因。

我想做的就是检查/path/to/my/directory/是否包含任何超过一个小时的文件。如果它存在超过一个小时,那么脚本应该返回true否则为false,这样我就可以在脚本返回true的情况下发送电子邮件。

这是一个提醒脚本。

我发现了这个脚本:

if ls /path/to/your/files* 1> /dev/null 2>&1; then
echo "files do exist"
else
echo "files do not exist"
fi

但我认为这个脚本只检查目录中是否包含任何文件。

但在我的情况下,只有当目录包含任何文件超过一小时时,我才必须返回true

更新:根据建议,我对脚本进行了一些小的更改,它运行良好(如果我手动运行脚本文件(。

myscript.sh

#!/bin/bash
if [[ `find /opt/coldfusion2018/cfusion/Mail/Undelivr/ -type f -mmin +60 | wc -l` -gt 0 ]];then
echo "files do exist"
sendmail myemail@gmail.com  < /demo/email.txt
else
echo "files do not exist"
fi

问题:我正在尝试设置每5分钟执行一次此脚本(myscript.sh(的crontab。但它不能通过crontab工作,如果我手动运行脚本,那么它就可以工作,我也会收到邮件。

这是命令:

./demo/myscript.sh

Corntab:

*/5 * * * * ./demo/myscript.sh

谢谢。

我认为你应该试试这个:

#!/bin/bash
if [[ `find /path/to/my/directory/ -type f -mmin +60 | wc -l` -gt 0 ]];then
echo "files do exist"
else
echo "files do not exist"
fi

解释:我会在目录:/path/to/my/directory/下找到修改时间大于60分钟的所有文件,然后对它们进行计数。

这个也应该这样做:

[ "$(find /path/to/my/directory/ -type f -mmin +60)" ] && echo "files do exist" || echo "files do not exist"

祝你好运:(

相关内容

最新更新