linux – 如何在后台运行命令并在完成后通过电子邮件通知我

linux – 如何在后台运行命令并在完成后通过电子邮件通知我,第1张

概述我有以下命令,需要很长时间才能运行(几个小时).我想将它作为后台进程,并在完成后向我发送电子邮件. 对于顶部的cherry,它遇到的任何错误都应该在发生错误时写入文本文件? find . -type f -name "*.rm" -exec ./rm2mp3.sh \{} \; -exec rm \{} \; 我怎么能用上面的命令做到这一点? yourcommand 2>&1 | mail -s 我有以下命令,需要很长时间才能运行(几个小时).我想将它作为后台进程,并在完成后向我发送电子邮件.

对于顶部的cherry,它遇到的任何错误都应该在发生错误时写入文本文件?

find . -type f -name "*.rm" -exec ./rm2mp3.sh \{} \; -exec rm \{} \;

我怎么能用上面的命令做到这一点?

解决方法
yourcommand 2>&1 | mail -s "yourcommand is done" yourname@example.com

2>& 1位表示“让我的错误像常规输出一样”,其余的则说“采取常规输出并将其邮寄给我一个不错的主题行”

请注意,它不适用于csh系列shell,只能使用Bourne(sh,bash,ksh …),AFAIK.因此,在#!/ bin / sh或#!/ bin / bash下运行. (N.B.您可以使用命令|& mail …在csh中管道两个描述符,但只有疯子才能使用csh编写脚本.)

更新:

How would I write the errors to a log file and then just email my self on completion?

如果你的意思是通过电子邮件发送它已经完成的事实,

yourcommand 1>/dev/null 2>mylogfile ; (echo "done!" | mail -s "yourcommand is done")

如果你的意思是只是通过电子邮件发送错误(在这种情况下你不需要日志文件)(修复为@Trey说),

yourcommand 2&>1 1>/dev/null | mail -s "yourcommand is done" yourname@example.com
总结

以上是内存溢出为你收集整理的linux – 如何在后台运行命令并在完成后通过电子邮件通知我全部内容,希望文章能够帮你解决linux – 如何在后台运行命令并在完成后通过电子邮件通知我所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/1027435.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存