设置Cron作业以选择最新文件和电子邮件

时间:2012-03-11 08:51:13

标签: bash cron crontab

非常简单的问题。

我有一个cron作业,每天午夜运行一个mysql查询并生成一个csv文件,说user_analytics_2012-03-11.csv。因此,每天都会使用新的日期戳创建新文件。

我正在尝试设置一个新的cron作业,该作业在此作业之后运行并获取最新的csv文件并通过电子邮件发送给我。

我设法通过硬编码文件名来实现这一点并且工作正常:

mutt -s "Number of users logged in" -a /tmp/user_analytics_2012-03-11.csv example@gmail.com < /tmp/message.txt

现在如何进行此设置以自动获取最新文件。 非常感谢

修改

我尝试了以下操作,似乎有效 - 这是正确的方法。

mutt -s "Number of users logged in" -a /tmp/user_analytics_$(date +\%Y-\%m-\%d).csv example@gmail.com < /tmp/message.txt

2 个答案:

答案 0 :(得分:0)

如果您安装了mailx(man mail用于您系统的详细信息):

mysql_command | mail -s "Number of users logged in" example@gmail.com

这首先绕过创建文件。

答案 1 :(得分:0)

如果您的目录只包含这些文件,最简单的方法是列出内容,按创建/修改日期排序并选择第一个:

mutt -s "Number of users logged in" -a /tmp/$(ls -t | head -n 1) example@gmail.com < /tmp/message.txt