41 lines
2.6 KiB
Bash
41 lines
2.6 KiB
Bash
#!/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'
|