gpt4 book ai didi

linux - 如果 shell 脚本中发生错误,通过电子邮件通知

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:46 25 4
gpt4 key购买 nike

fileexist=0
mv /data/Finished-HADOOP_EXPORT_&Date#.done /data/clv/daily/archieve-wip/
fileexist=1
--some other script below

以上是我在 for 循环中使用的 shell 脚本,我正在移动一些文件。如果在移动过程中出现问题,我想通过电子邮件通知自己,因为我在 Hadoop 集群上运行这个脚本,所以集群可能在运行时出现故障等等。那么我怎样才能更好此 shell 脚本中的 错误处理机制?有什么想法吗?

最佳答案

好吧,至少您需要知道“您预计会出现什么问题”。基于此你可以做到这一点

 mv ..... 2> err.log
if [ $? -ne 0 ]
then
cat ./err.log | mailx -s "Error report" admin@abc.com
rm ./err.log
fi

或作为 William Pursell建议,使用-

trap 'rm -f err.log' 0; mv ... 2> err.log || < err.log mailx ...

mv 可能会在出错时返回一个非零返回码,而 $? 会返回该错误代码。如果整个服务器出现故障,那么不幸的是这个脚本也不会运行,所以最好留给更高级的监控工具,例如 Foglight。在不同的监控服务器上运行。对于更基本的检查,您可以使用上面的方法。

关于linux - 如果 shell 脚本中发生错误,通过电子邮件通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12325370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com