我正在使用以下 cron 任务:
wget -O ~/files/csv_backups/products_csv/products-`date +%Y-%m-%d-%H%M%S`.csv http://[site_URL]/product-report/csv
获取产品销售的每日 CSV。它当前将其放置在服务器上的文件目录中,并使用日期标记对其进行命名。
我要做的是让它也发送一封电子邮件,其中包含文件的附件或正文中文件的链接,发送到特定的电子邮件地址。我似乎找不到办法做到这一点。有什么想法吗?
更新:
我已经尝试使用建议的代码,但它只是输出了文件的尾随路径,而不是正确的下载链接。所以我尝试了以下
echo "<a href="http://www.example.com' . $(ls -1t ~/files/csv_backups/products_csv/* | head -1) . '">Download File</a>" | mail -s "Daily Products CSV Report" username@mail.com
但是我得到了以纯文本形式打印的回声。更近一点。。
更新:
1)好的......所以我的第一个问题是我试图将文件重命名为的时间戳不起作用并且下载失败。所以我暂时删除了时间戳(即使我想要它以便它可以进行备份......)。以下代码是我用来下载文件的新行。无论服务器时间戳如何,它都应该不断下载新副本。这是因为在您访问该 URL 之前根本不会真正生成该文件,因此在 wget 尝试下载它之前没有文件可用于比较时间。
wget --timestamping -r -O files/csv_backups/products_csv/products.csv http://www.example.com/reports/product-report/csv
2)对于电子邮件,我删除了 html 并仅留下以下内容,因为由于某种原因,回显以纯文本形式呈现 html,这是行不通的。为什么会发生这种情况也可能是为什么我不能使用 URL 末尾的$(ls -1t * | head -1)行来对最新文件进行分级...
echo "http://www.example.com/files/csv_backups/products_csv/products.csv" | mail...