diff --git a/.forgejo/workflows/deploy-tradein.yml b/.forgejo/workflows/deploy-tradein.yml index 76d332bf..f2a2e7d3 100644 --- a/.forgejo/workflows/deploy-tradein.yml +++ b/.forgejo/workflows/deploy-tradein.yml @@ -689,6 +689,11 @@ jobs: chmod 600 .env.runtime set -a; source .env.runtime; set +a + # Re-assert +x на deploy-скриптах (#3005, по образцу deploy.yml ops/*.sh из #71). + # Cron зовёт backup-tradein-db.sh через `bash`, так что бит ему не нужен — + # но любой другой вызов сырым путём не должен зависеть от git-режима файла. + chmod +x deploy/*.sh 2>/dev/null || true + # External network для Caddy (он в основном gendesign-стеке) docker network inspect gendesign_shared >/dev/null 2>&1 \ || docker network create gendesign_shared diff --git a/ops/backup.sh b/ops/backup.sh index 4c6c92b2..997c9558 100755 --- a/ops/backup.sh +++ b/ops/backup.sh @@ -168,7 +168,7 @@ if [[ -n "${S3_ENDPOINT:-}" && -n "${S3_BUCKET:-}" && -n "${S3_ACCESS_KEY:-}" && -v "$LOCAL_BACKUP_DIR":/backup:ro \ amazon/aws-cli:latest \ --endpoint-url "$S3_ENDPOINT" \ - s3 cp "/backup/$(basename "$f")" "s3://${S3_BUCKET}/" + s3 cp --no-progress "/backup/$(basename "$f")" "s3://${S3_BUCKET}/" done log "S3 upload OK" else diff --git a/tradein-mvp/deploy/backup-tradein-db.sh b/tradein-mvp/deploy/backup-tradein-db.sh index fc523de3..95bfea43 100755 --- a/tradein-mvp/deploy/backup-tradein-db.sh +++ b/tradein-mvp/deploy/backup-tradein-db.sh @@ -5,8 +5,10 @@ # Запускается из cron на прод-хосте. pg_dump идёт через `docker exec` # (локальный сокет внутри контейнера — пароль не нужен). # -# Crontab пример (ежедневно в 04:30 UTC): -# 30 4 * * * /opt/gendesign/tradein-mvp/deploy/backup-tradein-db.sh >> /tmp/tradein-backup.log 2>&1 +# Crontab (ежедневно в 04:30 по времени хоста = 01:30 UTC; на проде именно так, #3005). +# Вызывать через `bash `, а не сырым путём — тогда потеря бита +x не сломает +# бэкап молча (инцидент #71 у основного бэкапа): +# 30 4 * * * bash /opt/gendesign/tradein-mvp/deploy/backup-tradein-db.sh >> /tmp/tradein-backup.log 2>&1 # # Restore: # gunzip -c tradein-YYYYMMDD-HHMMSS.sql.gz | \ @@ -133,7 +135,7 @@ if [[ -n "${S3_ENDPOINT:-}" && -n "${S3_BUCKET:-}" && -n "${S3_ACCESS_KEY:-}" && -v "$BACKUP_DIR":/backup:ro \ amazon/aws-cli:latest \ --endpoint-url "$S3_ENDPOINT" \ - s3 cp "/backup/$(basename "$f")" "s3://${S3_BUCKET}/" + s3 cp --no-progress "/backup/$(basename "$f")" "s3://${S3_BUCKET}/" done log "Выгрузка в S3 ok" else