#!/bin/bash # install necessary files: # sudo apt-get install bc # make this file executable: # chmod +x server_stats.sh # add to crontab (command: crontab -e) # * * * * * /path/to/server_stats.sh # thingspeak api key for channel that data will be logged to api_key='XXXXXXXXXXXXXXXX' # get cpu usage as a percent used_cpu_percent=`top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 \ | tr -s ' ' | cut -f2 -d' ' | cut -f1 -d'%'` echo $used_cpu_percent # get memory used_mem=`free -m | tr -s ' ' | grep buffers/cache | cut -f3 -d' '` total_mem=`free -m | tr -s ' ' | grep Mem | cut -f2 -d' '` used_mem_percent=`echo "scale=2;100*$used_mem/$total_mem" | bc` echo $used_mem_percent # get disk use as a percent used_disk_percent=`df -lh | awk '{if ($6 == "/") { print $5 }}' \ | head -1 | cut -d'%' -f1` echo $used_disk_percent # post the data to thingspeak curl -k --data \ "api_key=$api_key&field1=$used_cpu_percent&field2=$used_mem_\ percent&field3=$used_disk_percent" https://api.thingspeak.com/update