#!/usr/bin/env bash set -euo pipefail box="${1:-armbian@192.168.1.188}" repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" ssh "$box" 'set -eu backup="$HOME/vdi-terminal/backups/overnight-observer-$(date +%Y%m%d-%H%M%S)" mkdir -p "$backup" "$HOME/vdi-terminal/bin" "$HOME/vdi-terminal/logs" "$HOME/vdi-terminal/state" chmod 700 "$backup" for file in /etc/systemd/system/vdi-overnight-observer.service /etc/systemd/journald.conf.d/70-vdi-observer-journal.conf /usr/local/libexec/vdi-observer-pstore "$HOME/vdi-terminal/bin/vdi-overnight-observer"; do if test -f "$file"; then sudo -n cp -a "$file" "$backup/$(basename "$file")"; fi done echo "backup=$backup"' scp "$repo_root/terminal/kiosk-shell/scripts/vdi-overnight-observer" "$box:/tmp/vdi-overnight-observer" scp "$repo_root/terminal/kiosk-shell/etc/vdi-overnight-observer.service" "$box:/tmp/vdi-overnight-observer.service" scp "$repo_root/terminal/kiosk-shell/etc/70-vdi-observer-journal.conf" "$box:/tmp/70-vdi-observer-journal.conf" scp "$repo_root/terminal/kiosk-shell/scripts/vdi-observer-pstore" "$box:/tmp/vdi-observer-pstore" ssh "$box" 'set -eu python3 -c "import ast,pathlib; ast.parse(pathlib.Path(\"/tmp/vdi-overnight-observer\").read_text())" sudo -n systemctl stop vdi-overnight-observer.service 2>/dev/null || true install -m 0755 /tmp/vdi-overnight-observer /home/armbian/vdi-terminal/bin/vdi-overnight-observer sudo -n install -D -o root -g root -m 0755 /tmp/vdi-observer-pstore /usr/local/libexec/vdi-observer-pstore sudo -n install -m 0644 /tmp/vdi-overnight-observer.service /etc/systemd/system/vdi-overnight-observer.service sudo -n install -D -m 0644 /tmp/70-vdi-observer-journal.conf /etc/systemd/journald.conf.d/70-vdi-observer-journal.conf # Armbian makes /var/log a RAM disk and journal a symlink to /var/log.hdd. # Work on its existing disk target; tmpfiles rejects file flags on the symlink. journal_root="$(readlink -f /var/log/journal)" test -n "$journal_root" sudo -n install -d -m 2755 -o root -g systemd-journal "$journal_root" sudo -n systemd-analyze verify /etc/systemd/system/vdi-overnight-observer.service sudo -n systemctl daemon-reload sudo -n systemctl restart systemd-journald.service sudo -n journalctl --flush sudo -n journalctl --sync sudo -n systemctl enable --now vdi-overnight-observer.service sleep 2 systemctl is-active vdi-overnight-observer.service systemctl is-enabled vdi-overnight-observer.service cat /home/armbian/vdi-terminal/logs/overnight-summary.txt sudo -n journalctl --directory /var/log/journal -n 3 --no-pager rm -f /tmp/vdi-overnight-observer /tmp/vdi-overnight-observer.service /tmp/70-vdi-observer-journal.conf /tmp/vdi-observer-pstore'