Bash 设置Cron作业以拾取最新文件和电子邮件

Bash 设置Cron作业以拾取最新文件和电子邮件,bash,cron,crontab,Bash,Cron,Crontab,这个问题很简单 我有一个cron作业,每天午夜运行一个mysql查询,并生成一个csv文件,比如user_analytics_2012-03-11.csv。因此,每天都会创建一个带有新日期戳的新文件 我正在尝试设置一个新的cron作业,该作业在该作业之后运行,并获取最新的csv文件并通过电子邮件发送给我 我通过硬编码文件名成功地做到了这一点,效果很好: mutt-s“登录用户数”-a/tmp/user_analytics_2012-03-11.csvexample@gmail.com

这个问题很简单

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

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

我通过硬编码文件名成功地做到了这一点,效果很好:


mutt-s“登录用户数”-a/tmp/user_analytics_2012-03-11.csvexample@gmail.com

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

编辑

我尝试了以下方法,似乎效果不错——这是正确的方法吗


mutt-s“登录用户数”-a/tmp/user\u analytics\u$(日期+\%Y-\%m-\%d).csvexample@gmail.com

如果您安装了mailx(
有关系统的详细信息,请参阅man mail):

mysql_命令| mail-s“登录用户数”example@gmail.com


这就避免了首先创建文件。

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

mutt -s "Number of users logged in" -a /tmp/$(ls -t | head -n 1) example@gmail.com < /tmp/message.txt
mutt-s“登录用户数”-a/tmp/$(ls-t | head-n 1)example@gmail.com
这不是一个简单的mysql\u命令,它是一个php脚本,用于查询多个表并创建输出csv文件——ThanksThanks——但文件夹中还包含其他文件。