#!/bin/sh

BASE="/mnt/sdb/www/mocus/code/system"
LOG="$BASE/log"

backup() {
    FILE="$LOG/sdb-backup.log"

    date "+%Y-%m-%d %H:%M:%S" > "$FILE"
    echo >> "$FILE"

    mountpoint -q /mnt/sdb || {
        echo "ERROR: /mnt/sdb not mounted" >> "$FILE"
        return 1
    }

    /usr/bin/rsync -a --exclude='.git/' /mnt/sdb/ /mnt/backup/ >> "$FILE" 2>&1

    echo "rsync exit=$?" >> "$FILE"
}

run() {
    echo "$1" >> "$FILE"
    echo "---------------------" >> "$FILE"
    eval "$1" >> "$FILE"
    echo >> "$FILE"
}

make() {
    FILE="$LOG/$1"
    date "+%Y-%m-%d %H:%M:%S" > "$FILE"
    echo >> "$FILE"
}

backup

make sysreport-hwd.log
run "grep 'Model' /proc/cpuinfo"
run "hostname"
run "cat /proc/version"
run "uptime"
run "awk '{split(\$4,a,\"/\"); printf \"Load: 1=%s 5=%s 15=%s Active=%s Total=%s PID=%s\n\", \$1,\$2,\$3,a[1],a[2],\$5}' /proc/loadavg"
run "awk '{printf \"CPU Temp: %.1f°C\n\", \$1/1000}' /sys/class/thermal/thermal_zone0/temp"

make sysreport-res.log
run "free -h"
run "awk '/MemTotal|MemFree|Buffers|Cached|Swap/ {printf \"%s: %.1f MB\n\", \$1, \$2/1024}' /proc/meminfo"
run "df -h -x tmpfs -x devtmpfs"

make sysreport-net.log
run "ip route show"
run "ip neighbour"
run "ss -ta state ESTABLISHED"

make sysreport-user.log
run "who"
