linux - 发送一封电子邮件,其中正文是来自文件的一行文本 - 取决于日期

linux - 发送一封电子邮件,其中正文是来自文件的一行文本 - 取决于日期

我想添加一个 cron 任务,用于发送电子邮件至[电子邮件保护]每天一次,并包含一行根据日期取自文件的文本作为邮件正文。

我的 file.txt 看起来像这样:

10-16-18 green
10-17-18 brown
10-18-18 blue
....
10-01-20 purple

例如,日期是 10-16-18,我收到一封正文中包含“brown”的电子邮件。该文件最终可能有数百行。

答案1

这将从文件中提取所需的行并返回该行的其余部分。如果匹配多行,它将打印所有行。

awk '$1 == "'`date '+%m-%d-%y'`'" { print substr($0, 10) }' file.txt | mail ...

;exit您可以通过在 之前添加 来限制仅显示第一个匹配项}

10比赛的长度也是如此;如果您想要全年,您可以将%y改为%Y10改为12

因此,要创建一个 cron 任务,比如说,在早上 6:00,你可以将其放入你的 crontab 中:

0 6 * * * awk '$1 == "'`date '+%m-%d-%y'`'" { print substr($0, 10) }' file.txt | mail -s SUBJECT [email protected]

相关内容