web-stats.sh/web-stats.sh

39 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# Dependencies: vnstat vnstati base64 scp free df date uptime head mktemp
name='name'
interface1='eth0'
interface2='wg0'
tempfile="$(mktemp)"
# Remote server ssh configs (must have ssh keys setup)
uname='webserver' # UserName that is used for sshlogin for remote weserver
server='webserver.example.com' # Domain name or IP for remote webserver
path="/var/www/webserver/stats.example.com/$name/index.htm" # Directory where reports are stored on remote webserver
port='22' # SSH port (usually 22)
webstat () {
echo '<!DOCTYPE html><html><head><title>'$name' Stats</title><link rel="stylesheet" href="//static.tjw.moe/styles.css"><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"></head><body><h1>'$name' Stats</h1><hr><br>'
echo '<h2>Time of last report:</h2><pre>'$(date --utc)'</pre><br>'
echo -e '<h2>Disk Usage:</h2><pre>'"$(df -h -x squashfs -x tmpfs -x devtmpfs)"'</pre><br>'
echo '<h2>Memory:</h2><pre>'"$(free -h)"'</pre><br>'
echo '<h2>Uptime:</h2><pre>'"$(uptime)"'</pre><br>'
echo '<h2>Network Usage:</h2>'
echo -e "<img src=\"data:image/png;base64,$(vnstati -i $interface1 -y -o - | base64 -w0)\"><br><img src=\"data:image/png;base64,$(vnstati -i $interface1 -m -o - | base64 -w0)\"><br><img src=\"data:image/png;base64,$(vnstati -i $interface1 -d -o - | base64 -w0)\"><br><img src=\"data:image/png;base64,$(vnstati -i $interface1 -h -o - | base64 -w0)\">"
#echo "<pre>$(vnstat -i $interface1 -h | tail -n 9)</pre>"
if [ ! -z $interface2 ]; then
echo -e "<br><br><img src=\"data:image/png;base64,$(vnstati -i $interface2 -y -o - | base64 -w0)\"><br><img src=\"data:image/png;base64,$(vnstati -i $interface2 -m -o - | base64 -w0)\"><br><img src=\"data:image/png;base64,$(vnstati -i $interface2 -d -o - | base64 -w0)\"><br><img src=\"data:image/png;base64,$(vnstati -i $interface2 -h -o - | base64 -w0)\">"
#echo "<pre>$(vnstat -i $interface2 -h | tail -n 9)</pre>"
fi
echo '</body></html>'
}
main () {
webstat > $tempfile
scp -C -P $port $tempfile $uname@$server:$path
rm $tempfile
}
main