我们正在研究构建一个logcheck脚本,该脚本将在找到给定参数时触发给定的日志文件和电子邮件。我无法准确地确定此脚本的另一个版本是否与至少一个针对同一文件的相同参数一起运行。脚本可以采取以下措施:
logcheck -i <filename(s)> <searchCriterion> <optionalEmailAddresses>
我曾尝试将ps aux与一系列grep,sed和cut一起使用,但它总是比脚本本身更多的代码,并且很少有效地工作。是否有一种有效的方法来判断此脚本的另一个版本是否使用相同的文件名和搜索条件运行?一些输入的例子:
EX1 .\logcheck -i file1,file2,file3 "foo string 0123" email@address.com
EX2 .\logcheck -s file1 Hello,World,Foo
EX3 .\logcheck -i file3 foo email@address1.com,email@address2.com
在这种情况下,3不应该运行,因为1已经使用参数file3和foo运行。
答案 0 :(得分:0)
您的问题有很多解决方案,我建议您创建一个锁定文件,格式如下:
arg1Ex1 PID#(Ex1)
arg2Ex1 PID#(Ex1)
arg3Ex1 PID#(Ex1)
arg4Ex1 PID#(Ex1)
arg1Ex2 PID#(Ex2)
arg2Ex2 PID#(Ex2)
arg3Ex2 PID#(Ex2)
arg4Ex2 PID#(Ex2)
脚本启动时:
awk command or grep
)awk 'print $2'
)以检查它是否仍在运行(ps
)(仔细检查并发性,如果是进程异常结束以前垃圾可能会保留在文件中)