Bash脚本用于监视其他脚本的执行时间

前端之家收集整理的这篇文章主要介绍了Bash脚本用于监视其他脚本的执行时间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个主脚本,它运行文件夹中的所有脚本.
#!/bin/bash
for each in /some_folder/*.sh
do
  bash $each
done;

我想知道其中一个执行是否持续时间太长(超过N秒).例如执行脚本,例如:

#!/bin/bash
ping -c 10000 google.com

将持续很长时间,我希望我的主脚本在N秒后通过电子邮件发送给我.

我现在所能做的就是使用#timeout N选项运行所有脚本,但它会阻止它们!
是否可以通过电子邮件发送给我,而不是停止执行脚本?

你可以这样做:
( sleep 10 ; echo 'Takes a while' | sendmail myself@example.com ) &
email_pid=$!
bash $each
kill $email_pid

第一个命令在后台的子shell中运行.它首先睡了一会儿,然后发送电子邮件.如果脚本$each在睡眠到期之前完成,则子shell将被终止而不发送电子邮件.

猜你在找的Bash相关文章