Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Co-authored-by: Cursor <cursoragent@cursor.com>
53 lines
1.9 KiB
Bash
Executable File
53 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Run journalctl --vacuum-time=7d in key CTs to limit journal size.
|
|
# Usage: ./scripts/maintenance/journal-vacuum-key-ct.sh [--dry-run]
|
|
# Requires: SSH to Proxmox hosts. VMIDs: 5000 (Blockscout), 2101 (RPC), 10233/10234 (NPMplus), 2400, 10130, 10150, 10151.
|
|
# See: docs/04-configuration/STORAGE_GROWTH_AND_HEALTH.md
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
[[ -f "${PROJECT_ROOT}/config/ip-addresses.conf" ]] && source "${PROJECT_ROOT}/config/ip-addresses.conf" 2>/dev/null || true
|
|
|
|
VACUUM_DAYS="${VACUUM_DAYS:-7}"
|
|
DRY_RUN=0
|
|
[[ "${1:-}" == "--dry-run" ]] && DRY_RUN=1
|
|
|
|
# VMID -> host IP (from load-project-env get_host_for_vmid or defaults)
|
|
get_host() {
|
|
local vmid="$1"
|
|
case "$vmid" in
|
|
5000|10234|10237|2201|2303|2401) echo "${PROXMOX_HOST_R630_02:-192.168.11.12}";;
|
|
2101|10130|10150|10151|10233) echo "${PROXMOX_HOST_R630_01:-192.168.11.11}";;
|
|
2400) echo "${PROXMOX_HOST_ML110:-192.168.11.10}";;
|
|
*) echo "${PROXMOX_HOST_R630_01:-192.168.11.11}";;
|
|
esac
|
|
}
|
|
|
|
KEY_VMIDS="5000 2101 10233 10234 2400 10130 10150 10151"
|
|
|
|
run_ssh() { ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@"$1" "$2" 2>/dev/null || true; }
|
|
|
|
echo "=== Journal vacuum (keep last ${VACUUM_DAYS}d) in key CTs ==="
|
|
[[ $DRY_RUN -eq 1 ]] && echo "(dry-run: no changes)"
|
|
echo ""
|
|
|
|
for vmid in $KEY_VMIDS; do
|
|
host=$(get_host "$vmid")
|
|
status=$(run_ssh "$host" "pct status $vmid 2>/dev/null" || true)
|
|
if [[ "$status" != *"running"* ]]; then
|
|
echo " VMID $vmid: skip (not running)"
|
|
continue
|
|
fi
|
|
if [[ $DRY_RUN -eq 1 ]]; then
|
|
echo " [dry-run] VMID $vmid on $host: would run journalctl --vacuum-time=${VACUUM_DAYS}d"
|
|
else
|
|
out=$(run_ssh "$host" "pct exec $vmid -- journalctl --vacuum-time=${VACUUM_DAYS}d 2>&1" || true)
|
|
echo " VMID $vmid: ${out:-done}"
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "Done. Schedule weekly (e.g. with daily-weekly-checks weekly or separate cron)."
|