Skip to content

Instantly share code, notes, and snippets.

@IIPoliII
Created October 2, 2020 09:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IIPoliII/694b291ae9df7c832ce87077d85e8bc3 to your computer and use it in GitHub Desktop.
Save IIPoliII/694b291ae9df7c832ce87077d85e8bc3 to your computer and use it in GitHub Desktop.
Get yearly used bandwidth Hetzner Robot API
#!/bin/bash
#Created by Poli
user="YourUserHere"
password="YourPasswordHere"
first_date=$(date +"%Y")"-01"
last_date=$(date +"%Y")"-12"
UsedBandwidth=0
ips=`curl -su "${user}:${password}" https://robot-ws.your-server.de/ip.json | jq '.[].ip.ip' | sed -e 's/^"//' -e 's/"$//'`
subnets=`curl -su "${user}:${password}" https://robot-ws.your-server.de/subnet.json | jq '.[].subnet.ip' | sed -e 's/^"//' -e 's/"$//'`
command="curl -su \"${user}:${password}\" https://robot-ws.your-server.de/traffic --data-urlencode 'type=year' --data-urlencode \"from=${first_date}\" --data-urlencode \"to=${last_date}\""
while IFS= read -r line ;
do
command="$command --data-urlencode \"ip[]=${line}\""
done <<< "$ips"
while IFS= read -r line ;
do
command="$command --data-urlencode \"subnet[]=${line}\""
done <<< "$subnets"
CommandOutput=`eval ${command} | jq '.[].data[].sum'`
while IFS= read -r line ;
do
UsedBandwidth=`echo "$UsedBandwidth + $line" | bc`
done <<< "$CommandOutput"
echo "Total used bandwidth this year : $(printf %0.2f $UsedBandwidth) GB"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment