我必须做类似的事情:
每天晚上 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 以在每晚的指定时间运行它。