#!/bin/bash # provisioned in mbps provisioned_upload=200 provisioned_download=10 influx_url="https://influx.domain.com" # without trailing slash and with proto (http/s) influx_db="speedtest_db" influx_user="speedtest_user" influx_pass="speedtest_password" #### Starts here #### host=$(hostname --fqdn) #if ! command -v bc &> /dev/null #then # echo "bc could not be found" # exit 1 #fi if ! command -v jq &> /dev/null then echo "jq could not be found" exit 1 fi if ! command -v curl &> /dev/null then echo "curl could not be found" exit fi if ! command -v speedtest-cli &> /dev/null then echo "speedtest-cli could not be found" exit fi data=$(speedtest-cli --json) ping=$(jq .ping <<< "${data}") upload=$(jq .upload <<< "${data}") download=$(jq .download <<< "${data}") server_name=$(jq .server.name <<< "${data}") server_sponsor=$(jq .server.sponsor <<< "${data}") server_id=$(jq .server.id <<< "${data}") server_distance=$(jq .server.d <<< "${data}") curl -XPOST "${influx_url}/write?db=${influx_db}" \ -u "${influx_user}:${influx_pass}" \ --data-binary \ "upload,host=${host} value=${upload} download,host=${host} value=${download} ping,host=${host} value=${ping} server_name,host=${host} value=${server_name} server_sponsor,host=${host} value=${server_sponsor} server_id,host=${host} value=${server_id} server_distance,host=${host} value=${server_distance}"