【问题标题】:Linux : mail multiple files returned from grepLinux:邮寄从 grep 返回的多个文件
【发布时间】:2014-06-18 15:34:59
【问题描述】:

我想在日志文件中查找 ora- 错误。

grep  -L ora- *.log

假设它返回 abc.log 和 xyz.log

然后,我想对每个文件的内容进行分类并动态发送 (如cat abc.log|mail -s abc.log myemail@email.com

对于上面的例子,我期待两封包含 abc.log 和 xyz.log 内容的电子邮件

我试过做 grep -i -L ora- *.log|xargs cat| mail myemail@email.com 但它只发送一封电子邮件。

谢谢

【问题讨论】:

  • 为什么不循环浏览这些文件? for file in $(grep -L ora- ...); do cat $file ... done
  • 感谢它的工作。只是让我知道是否也可以使用 find -exec 或 xargs

标签: linux file email grep


【解决方案1】:

如果您希望每个文件一封邮件,您需要循环或运行mail 作为xargs 的子级:

grep -L ora- *.log | xargs -i mailx -s "{}" -a "{}" myemail@email.com

如果要将所有文件附加到单个邮件,则必须构建一个命令:

cmd="mailx -s logs "
for f in $(grep  -L ora- *.log) ; do
    cmd="$cmd -a '$f'"
done

eval $cmd myemail@email.com

请注意,当文件名包含单个刻度时,这很脆弱并且会中断。

【讨论】:

  • 如何将邮件作为 xargs 的子节点运行?我收到邮件:无效选项——a
  • 抱歉,mail 不支持附件。请改用mailx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多