#!/bin/bash # روی ۲۴۷، هر ساعت (zareian-applog-pull.timer). بایگانیِ فشرده‌ی لاگِ برنامه را از ۲۴۹ می‌گیرد و # **برای همیشه** در ~/zareian-pgbackup/app-logs/ نگه می‌دارد (تصمیمِ مالک ۲۰۲۶-۱۰-۱۳؛ برآورد حدودِ ۱ گیگ در سال # با ۶۰۰ کاربرِ فعال). هیچ فایلی این‌جا پاک نمی‌شود. کلید فقط serve-archive.sh را اجرا می‌کند. set -euo pipefail DEST=/home/administrator/zareian-pgbackup/app-logs mkdir -p "$DEST" r() { ssh -i /home/administrator/.ssh/zareian_applogs -o BatchMode=yes -o ConnectTimeout=20 \ administrator@192.168.200.164 "$@"; } free_kb=$(df --output=avail -k "$DEST" | tail -1) [ "$free_kb" -gt 3000000 ] || { echo "disk too full ($free_kb KB free); skipping" >&2; exit 1; } got=0 for name in $(r list); do [[ "$name" =~ ^app-[0-9]{8}T[0-9]{6}Z(-old[0-9]+)?\.log\.gz$ ]] || { echo "skip odd name: $name" >&2; continue; } if [ ! -s "$DEST/$name" ]; then r get "$name" > "$DEST/.$name.part" gzip -t "$DEST/.$name.part" chmod 600 "$DEST/.$name.part" mv "$DEST/.$name.part" "$DEST/$name" got=$((got + 1)) fi r ack "$name" done echo "fetched $got new; $(ls "$DEST" | wc -l) files, $(du -sh "$DEST" | cut -f1) in $DEST"