用于cron的Shell脚本,如果该命令产生任何输出,则发送电子邮件

时间:2017-01-04 19:07:29

标签: shell cron command

我试图设置cron在脚本中运行以下命令:

find /path/to/folder -ctime -1 -type f

如果过去一天特定文件夹中有任何已创建的文件,则发送邮件。到目前为止,我已经想出了这个:

#!/bin/bash

check=$(find /path/to/folder -ctime -1 -type f)
alert=mail@mail.com

if [ "$check" -eq 0 ]
then
    mail -s "files created" "$alert"
fi

问题是我无法执行脚本,即使shell cheker表示没有错误。它给了我语法错误:意外的文件结尾

我已经在网上搜索了足够长的时间,意识到其他解决方案,例如 MAILTO MAILFROM 或像this这样的脚本都无法正常工作。我也研究了this线程,但似乎没有任何工作,如果我可以补充说这是针对CentOS 6的,以防它有任何区别。

任何帮助都将非常感激。感谢。

1 个答案:

答案 0 :(得分:0)

对于仍然有兴趣回答的人,这里是。

#!/bin/bash

check=$(find /path/to/folder -ctime -1 -type f)
alert=mail@mail.com

if [[ "$check" ]]
then
    echo "$check" | mail -s "files created" "$alert"
fi

还要确保将CRLF换行符转换为Unix样式,如果它不起作用并且您不断出现无法解释的语法错误。

dos2unix /path/to/script

或点击this链接。