36 lines
1004 B
Bash
Executable File
36 lines
1004 B
Bash
Executable File
#!/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
|
|
|