bash 将日志文件作为邮件内容发送的脚本,格式化(特定颜色编码)

bash script to send the log file as mail content, formatted (specific color coding)

cat run_summary.txt | unix2dos | mail -s "summary log" email_id@gmail.com

此命令将邮件作为邮件正文发送。但是,它没有格式化。 run_summary.txt 有带列的行,但在电子邮件中它与在日志文件中不同。日志文件的格式如下。

below is the summary of log files:
#empty line
date time mon
12   09   jan
07   22   apr

不需要cat命令。您应该将文件重定向到 mail 命令。

此外,unix2dos 命令可以处理文件,而不是字符串。在您的情况下, unix2dos 命令由于 cat 命令而获得一个字符串。请阅读 unix2dos 命令的手册页:https://linux.die.net/man/1/unix2dos

示例:

mail -s "summary log" my_mail@gmail.com < run_summary.txt 

如果你真的需要unix2dos命令那么你可以这样做:

unix2dos run_summary.txt && mail -s "summary log" my_mail@gmail.com < run_summary.txt

仅供参考: 在上面的示例中,run_summary.txt 文件中的原始内容将被覆盖。如果你想创建一个新文件,你应该使用 -n 标志。 例如:

Convert a.txt and write to e.txt.

unix2dos -n a.txt e.txt

我使用了和你一样的txt文件,邮件内容如下:

date time mon
12   09   jan
07   22   apr