如果指定的文件不存在则发送电子邮件

如果指定的文件不存在则发送电子邮件

我必须做类似的事情:

每天晚上 10 点和第二天凌晨 3 点在文件夹 /x 中放置 2 个文件。我必须编写一个脚本来检查文件夹 /x 并确认文件是否存在并每天相应地发送邮件。

文件格式:

  • ValuationIR**02092013**_0326(文件名模式ValuationIR<date>_<time>.csv:)
  • SnapshotIR**02082013**_2238 (文件名模式SnapshotIR<date>_<time>.csv:)

答案1

如果您只需要检查这两个文件是否存在并在不存在时发送电子邮件,那么这样的操作应该很好:

test -f file1 -a -f file2 || ( echo "Either file1 or file2 doesn't exist" | sendmail ... )

括号并不是绝对必要的,但为了清楚起见,我将它们包括在内。您还可以使用 bash 函数使其更具可读性并易于扩展,但这不会与 shell 无关(尽管大多数 shell 都有方法做同样的事情)。

send_mail() {
    echo "message text" | sendmail ...
}
test -f file1 -a -f file2 || send_mail

如有必要,可以进一步扩展,但以上内容应该可以帮助您入门。

当脚本本身按预期工作时,您可以将其添加到您的用户 crontab 以在每晚的指定时间运行它。

相关内容