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

linux script to check if file exists at a particular directory more than an hour

我对脚本不是很在行,这就是我发布这个问题的原因。

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

这是一种警报脚本。

我找到了这个脚本:

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

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

但在我的情况下,只有当目录包含超过一个小时的任何文件时,我才必须 return 为真。

更新: 按照建议,我对我的脚本做了一些小改动,它工作正常(如果我 运行 手动脚本文件)。

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"

祝你好运:)