#!/bin/bash
#
#    10-sysinfo - generate the system information
#    Copyright (c) 2013 Nick Charlton
#
#    Authors: Nick Charlton <hello@nickcharlton.net>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

date=$(date)
load=$(cat /proc/loadavg | awk '{print $1}')
memory_usage=$(free | awk '/Mem/ {printf("%.1f%%",(($2-($4+$6+$7))/$2) * 100)}')
users=$(users | wc -w)
swap_usage=$(free -m | awk '/Swap/ { printf("%.1f%%", $3/$2*100) }')
ip_address=$(ifconfig eth0 | sed -n '/inet addr/s/.*addr.\([^ ]*\) .*/\1/p')
uptime=$(uptime -p)
root_usage=$(df -h / | awk '/\// {print $(NF-1)}')
root_total=$(df -h / | awk '/\// {print $(NF-4)}')
storage_usage=$(df -h /dev/sda2 | awk '/\// {print $(NF-1)}')
storage_total=$(df -h /dev/sda2 | awk '/\// {print $(NF-4)}')
hdd_temp=$(hddtemp -u C -n /dev/sda)
board_temp=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp | awk '{printf("%d",$1/1000)}')

echo "System information as of: $date"
echo ""
printf "System load:       %-15s\tMemory usage: %s\n" "$load" "$memory_usage"
printf "Local users:       %-15s\tSwap usage:   %s\n" "$users" "$swap_usage"
printf "IP address:        %-15s\tUptime:       %s\n" "$ip_address" "$uptime"
printf "Usage of root/:    %-15s\tHDD temp:     %s\xc2\xb0C\n" "$root_usage of $root_total" "$hdd_temp"
printf "Usage of storage/: %-15s\tBoard temp:   %s\xc2\xb0C\n" "$storage_usage of $storage_total" "$board_temp"
echo ""
