首页 > 解决方案 > Bash:while循环内的变量声明以获取最新数据不起作用

问题描述

为了测试,我想测试将数据发送到本地 9090 端口。我正在使用一个while循环来实现这一点。但是 while 循环没有被触发,脚本被卡在 while 循环内的变量中。我究竟做错了什么?

代码 :

#!/bin/bash
nc -l -p 9090 &
z=$(ps aux)
echo "ps done"
while true 
do
var=$var$(awk '{print "cpu_usage{process=\""$11"\", pid=\""$2"\"}", $3z}');
echo "var done"  ---> Not getting here
curl -X POST -H  "Content-Type: text/plain" --data "$var" http://localhost:9090/metrics ;
sleep 10;
done

这条线行不通

var=$var$(awk '{print "cpu_usage{process=\""$11"\", pid=\""$2"\"}", $3z}');

任何想法为什么?谢谢你。:-)

有没有更好的方法每 5-10 秒发送一次此类统计信息。:-)

标签: bashprometheus

解决方案


推荐阅读