0
我是一个系统管理员,我经常有一种情况,我有一个脚本或命令,生成大量的输出,我只想通过电子邮件发送到我如果命令失败。编写一个运行命令的脚本非常容易,收集输出并在命令失败时通过电子邮件发送它,但是我想我应该能够编写一个命令:bash脚本接受登录标准输入和电子邮件日志如果输入过程失败
1)接受stdin上的日志信息 2)等待输入过程退出并查看它的退出状态是否为 3a)如果输入过程干净地退出,将日志输入附加到正常日志文件中(如果输入过程失败),将日志输入附加到正常日志并发送给我一封电子邮件。
它看起来像这样的命令行:
something_important | mailonfail.sh [email protected] /var/log/normal_log
这将使得它可以很方便的的crontab使用。
我无法弄清楚如何让脚本等待写入过程并评估过程如何退出。
只是要exatra清楚,这里是我如何与一个包装做到这一点:
#! /bin/bash
something_important > output
ERR=$!
if [ "$ERR" -ne "0" ] ; then
cat something_important | mail -s "something_important failed" [email protected]
fi
cat something_important >> /var/log/normal_log
再次声明,这不是我想要的,我想要写一个脚本,并管道命令进去。
这有道理吗?我会怎么做?我错过了什么吗?
谢谢大家! -Dylan
你是一个可爱的人,这是一个可爱的答案,但是这是我已经知道如何做的事。无论如何,我给你+1。 – pileofrogs
对不起,我似乎没有完全理解你的问题......是关于如何等待给定时间的一个命令(如果它太慢就杀死它)?我不确定“脚本和管道命令”吗? – bufh
我希望能够执行“./some_command | myscript.sh”并让myscript.sh知道some_command退出是否正常。 – pileofrogs