【发布时间】:2013-07-06 03:24:10
【问题描述】:
我正在使用以下 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...
【问题讨论】:
-
您是否安装了
mutt? -
不,它没有出现,所以@JS웃