次の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) OK...私の最初の問題は、ファイルの名前を変更しようとしているタイムスタンプが機能せず、ダウンロードが失敗することです。そのため、タイムスタンプを削除しました(バックアップを作成できるようにしたいのですが...)。次のコードは、ファイルをダウンロードするために使用している新しい行です。サーバーのタイムスタンプに関係なく、常に新しいコピーをダウンロードする必要があります。これは、その 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...