我想添加一个 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
改为%Y
和10
改为12
。
因此,要创建一个 cron 任务,比如说,在早上 6:00,你可以将其放入你的 crontab 中:
0 6 * * * awk '$1 == "'`date '+%m-%d-%y'`'" { print substr($0, 10) }' file.txt | mail -s SUBJECT [email protected]