写入文件并比较不同的值与在bash中将不同的值与sleep进行比较?

时间:2017-07-23 02:20:19

标签: bash

处理需要比较变化值的工作的最佳方法是什么,例如:

我想计算每分钟的行数

我可以使用grep和wc计算日志文件中的行,休眠60秒,再次读取行并减去这两个值以获得每分钟的行数:

lines="$(cat some.log | wc -l)"
sleep 60
newlines="$(cat some.log | wc -l)"
result="$(echo "$newlines - lines" | bc)"
printf "$result\n"

或者我可以将结果写入文件并使用cronjob每分钟运行脚本:

read lines < /tmp/lines.txt
newlines="$(cat some.log | wc -l)"

#Calculate result
result="$(echo "$newlines - $lines" | bc)"

#write lines
echo "$lines" > /tmp/lines.txt

#write result
echo "$result" > /tmp/result.txt

我唯一能想到的是文件选项更适合其他脚本,因此他们可以即时读取result.txt并且不必等待60秒执行。

1 个答案:

答案 0 :(得分:0)

您提到的方法很好。我想再建议一下,以防你可以尝试使用time命令来提取脚本执行时间。

time <yourscript> >log_file

从中获取分数和秒数以获得行数/分钟。

(line_count) / (no of minutes from log_file)