Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #This script pulls ups information from both of the
- #Cyberpower UPS' connected to 7xESXi01 and 7xESXi02.
- #The time we are going to sleep between readings
- #Also used to calculate the current usage on the interface
- #30 seconds seems to be ideal, any more frequent and the data
- #gets really spikey. Since we are calculating on total octets
- #you will never loose data by setting this to a larger value.
- sleeptime=5
- get_ups_info_7xesxi01 () {
- #-- Cyber Power Panel - 7xESXi01 --
- #Pull data from the Cyber Power Panel. Replace with your own IP.
- cpp_7xesxi01_json_data=$(curl http://10.0.1.61:3052/agent/ppbe.js/init_status.js)
- #input voltage
- # cpp_7xesxi01_involts=$(echo $cpp_7xesxi01_json_data | grep -oP '(?<="voltage":")[^."]*' | head -1)
- #battery voltage
- cpp_7xesxi01_battvolts=$(echo $cpp_7xesxi01_json_data | grep -oP '(?<="voltage":")[^."]*' | tail -1)
- #Load(Watts)
- cpp_7xesxi01_loadwatt=$(echo $cpp_7xesxi01_json_data | grep -oP '(?<="watt":)[^,]*' | head -1)
- #Capacity %
- cpp_7xesxi01_capacity=$(echo $cpp_7xesxi01_json_data | grep -oP '(?<="capacity":)[^,]*' | head -1)
- #Runtime
- runtimeHour=$(echo $cpp_7xesxi01_json_data | grep -oP '(?<="runtimeHour":)[^,]*' | head -1)
- runtimeMinute=$(echo $cpp_7xesxi01_json_data | grep -oP '(?<="runtimeMinute":)[^,]*' | head -1)
- cpp_7xesxi01_runtime=$(($runtimeHour*60*60+$runtimeMinute*60))
- #Load %
- cpp_7xesxi01_loadpercent=$(echo $cpp_7xesxi01_json_data | grep -oP '(?<="load":)[^,]*' | head -1)
- #Battery Status
- cpp_7xesxi01_status=$(echo $cpp_7xesxi01_json_data | grep -oP '(?<="battery":{"state":")[a-zA-Z, ]*' | head -1)
- cpp_7xesxi01_status2="\"$cpp_7xesxi01_status\""
- }
- get_ups_info_7xesxi02() {
- #-- Cyber Power Panel - 7xesxi02 --
- #Pull data from the Cyber Power Panel. Replace with your own IP.
- cpp_7xesxi02_json_data=$(curl http://10.0.1.62:3052/agent/ppbe.js/init_status.js)
- #input voltage
- # cpp_7xesxi02_involts=$(echo $cpp_7xesxi02_json_data | grep -oP '(?<="voltage":")[^."]*' | head -1)
- #battery voltage
- cpp_7xesxi02_battvolts=$(echo $cpp_7xesxi02_json_data | grep -oP '(?<="voltage":")[^."]*' | tail -1)
- #Load(Watts)
- cpp_7xesxi02_loadwatt=$(echo $cpp_7xesxi02_json_data | grep -oP '(?<="watt":)[^,]*' | head -1)
- #Capacity %
- cpp_7xesxi02_capacity=$(echo $cpp_7xesxi02_json_data | grep -oP '(?<="capacity":)[^,]*' | head -1)
- #Runtime
- runtimeHour=$(echo $cpp_7xesxi02_json_data | grep -oP '(?<="runtimeHour":)[^,]*' | head -1)
- runtimeMinute=$(echo $cpp_7xesxi02_json_data | grep -oP '(?<="runtimeMinute":)[^,]*' | head -1)
- cpp_7xesxi02_runtime=$(($runtimeHour*60*60+$runtimeMinute*60))
- #Load %
- cpp_7xesxi02_loadpercent=$(echo $cpp_7xesxi02_json_data | grep -oP '(?<="load":)[^,]*' | head -1)
- #Battery Status
- cpp_7xesxi02_status=$(echo $cpp_7xesxi02_json_data | grep -oP '(?<="battery":{"state":")[a-zA-Z, ]*' | head -1)
- cpp_7xesxi02_status2="\"$cpp_7xesxi02_status\""
- }
- print_data_7xesxi01 () {
- echo "7xESXi01 UPS Battery Voltage: $cpp_7xesxi01_battvolts"
- echo "7xESXi01 UPS Battery Charge: $cpp_7xesxi01_capacity"
- echo "7xESXi01 UPS Load: $cpp_7xesxi01_loadpercent"
- echo "7xESXi01 UPS Load(Watts): $cpp_7xesxi01_loadwatt"
- # echo "7xESXi01 UPS Input Voltage: $cpp_7xesxi01_involts"
- echo "7xESXi01 UPS Runtime: $cpp_7xesxi01_runtime"
- echo "7xESXi01 UPS Battery Status: $cpp_7xesxi01_status2"
- }
- print_data_7xesxi02() {
- echo "7xESXi02 UPS Battery Voltage: $cpp_7xesxi02_battvolts"
- echo "7xESXi02 UPS Battery Charge: $cpp_7xesxi02_capacity"
- echo "7xESXi02 UPS Load: $cpp_7xesxi02_loadpercent"
- echo "7xESXi02 UPS Load(Watts): $cpp_7xesxi02_loadwatt"
- # echo "7xESXi02 UPS Input Voltage: $cpp_7xesxi02_involts"
- echo "7xESXi02 UPS Runtime: $cpp_7xesxi02_runtime"
- echo "7xESXi02 UPS Battery Status: $cpp_7xesxi02_status2"
- }
- write_data_7xesxi01 () {
- #Write the data to the database
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi01,sensor=battvoltage denhost1.value=$cpp_7xesxi01_battvolts"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi01,sensor=battcharge denhost1.value=$cpp_7xesxi01_capacity"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi01,sensor=battload denhost1.value=$cpp_7xesxi01_loadpercent"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi01,sensor=battloadwatt denhost1.value=$cpp_7xesxi01_loadwatt"
- # curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi01,sensor=inputvoltage denhost1.value=$cpp_7xesxi01_involts"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi01,sensor=runtime denhost1.value=$cpp_7xesxi01_runtime"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi01,sensor=status value=$cpp_7xesxi01_status2"
- }
- write_data_7xesxi02() {
- #Finally we can write it to the database
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi02,sensor=battvoltage denhost1.value=$cpp_7xesxi02_battvolts"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi02,sensor=battcharge denhost1.value=$cpp_7xesxi02_capacity"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi02,sensor=battload denhost1.value=$cpp_7xesxi02_loadpercent"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi02,sensor=battloadwatt denhost1.value=$cpp_7xesxi02_loadwatt"
- # curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi02,sensor=inputvoltage denhost1.value=$cpp_7xesxi02_involts"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi02,sensor=runtime denhost1.value=$cpp_7xesxi02_runtime"
- curl -i -XPOST 'http://localhost:8086/write?db=upsmon' --data-binary "ups_data,host=7xesxi02,sensor=status value=$cpp_7xesxi02_status2"
- }
- #Prepare to start the loop and warn the user
- echo "Press [CTRL+C] to stop..."
- while :
- do
- get_ups_info_7xesxi01
- get_ups_info_7xesxi02
- if [[ $cpp_7xesxi01_capacity -le 0 || $cpp_7xesxi01_battvolts -le 0 || $cpp_7xesxi01_loadpercent -le 0 || $cpp_7xesxi01_runtime -le 0 || $cpp_7xesxi01_status2 -le 0 ]];
- then
- echo "Skip this datapoint - something went wrong with the read"
- else
- #Output console data for future reference
- print_data_7xesxi01
- write_data_7xesxi01
- fi
- if [[ $cpp_7xesxi02_capacity -le 0 || $cpp_7xesxi02_battvolts -le 0 || $cpp_7xesxi02_loadpercent -le 0 || $cpp_7xesxi02_runtime -le 0 || $cpp_7xesxi02_status2 -le 0 ]];
- then
- echo "Skip this datapoint - something went wrong with the read"
- else
- #Output console data for future reference
- print_data_7xesxi02
- write_data_7xesxi02
- fi
- #Sleep between readings
- sleep "$sleeptime"
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement