使用4个参数创建Unix shell脚本

时间:2013-09-17 12:38:44

标签: shell unix

我有一个文件(例如system.log)。我需要扫描此文件以查找在5分钟内必须多次出现的特定字符串。

我想我可以创建一个包含4个参数的脚本:

  • 文件的位置
  • 要搜索的字符串
  • 字符串出现的次数
  • 时间段

如果此脚本在指定的时间段内找到字符串,则会写入“成功”消息

这是脚本的开头

#!/bin/ksh
#set -x

#############
# VARIABLES #
#############

location="/moteurs/websphere/7.0/esb/managed01/logs/"
file="SystemOut.log"
pattern="WSV0605W: Thread \"SIBFAPInboundThreadPool"
string=$(grep -ic "${pattern}" ${location}/${file})

现在我已经定义了我的变量,我不知道怎样才能创建一个每5分钟扫描SystemOut.log的函数。

2 个答案:

答案 0 :(得分:2)

  

你知道如何创建这个shell?

是。使用您喜欢的编辑器,编写shell脚本,执行它。你完成了。

答案 1 :(得分:0)

只有一半的回答,但也许它会让你到达某个地方:

要每五分钟重复一次,你可以用睡眠做一个循环:

while true
do
  echo "I'm doing something!"  # replace this by the actual code
  sleep $[5*60]
done

这将每五分钟运行一次代码(这里只是一个echo)。 - 好的,加上代码需要的时间,所以不要依赖时间准确;为了使其准确,您可以使用

while sleep $[ 5*60 - $(date +%s) % (5*60) ]
do
  echo "I'm doing something!"  # replace this by the actual code
done

在执行代码之前,这将始终等待整个5分钟的时间点。