gpt4 book ai didi

linux - 用于检查文件中连续模式的脚本

转载 作者:太空宇宙 更新时间:2023-11-04 12:00:19 24 4
gpt4 key购买 nike

我需要编写一个脚本来查看文件,如果出现以下模式:“错误:无法获得锁定”连续发生 X 次以发送电子邮件。

我已经写了一个扫描文件并在发现事件时发送电子邮件的程序,我可以得到一些帮助来修改它以仅在看到模式时发出警报让我们说连续 5 次

if grep -q ERROR:  could not obtain lock "error.txt"; then
echo “check the server” | mail -s "5 consecutive errors" test@test.com
fi

我尝试用 uniq 来做,但它会在它发生时输出出现次数

cat error.file | awk '{print $1}' | uniq -c | grep 'ERROR' | awk '{print $1}'
2
5

错误文件内容如下

    ERROR
ERROR
12345
ERROR
ERROR
ERROR
ERROR
ERROR

只有当它在一行中找到 5 个连续的匹配项并忽略 5 个以下的任何内容时,我才需要它生成输出。

非常感谢。

最佳答案

此脚本会在每次看到至少 5 个连续错误时发送邮件,因此如果连续 5 个 ERROR 多次发生,它可以发送多封邮件

awk '{if ($0 ~ /ERROR/){n_error+=1}else{n_error=0}}; n_error==5{system("echo \"check the server\" | mail -s \"5 consecutive errors\" test@test.com")}' error.txt

邮件一发送就退出:

awk '{if ($0 ~ /ERROR/){n_error+=1}else{n_error=0}}; n_error==5{system("echo \"check the server\" | mail -s \"5 consecutive errors\" test@test.com"); exit 0}' error.txt

关于linux - 用于检查文件中连续模式的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52723173/

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