我不太擅长脚本,这就是我发布这个问题的原因。
我想做的就是检查/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"
祝你好运:(