Files
zpravobot-digest/export-daily.sh
2026-01-06 10:01:24 +01:00

32 lines
913 B
Bash

cat >export-daily.sh <<'EOF'
#!/bin/bash
DATE=$(date +%Y-%m-%d)
LOG="/app/data/logs/export.log"
mkdir -p /app/data/logs /app/data/archive
echo "[$(date)] Starting export..." >> "$LOG"
PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql \
-h ${CLOUDRON_POSTGRESQL_HOST} \
-p ${CLOUDRON_POSTGRESQL_PORT} \
-U ${CLOUDRON_POSTGRESQL_USERNAME} \
-d ${CLOUDRON_POSTGRESQL_DATABASE} \
-c "COPY (
SELECT id, created_at, text, uri, url, account_id
FROM statuses
WHERE local = true
AND deleted_at IS NULL
AND created_at > NOW() - INTERVAL '2 days'
ORDER BY created_at DESC
) TO STDOUT WITH CSV HEADER" > /app/data/posts-latest.csv
cp /app/data/posts-latest.csv "/app/data/archive/posts-$DATE.csv"
find /app/data/archive -name "posts-*.csv" -mtime +7 -delete
LINES=$(wc -l < /app/data/posts-latest.csv)
echo "[$(date)] Exported $LINES posts" >> "$LOG"
EOF
chmod +x export-daily.sh