我有一个解析日志文件的 bash 脚本——在 AWK 数组中聚合数据——它将文件路径的一部分作为参数。它运行良好,我可以在后台手动运行多个实例。问题是我不知道如何避免为列表中的每个参数手动调用脚本。
根据我放置的位置,&它要么串行运行实例,要么尝试一次运行所有作业(我不想再次看到 9999 的平均负载)。
script.sh param1 &
script.sh param2 & ... #works fine
script.sh < params.txt & ... #runs serially
放置&在脚本中的不同位置会产生一些不良结果。
hub=$1
while read date; do
zgrep ^1 /logarchive/http/${hub}pr*/$date*.gz|\
awk -F'[ ,]' '{print$34,$(NF-6),$6,$(NF-7)}'|\
awk 'NR>1{bytesDown[$1 " " $2] += $3; bytesUp[$1 " " $2] += $4} END {for (i in bytesDown) print i, bytesDown[i], bytesUp[i]}'\
> ${hub}.$date.txt
done < dates.txt
我想为文件中的每个参数在后台运行一个实例。