在ubnatu 环境中写一段脚本把docker stats展示的数据转成json 通过webhook地址传给后端,每一分钟执行一次。
时间: 2024-09-22 14:03:13 浏览: 44
在Ubuntu环境中,你可以使用`curl`、`jq`(处理JSON数据)以及定时任务`cron`来实现这个需求。首先,确保安装了必要的工具:
```bash
sudo apt-get update && sudo apt-get install curl jq cron
```
创建一个名为`docker_stats.sh`的shell脚本,内容如下:
```bash
#!/bin/bash
# 获取Docker stats信息
stats=$(docker stats -q --format "{{json .}}")
# 将输出转换为JSON并发送到Webhook
echo $stats | jq '.' > /tmp/docker-stats.json
# 发送请求到Webhook
curl -X POST -H "Content-Type: application/json" \
-d @/tmp/docker-stats.json \
<YOUR_WEBHOOK_URL>
# 清理临时文件
rm /tmp/docker-stats.json
# 检查是否需要每天的指定时间运行(这里是每分钟执行一次,可以按需调整)
if [[ $(date +'%M') -eq '00' ]]; then
# 如果当前分钟是00,则执行脚本
./docker_stats.sh
fi
```
然后将`<YOUR_WEBHOOK_URL>`替换为你实际的Webhook URL。
接着设置`cron`任务让它每分钟自动执行一次。编辑crontab配置文件:
```bash
crontab -e
```
添加一行类似下面的内容:
```cron
* * * * * /path/to/your/directory/docker_stats.sh
```
这行表示每分钟 (`* *`) 执行 `/path/to/your/directory/docker_stats.sh` 脚本。记得替换 `path/to/your/directory` 为脚本的实际路径。
保存并关闭文件,新的定时任务就会开始生效。
阅读全文