处理需要比较变化值的工作的最佳方法是什么,例如:
我想计算每分钟的行数
我可以使用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秒执行。
答案 0 :(得分:0)
您提到的方法很好。我想再建议一下,以防你可以尝试使用time命令来提取脚本执行时间。
time <yourscript> >log_file
从中获取分数和秒数以获得行数/分钟。
(line_count) / (no of minutes from log_file)