好的。 所以我们有一个lighttpd服务器抽取我们的图像加载。
它每天login,我们正在考虑将所有这些图像转移到我们的S3帐户以获得更好的加载时间,但是在我们做到这一点之前,我需要至less感觉到我们的转移将会是什么样子。
所以现在我们有标准的lighttp访问日志
accesslog.filename =“/var/log/lighttpd/images.access_log”accesslog.format =“%h%V%u%t \”%r \“%s%b \”%{Referer} i \ “%{用户代理} I \””
所以想从该日志文件转储所有“传输的字节”,很好,很容易。
cat images.access_log | awk'{print $ 10}'
其中踢出类似这样的输出。
19547 6138 17782 8044 345 0 2727 2125 1838 1649 2127 3275 3653 0 16688
现在 – 我做了一些Googlesearch,也许我忘了一些东西,是否有一个隐藏在Linux的某个地方的命令,将采取所有的输出,只是把它加在一起为我? 所以我可以运行这个命令,并且每天要吐出一个荒谬的大数字,直到我每天获得带宽的基线为止。
—编辑—
我发现https://stackoverflow.com/questions/450799/linux-command-to-sum-integers-one-per-line
反正有awk返回完整的数字,而不是做以下显示?
cat images.access_log | awk '{print $10}' | awk '{s+=$1} END {print s}' 9.48886e+10
试试cat images.access_log | awk '{print $10}' | awk '{s+=$1} END {printf "%.f\n",s}' cat images.access_log | awk '{print $10}' | awk '{s+=$1} END {printf "%.f\n",s}'
您可以将这些组合成一个命令。 如果第十列有数字,那么:
awk '{s+=$10} END {printf("%.d\n",s)}' images.access_log