首页 > 解决方案 > Mac os x终端邮件:在一封邮件中发送多个输出

问题描述

我有一个备份脚本,在我的 mac os high sierra 上每 2 周使用 cron 执行一次。
这部分有效,现在我想使用以下两行将日志邮寄给自己:

df -Ph /Volumes/USB_Storage >> “ date +"%Y-%m-%d"/Users/ralphschipper/Documents/Logs/rsync”.log

cat "/Users/ralphschipper/Documents/Logs/rsync" date +"%Y-%m-%d".log | /usr/bin/mail -s "备份日志" user@gmail.com

问题是:我的备份从 9 月 15 日晚上 10:00 开始,因此在 15 日创建日志文件
备份在 9 月 16 日上午 1:00 准备好,因此创建了一个新的日志文件。
最后,使用包含 df 命令的日志文件从 16 日发送邮件。

现在有人如何解决这个问题吗?
我可以在存储当前日期的过程开始时创建一个变量并使用它吗?
或者我可以发送一封发送日志文件和 df 结果的邮件吗?

问候,

拉尔夫

标签: bashmacosterminal

解决方案


存储您要使用的日期(并对完整的文件名执行相同操作)。

backupdate=$(date +"%Y-%m-%d")
backupfile="/Users/ralphschipper/Documents/Logs/rsync${backupdate}.log"

df -Ph /Volumes/USB_Storage >> "${backupfile}"
cat "${backupfile}" | /usr/bin/mail -s "Backuplog of ${backupdate}" user@gmail.com

推荐阅读